パッケージを自動ロードするには ( に従って)、次のように配列にCI
配置する必要があります。package path/name
$autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
ただし、コードは自動的に実行されませんが、パッケージを明示的にロードしなくても使用できるようになります。
コードを毎回実行するには、そのコードをベース コントローラーのconstructor
関数に配置します。また、コードをファイルに入れることもできconfig.php
ます。次のような拡張ベースコントローラーがある場合application/core/MY_Controller.php
class MY_Controller extends CI_Controller {
//
}
次に、次のようなコンストラクター関数を使用できます
class MY_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
$this->bugsnag = new Bugsnag_Client("YOUR-API-KEY-HERE");
set_error_handler(array($bugsnag, "errorHandler"));
set_exception_handler(array($bugsnag, "exceptionHandler"));
}
}
MY_Controller
コントローラーの残りの部分は、の代わりに使用/拡張しCI_Controller
ます。
ただしhook
、この場合(カスタム例外ハンドラーを登録するために)を使用して、application/config/hooks.php
ファイルに次のコードを配置することもできます
$hook['pre_controller'][] = array(
'class' => 'CustomExceptionHook',
'function' => 'SetExceptionHandlers',
'filename' => 'CustomExceptionHook.php',
'filepath' => 'hooks'
);
application/hooks/CustomExceptionHook.php
次のように、フォルダーにクラスを作成します
class CustomExceptionHook
{
public function SetExceptionHandlers()
{
// add package path (if not auto-loaded)
$this->load->add_package_path(APPPATH.'third_party/package_folder/');
// load package (if not auto-loaded)
$this->load->library('Bugsnag_Client');
set_error_handler(array($this->Bugsnag_Client, "errorHandler"));
set_exception_handler(array($this->Bugsnag_Client, "exceptionHandler"));
}
}