[CakePHP3] Plugin::loadAll()でdebug_kitが動かないとき
CakePHP3のPlugin::loadAll()でちょっぴりはまった備忘録
Plugin::load
Plugin::load('DebugKit');
これじゃあ、debug_kitは動かない
Plugin::load('DebugKit', ['bootstrap' => true]);
これだと動く
第二引数で明示的にDebugKitのbootstrapを読み込むようにしないといけない模様
Plugin::loadAll
Plugin::loadAll();
これじゃあ、debug_kitは動かない
全部読み込んでるんじゃないんかい。bootstrap読み込まないけんのか。
Plugin::loadAll(['bootstrap' => true]);
これでも動かない。おとなしくコアを読んでみる。
public static function loadAll(array $options = [])
{
static::_loadConfig();
$plugins = [];
foreach (App::path('Plugin') as $path) {
if (!is_dir($path)) {
continue;
}
$dir = new DirectoryIterator($path);
foreach ($dir as $path) {
if ($path->isDir() && !$path->isDot()) {
$plugins[] = $path->getBaseName();
}
}
}
if (Configure::check('plugins')) {
$plugins = array_merge($plugins, array_keys(Configure::read('plugins')));
$plugins = array_unique($plugins);
}
foreach ($plugins as $p) {
$opts = isset($options[$p]) ? $options[$p] : null;
if ($opts === null && isset($options[0])) {
$opts = $options[0];
}
if (isset(static::$_plugins[$p])) {
continue;
}
static::load($p, (array)$opts);
}
}
なるほど、じゃあこれで。
Plugin::loadAll([
'DebugKit'=>['bootstrap' => true]
]);
動いた。
ちゃんと明示的に宣言しなきゃ駄目みたい。
Author And Source
この問題について([CakePHP3] Plugin::loadAll()でdebug_kitが動かないとき), 我々は、より多くの情報をここで見つけました https://qiita.com/tutida/items/ee930c29878961ee2652著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .