このエントリーをはてなブックマークに追加

更新日: 2016年2月25日

実行時間: 0.0075

autoload.php

ライブラリや設定ファイル、モデルクラスなどは一度それらをロードしてから利用することになりますが、
CodeIgniterでは、予め「autoload.php」設定ファイルで自動ロード設定をしておくことで、コントローラクラスなどで 利用時にファイルをロードする記述をせずに、全てのアクセスに対して共通でロードすることができます。

しかし、全てのアクセスで自動ロードされるため、あまり使われないものを設定して自動ロードしてしまうと 余計なオーバーヘッドが発生してしまいます。
また、自動ロードでは、一つのクラスに対し一つのインスタンスしかロードされないため、 一つのクラスを複数のインスタンスで利用する場合では個別にロードする必要があります。
自動ロード設定はよく考慮してから行いましょう。

$autoload['packages']

    サードパーティ製のプラグイン等のパッケージパス指定することで、パッケージに含まれるライブラリ等が利用できるようになります。
    パッケージの利用方法・作成方法は別の章で説明します。

    $autoload['packages'] = array(APPPATH . 'third_party/smarty');

    上記の自動パッケージパス設定に対し、実行時に都度設定するには以下のようにします。

    $this->load->add_package_path(APPPATH . 'third_party/smarty');

$autoload['libraries']

    自動ロードするライブラリクラスを設定します。
    自動ロードしたいクラス名を配列で設定します。

    $autoload['libraries'] = array('Session', 'Mylibrary');

    上記の自動ロード設定に対し、実行時に都度ロードするには以下のようにします。

    $this->load->library('Session');
    $this->load->library('Mylibrary', $config, 'mylib');

$autoload['helper'] 一番上に戻る

    自動ロードするヘルパークラスを設定します。
    自動ロードしたいファイル名から「_helpler.php」拡張子を除いたものを配列で設定します。

    $autoload['helper'] = array('url', 'file');

    上記の自動ロード設定に対し、実行時に都度ロードするには以下のようにします。

    $this->load->helper('url');
    $this->load->helper('file');

$autoload['config'] 一番上に戻る

    自動ロードするユーザ設定ファイルを設定します。
    CodeIgniterが利用するシステム設定ファイル(config.php,database.php等)は指定できません。
    自動ロードしたいファイル名から「.php」拡張子を除いたものを配列で設定します。

    $autoload['config'] = array('my_config1', 'my_config2');

    上記の自動ロード設定に対し、実行時に都度ロードするには以下のようにします。

    $this->config->load('my_config1');
    $this->config->load('my_config2');

    または、

    $this->load->config('my_config1');
    $this->load->config('my_config2');

    とすることも可能です。

$autoload['language'] 一番上に戻る

     自動ロードする言語ファイルの「_lang.php」拡張子を除いたものを配列で設定します。
    「config.php」設定ファイルの「$config['language'] 」で設定した特定言語の言語ファイルが対象となります。
    「$config['language'] 」で「english」を設定した場合「system/language/english/」または、 「application/language/english/」ディレクトリ内にある言語ファイルが自動ロードされます。
     従って、サイトをマルチ言語化したい場合は、個別にロードする必要があります。

    $autoload['language'] = array('greeting', 'date');

     上記の自動ロード設定に対し、実行時に都度ロードするには以下のようにします。

    $this->lang->load('greeting', 'english');
    $this->lang->load('date', 'english');

    または、

    $this->load->language('greeting', 'english');
    $this->load->language('date', 'english');

    「application/language/english/greeting_lang.php」及び、 「system/language/english/date_lang.php」ファイルがロードされます。

$autoload['model'] 一番上に戻る

    自動ロードするモデルクラスを設定します。
    自動ロードするモデルのクラス名を配列で設定します。 自動ロードする場合は、エイリアス設定、自動データベース接続が行えません。

    $autoload['model'] = array('User', 'Item');

    上記の自動ロード設定に対し、実行時に都度ロードするには以下のようにします。

    $this->load->model('User');
    $this->load->model('Item');