CodeIgniterでの検索とキャッシュ

こんにちはHabrとCodeIgniter PHPフレームワークを使用している皆さん!

特定のCIアプリケーションを作成するプロセスで、GETを使用せずにデータベース内の情報を見つけることについて質問がありました。
CIウィキで既製のソリューションが見つからなかったため、独自の「バイク」を作成することにしました。


まず、さまざまなサイトで検索するときに表示されるリンクの例を考えてみましょう。

GETを介してリンクを渡すパラメーターの例
  1. サイト名/検索/?q =テキスト
  2. サイト名/ index.php?do =検索&p1 = value1&p2 = value2&uname = test

別の例:
  1. サイト名/検索/クエリ/ p1 :0:p2:値:p3:テキスト

1つのパラメーターで検索すると、リンクは多かれ少なかれ正常に見えます
しかし、たとえば5つ以上のパラメーターで何かを検索する必要がある場合はどうでしょうか。
そして、私たちのリンクはひどくなり 、別の解決策を探します。

POSTを介してパラメーターを渡す例(これまでのところのみ=))
  1. サイト名/検索/クエリ/ unique_identifier / page_number

実際、このようなリンクには検索用のパラメーターはありませんが、
すでにキャッシュされている検索結果の識別子のみ。

POST配列を介してパラメーターを渡すと、リンクは
入力検索パラメーターが異なるほぼ同じビュー。 決めるだけです
そのような検索方法の「問題と困難」。

これを解決するには、CI +「任意のキャッシュクラス」と少し時間が必要です。

そして、システムはどのように機能しますか:

1.検索結果をキャッシュに保存するには、一意のキーを作成する必要があります。
(検索結果を表示するためのリンクは次のようになります。
サイト名/検索/クエリ/ 7ad549053bf2be45f309920b7b6a24bf / 10

2.データベースにリクエストを作成します。
3.結果をキャッシュに保存します。
4.検索結果をユーザーに表示します。

ここにいくつかのコード例を挙げたいと思います。
しかし、多くのコードがあるので、リンクを提供します
ユーザーを検索するための既製のコントローラーのダウンロード+独自のキャッシングライブラリとテストデータベース。

ダウンロードする

Source: https://habr.com/ru/post/J47708/


All Articles