17

私はコードイグナイター2を使用しています。

誰かが次のファイルをチェックする正しい方法を示すことができれば感謝します:
- ライブラリファイルがロードされていますか?
- ヘルパー ファイルはロードされていますか?
- 設定ファイルはロードされていますか?
- モデルファイルがロードされていますか?
- third_party ファイルがロードされていますか?

よろしく

4

6 に答える 6

24

クラスを呼び出す前に、ネイティブ PHP 関数 class_exists() を使用して、クラスが定義されているかどうかを判断できます。同様に、method_exists() を使用すると、クラス メソッドが存在するかどうかがチェックされます。

ヘルパーはメソッドではなく関数のコレクションであるため、チェックは function_exists() を使用して行うことができます。

if (class_exists('Library')) 
{
    $this->library->myMethod();
}

詳細については、次を参照してください。

http://php.net/manual/en/function.class-exists.php .

http://us.php.net/manual/en/function.method-exists.php

于 2013-05-14T06:30:56.177 に答える
10

チェックする必要はありません。確実に必要な場所にロードするだけです。

CI のロード ライブラリ ( $this->load->[library|model|helper]) を使用すると、常に 1 回だけロードされます。これは、デバッグ ログを有効にすると確認できます。

于 2013-05-15T08:43:49.213 に答える
2

インスタンスがロードされると、コントローラーに保存されるため、モデルがロードされているかどうかを確認するには:

if (isset($this->my_model))

$thisコントローラーはどこにありますか。

于 2013-12-02T09:57:54.113 に答える
1

これを行う最善の方法は、Codeigniter のLoaderクラスを使用することです。Loader別名loadにはメソッドが組み込まれていますis_loadedis_loadedメソッドは、クラスがすでにロードされているかどうかをチェックします。

クラスがロードされていない場合is_loadedは FALSE を返し、それ以外の場合はプロパティ名を返します。

例:

$this->load->library('table');
$this->load->is_loaded('table'); //Returns 'table'
$this->load->is_loaded('blabla_library'); //Returns FALSE
于 2017-12-27T06:25:20.993 に答える