私は2つのCodeIgniterプロジェクト間で通信しようとしています。
AとBの2つのプロジェクトがあります。ビューがAから呼び出され、AではなくプロジェクトBのコントローラーにヒットする必要がある場合は常に。
AではなくプロジェクトBのみにデータベースアクセスを許可したいので、すべてのデータベース要求は私のBで実行する必要があり、すべての表示はAで実行する必要があります。
それを行う方法はありますか?
私は2つのCodeIgniterプロジェクト間で通信しようとしています。
AとBの2つのプロジェクトがあります。ビューがAから呼び出され、AではなくプロジェクトBのコントローラーにヒットする必要がある場合は常に。
AではなくプロジェクトBのみにデータベースアクセスを許可したいので、すべてのデータベース要求は私のBで実行する必要があり、すべての表示はAで実行する必要があります。
それを行う方法はありますか?
次のようにクラスを拡張する必要がありますCI_Loader
:
class ClassNameYouWant extends CI_Loader {
public function construct(){
parent::__construct();
}
public function ExtendedView($view, $vars = array(), $return = FALSE){
parent::view($view, $vars, $return);
// run your code here
// call projet B using cURL or whatever you want
}
}
ビューが読み込まれる前にコードを実行する場合parent::view($view, $vars, $return);
は、関数の最後にある行を呼び出します。
コントローラ内にクラスをロードしてから、次のようなものを使用する必要があります
$this->ClassNameYouWant->ExtendedView();
CodeIgniterのMVCがCakePHPのMVCと類似している場合は、コントローラーAでデータを受け入れ、サーバーBへのHTTPソケット接続を使用して、コントローラーAで受信したデータをコントローラーBに送信する必要があります。その後、コントローラーBはビジネスロジックを実行できます。そして(HTTP応答として)より多くのJSONデータをコントローラーに返します。