1

数年前からこれに似た質問がありますが、答えがよくわかりませんでした(質問へのリンク

私の問題は次のとおりです。コントローラーから呼び出すライブラリを作成しました。そのライブラリ内で、CodeIgniter が提供する画像操作関数を使用しています。しかし、それは明らかにライブラリです。コントローラーからは問題ありません$this->load->library('image_lib', $config);。もちろん、$config 変数には、イメージを作成するためのパラメーターがあります。問題は、別のライブラリ内からそのライブラリを呼び出す (そして $config 配列を渡す) にはどうすればよいかということです。

前もって感謝します。

4

2 に答える 2

4

ヘルパーやその他のライブラリでそれを行う方法は次のとおりです。

$ci =& get_instance();

$config = array(
    //...
);
$ci->load->library('image_lib', $config);

$ci->image_lib->whatever();

ここで行うことは、CodeIgniter シングルトン オブジェクトのインスタンスを取得して操作することです。これは、ライブラリで使用されているため、ライブラリがそれ自体を指しているため、ライブラリを使用できない$thisためです。$this通常のことをすべて行うだけですが、$ci->代わりに$this->

于 2012-08-23T15:30:51.870 に答える
1

$this var は CodeIgniter リソースを失います。CodeIgniter リソースを使用するには、別のインスタンスを作成する必要があります get_instance() ;

$CI =& get_instance();

$CI を $this と同じように使用できるようになりました

詳細については、「ライブラリ内の CodeIgniter リソースの利用」http://codeigniter.com/user_guide/general/creating_libraries.htmlを参照してください。

于 2012-08-23T15:35:07.407 に答える