新江戸時代を舞台に、
韋駄天の秀さんが、
THiNQを広めたり広めなかったりするかも。
下が、五右衛門さんがTHiNQMakerで作った問題
五右衛門さんが「簡単にできるじゃねぇか」
と言ったとか言わなかったとか
やってみてね
新江戸時代を舞台に、
韋駄天の秀さんが、
THiNQを広めたり広めなかったりするかも。
下が、五右衛門さんがTHiNQMakerで作った問題
五右衛門さんが「簡単にできるじゃねぇか」
と言ったとか言わなかったとか
やってみてね
Bootstrap内ではiniファイルなどの設定ファイルを丁寧にキャッシュやZend_Registryなどに格納して最適化をはかりますが、
どうしてもautoloader用のiniファイルやapplication.iniファイルなどBootstrap内で呼ばれる順番が早いため最適化出来ないファイル群があります。
今回はそんな可哀想な設定ファイルたちの救済措置の一例です。
Zend_Cache定義のためにフロントエンド、バックエンドオプションを設定します。
$frontendOptions = array( 'name' => 'File', 'params' => array( 'lifetime' => null, 'automatic_cleaning_factor' => 0, 'automatic_serialization' => true, 'master_files' => array( APPLICATION_PATH . "/config/application.ini", APPLICATION_PATH . '/config/autoloader.ini', APPLICATION_PATH . '/config/config.ini' ) ) ); $backendOptions = array( 'name' => 'File', 'params' => array( 'cache_dir' => APPLICATION_PATH . '/tmp/cache/config', ) ); $configCache = Zend_Cache::factory( $frontendOptions['name'], $backendOptions['name'], $frontendOptions['params'], $backendOptions['params'] );
キャッシュが存在しないまたは変更などがおこなわれた場合はキャッシュ化を行います。
$finalConfig = null; if (!($finalConfig = $configCache->load('configuration'))) { $configFiles = array( APPLICATION_PATH . "/config/application.ini", APPLICATION_PATH . '/config/autoloader.ini', APPLICATION_PATH . '/config/config.ini' ); $masterConfig = null; foreach($configFiles as $file) { $config = new Zend_Config_Ini( $file, APPLICATION_ENV, array('allowModifications'=>true) ); if (is_null($masterConfig)) { $masterConfig = $config; } else { $masterConfig->merge($config); } } $finalConfig = $masterConfig->toArray(); $configCache->save($finalConfig, 'configuration'); }
出来上がった$finalConfigをZend_Applicationの第2引数にぶち込んで終了です。とても簡単です
/** * Run the application * Use Zend_Application */ $application = new Zend_Application( APPLICATION_ENV, $finalConfig ); $application->bootstrap()->run();
/** Zend_Cache */ require 'Zend/Cache.php'; /** Zend_Config_Ini */ require 'Zend/Config/Ini.php'; $frontendOptions = array( 'name' => 'File', 'params' => array( 'lifetime' => null, 'automatic_cleaning_factor' => 0, 'automatic_serialization' => true, 'master_files' => array( APPLICATION_PATH . "/config/application.ini", APPLICATION_PATH . '/config/autoloader.ini', APPLICATION_PATH . '/config/config.ini' ) ) ); $backendOptions = array( 'name' => 'File', 'params' => array( 'cache_dir' => APPLICATION_PATH . '/tmp/cache/config', ) ); $configCache = Zend_Cache::factory( $frontendOptions['name'], $backendOptions['name'], $frontendOptions['params'], $backendOptions['params'] ); $finalConfig = null; if (!($finalConfig = $configCache->load('configuration'))) { $configFiles = array( APPLICATION_PATH . "/config/application.ini", APPLICATION_PATH . '/config/autoloader.ini', APPLICATION_PATH . '/config/config.ini' ); $masterConfig = null; foreach($configFiles as $file) { $config = new Zend_Config_Ini( $file, APPLICATION_ENV, array('allowModifications'=>true) ); if (is_null($masterConfig)) { $masterConfig = $config; } else { $masterConfig->merge($config); } } $finalConfig = $masterConfig->toArray(); $configCache->save($finalConfig, 'configuration'); } /** * Run the application * Use Zend_Application */ require 'Zend/Application.php'; $application = new Zend_Application( APPLICATION_ENV, $finalConfig ); $application->bootstrap(); $application->bootstrap()->run();
他にも色々やり方はあると思いますが、あまり窮屈に考えず緩く考えた場合
このぐらいが基本と言えるのではないでしょうか。
はじめに 前回の続きで、今回はローカル環境ではなく、GoogleのCloudSe …
はじめに 最近、GoogleAppEngine(Python)でサクッとアプリケ …
Twitterは6月にBasic認証が廃止されます。代替えとしてOAuth認証が …
前回は「Hello world」をフッターに表示する簡単なプラグインを作成しまし …
はじめに ブログソフトウェアというと、「Movable Type」か「WordP …