本文整理汇总了PHP中Pagekit\Application::extend方法的典型用法代码示例。如果您正苦于以下问题:PHP Application::extend方法的具体用法?PHP Application::extend怎么用?PHP Application::extend使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pagekit\Application
的用法示例。
在下文中一共展示了Application::extend方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: main
/**
* {@inheritdoc}
*/
public function main(App $app)
{
$this->breadcrumbs = new BreadcrumbsManager($app);
$app->extend('view', function ($view) {
return $view->addGlobal('breadcrumbs', $this);
});
}
示例2: main
/**
* {@inheritdoc}
*/
public function main(App $app)
{
$app['system'] = $this;
$app['isAdmin'] = false;
$app->factory('finder', function () {
return Finder::create();
});
$app['db.em'];
// -TODO- fix me
$theme = $this->config('site.theme');
foreach (array_merge($this->config['extensions'], (array) $theme) as $module) {
try {
$app['module']->load($module);
} catch (\RuntimeException $e) {
$app['log']->warn("Unable to load extension: {$module}");
}
}
if (!($app['theme'] = $app->module($theme))) {
$app['theme'] = new Module(['name' => 'default-theme', 'path' => '', 'config' => [], 'layout' => 'views:system/blank.php']);
}
$app->extend('view', function ($view) use($app) {
$theme = $app->isAdmin() ? $app->module('system/theme') : $app['theme'];
$view->map('layout', $theme->get('layout', 'views:template.php'));
return $view->addGlobal('theme', $app['theme']);
});
}
示例3: main
/**
* {@inheritdoc}
*/
public function main(App $app)
{
$app['system'] = $this;
$app['isAdmin'] = false;
$app->factory('finder', function () {
return Finder::create();
});
$app['db.em'];
// -TODO- fix me
$app->extend('view', function ($view) use($app) {
$theme = $app->isAdmin() ? $app->module('system/theme') : $app['theme'];
$view->map('layout', $theme->get('layout', 'views:template.php'));
return $view->addGlobal('theme', $app['theme']);
});
$app->extend('assets', function ($factory) use($app) {
$secret = $this->config['secret'];
$version = substr(sha1($app['version'] . $secret), 0, 4);
$factory->setVersion($version);
return $factory;
});
$theme = $this->config('site.theme');
$app['module']->addLoader(function ($module) use($app, $theme) {
if (in_array($module['name'], $this->config['extensions'])) {
$module['type'] = 'extension';
$app['locator']->add("{$module['name']}:", $module['path']);
$app['locator']->add("views:{$module['name']}", "{$module['path']}/views");
} else {
if ($module['name'] == $theme) {
$module['type'] = 'theme';
$app['locator']->add('theme:', $module['path']);
$app['locator']->add('views:', "{$module['path']}/views");
}
}
return $module;
});
foreach (array_merge($this->config['extensions'], (array) $theme) as $module) {
try {
$app['module']->load($module);
} catch (\RuntimeException $e) {
$module = ucfirst($module);
$app['log']->error("[{$module} exception]: {$e->getMessage()}");
}
}
if (!($app['theme'] = $app->module($theme))) {
$app['theme'] = new Module(['name' => 'theme-default', 'type' => 'theme', 'path' => '', 'config' => [], 'layout' => 'views:system/blank.php']);
}
}
示例4: main
/**
* {@inheritdoc}
*/
public function main(App $app)
{
$app['filter']->register('filesize', 'Bixie\\Framework\\Filter\\FileSizeFilter');
$app->on('boot', function ($event, $app) {
$app->extend('view', function ($view) use($app) {
return $view->addHelper(new ImageHelper($app));
});
});
}
示例5: main
/**
* {@inheritdoc}
*/
public function main(App $app)
{
$app['translator'] = function () {
$translator = new Translator($this->getLocale());
$translator->addLoader('php', new PhpFileLoader());
$translator->addLoader('mo', new MoFileLoader());
$translator->addLoader('po', new PoFileLoader());
$translator->addLoader('array', new ArrayLoader());
$this->loadLocale($this->getLocale(), $translator);
return $translator;
};
$app->extend('view', function ($view) {
return $view->addGlobal('intl', $this);
});
require __DIR__ . '/../functions.php';
}
示例6: main
/**
* {@inheritdoc}
*/
public function main(App $app)
{
$app['node'] = function ($app) {
if ($id = $app['request']->attributes->get('_node') and $node = Node::find($id, true)) {
return $node;
}
return Node::create();
};
$app['menu'] = function ($app) {
$menus = new MenuManager($app->config($app['theme']->name), $this->config('menus'));
foreach ($app['theme']->get('menus', []) as $name => $label) {
$menus->register($name, $label);
}
return $menus;
};
$app->extend('view', function ($view) use($app) {
return $view->addHelper(new MenuHelper($app['menu']));
});
}