私はCodeigniterの初心者です。の自動ロードに 3 つのライブラリがありconfig.php
ます。
しかし、私のコントローラの 1 つで、ライブラリをロードしたくありません。これは可能ですか?
私はCodeigniterの初心者です。の自動ロードに 3 つのライブラリがありconfig.php
ます。
しかし、私のコントローラの 1 つで、ライブラリをロードしたくありません。これは可能ですか?
アプリケーション全体でライブラリが必要な場合は、構成ファイルにロードすることができ、自動的にロードされます。ただし、特定のコントローラーでのみライブラリが必要な場合は、必要なコントローラーにライブラリをロードできます。
Class test Extends CI_Controller{
function index()
{
$this->load->library('mylibrary');
$this->mylibrary->somemethod();
}
}
または、コントローラー全体でライブラリが必要な場合は、コンストラクターにロードできます。
Class test Extends CI_Controller{
function __construct()
{
parent::__construct();
$this->load->library('mylibrary');
}
function index(){
$this->mylibrary->somemethod();
}
function test(){
$this->mylibrary->someothermethod();
}
}
ライブラリで CI_Controller を拡張します。
このようなもの:
class MyLibrary extends CI_Controller {
var $ci;
function __construct() {
$this->ci = &get_instance();
$route = $this->ci->router->fetch_class();
if( $route == strtolower('YourController') ) return false;
}
}
自動ロードファイルからライブラリを削除できます。そうすれば、それらはフレームワークでアクティブになりません。それらを使用したい場合、クラスでそれらを使用したい場合は、コンストラクターでそれらを呼び出すことができます。それらをメソッドだけで使用する場合は、メソッドにロードします。