public function register(BaseApplication $app) { // Routingを追加 $admin = $app['config']['admin_route']; $app->match($admin . '/sales_report', '\\Plugin\\SalesReport\\Controller\\SalesReportController::index')->bind('admin_sales_report'); $app->match($admin . '/sales_report/term', '\\Plugin\\SalesReport\\Controller\\SalesReportController::term')->bind('admin_sales_report_term'); $app->match($admin . '/sales_report/member', '\\Plugin\\SalesReport\\Controller\\SalesReportController::member')->bind('admin_sales_report_member'); $app->match($admin . '/sales_report/age', '\\Plugin\\SalesReport\\Controller\\SalesReportController::age')->bind('admin_sales_report_age'); $app->match($admin . '/sales_report/product', '\\Plugin\\SalesReport\\Controller\\SalesReportController::product')->bind('admin_sales_report_product'); // Formの定義 $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\SalesReport\Form\Type\SalesReportType(); return $types; })); // Serviceの定義 $app['eccube.plugin.service.sales_report'] = $app->share(function () use($app) { return new \Plugin\SalesReport\Service\SalesReportService($app); }); // サブナビの拡張 $app['config'] = $app->share($app->extend('config', function ($config) { $nav = array('id' => 'admin_sales_report', 'name' => '売上集計', 'has_child' => 'true', 'icon' => 'cb-chart', 'child' => array(array('id' => 'admin_sales_report', 'url' => 'admin_sales_report', 'name' => '期間別集計'), array('id' => 'admin_sales_report_product', 'url' => 'admin_sales_report_product', 'name' => '商品別集計'), array('id' => 'admin_sales_report_age', 'url' => 'admin_sales_report_age', 'name' => '年代別集計'))); $config['nav'][] = $nav; return $config; })); }
public function register(Application $app) { $app['controllers_factory'] = function ($app) { return new ControllerCollection($app['route_factory']); }; $app['controllers'] = $app->share(function ($app) { return new RootControllerCollection($app, $app['dispatcher'], $app['route_factory']); }); $app['url_matcher'] = $app->share(function ($app) { return new UrlMatcher($app['routes'], $app['request_context']); }); $app['resolver'] = $app->share(function ($app) { return new ControllerResolver($app, $app['logger']); }); $app['callback_resolver'] = $app->share(function ($app) { return new CallbackResolver($app, $app['controller.classmap']); }); $app['route_factory'] = $app->extend('route_factory', function (Route $route, $app) { if ($app['config']->get('general/enforce_ssl')) { $route->requireHttps(); } return $route; }); $app['url_generator'] = $app->share($app->extend('url_generator', function ($urlGenerator) { return new UrlGeneratorFragmentWrapper($urlGenerator); })); $app['url_generator.lazy'] = $app->share(function ($app) { return new LazyUrlGenerator(function () use($app) { return $app['url_generator']; }); }); }
/** * {@inheritdoc} */ public function register(Application $app) { if (isset($app['profiler'])) { $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig) { $twig->addExtension(new DoctrineExtension()); return $twig; })); $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function (\Twig_Loader_Filesystem $twigLoaderFilesystem) { $twigLoaderFilesystem->addPath(dirname(__DIR__) . '/Resources/views', 'SaxulumWebProfilerProvider'); return $twigLoaderFilesystem; })); $dataCollectors = $app['data_collectors']; $dataCollectors['db'] = $app->share(function ($app) { $dataCollector = new DoctrineDataCollector($app['doctrine']); foreach ($app['doctrine']->getConnectionNames() as $name) { $logger = new DbalLogger($app['monolog'], $app['stopwatch']); $app['doctrine']->getConnection($name)->getConfiguration()->setSQLLogger($logger); $dataCollector->addLogger($name, $logger); } return $dataCollector; }); $app['data_collectors'] = $dataCollectors; $dataCollectorTemplates = $app['data_collector.templates']; $dataCollectorTemplates[] = array('db', '@SaxulumWebProfilerProvider/Collector/db.html.twig'); $app['data_collector.templates'] = $dataCollectorTemplates; } }
/** * {@inheritdoc} */ public function register(BaseApplication $app) { $app['translator']->addResource('yaml', __DIR__ . '/../Resource/locale/message.ja.yml', 'ja'); $app['config'] = $app->share($app->extend('config', function ($config) { foreach ($config['nav'] as $key => $menu1) { if ($menu1['id'] == 'setting') { $children = $menu1['child']; foreach ($children as $key2 => $menu2) { if ($menu2['id'] == 'system') { $config['nav'][$key]['child'][$key2]['has_child'] = 'true'; $config['nav'][$key]['child'][$key2]['child'][] = array('id' => 'admin_maintenance_manager', 'name' => 'メンテナンス管理', 'url' => 'admin_maintenance_manager'); break; } } } } return $config; })); $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\MaintenanceManager\Form\Type\MaintenanceType($app); return $types; })); $app['plg.service.maintenance_manager'] = $app->share(function () use($app) { return new \Plugin\MaintenanceManager\Service\MaintenanceManagerService($app); }); $url = '/' . $app["config"]["admin_route"] . '/MaintenanceManager'; $app->match($url . '/config', '\\Plugin\\MaintenanceManager\\Controller\\ConfigController::index')->bind('admin_maintenance_manager'); // $app->match($url . '/enable', '\Plugin\MaintenanceManager\Controller\ConfigController::enable')->bind('admin_maintenance_manager_enable'); // $app->match($url . '/disable', '\Plugin\MaintenanceManager\Controller\ConfigController::diable')->bind('admin_maintenance_manager_disable'); }
public function register(Application $app) { if (!isset($app['profiler'])) { $app->register(new Silex\Provider\WebProfilerServiceProvider(), ['profiler.cache_dir' => $app['resources']->getPath('cache/profiler'), 'web_profiler.debug_toolbar.enable' => false]); } $app->register(new DebugToolbarEnabler()); $app['data_collector.templates'] = $app->share($app->extend('data_collector.templates', function ($templates) { // Set the 'bolt' toolbar item as the first one, and overriding the 'Symfony' one. array_unshift($templates, ['bolt', '@BoltProfiler/bolt.html.twig']); $templates[] = ['db', '@BoltProfiler/db.html.twig']; // Hackishly replace the template for the first toolbar item with our own. $templates[1][1] = '@BoltProfiler/config.html.twig'; return $templates; })); $app['data_collectors'] = $app->share($app->extend('data_collectors', function ($collectors, $app) { // @codingStandardsIgnoreStart $collectors['bolt'] = $app->share(function ($app) { return new BoltDataCollector($app); }); $collectors['db'] = $app->share(function ($app) { return new DatabaseDataCollector($app['db.logger']); }); // @codingStandardsIgnoreEnd return $collectors; })); $app['twig.loader.bolt_filesystem'] = $app->share($app->extend('twig.loader.bolt_filesystem', function ($filesystem) { $filesystem->addPath('bolt://app/view/toolbar', 'BoltProfiler'); return $filesystem; })); $app['db.logger'] = $app->share(function () { return new DebugStack(); }); }
public function register(BaseApplication $app) { // リポジトリ $app['eccube.plugin.product_rank.repository.product_rank'] = $app->share(function () use($app) { return new ProductRankRepository($app['orm.em'], $app['orm.em']->getClassMetadata('\\Eccube\\Entity\\ProductCategory'), $app); }); $basePath = '/' . $app["config"]["admin_route"]; // 一覧 $app->match($basePath . '/product/product_rank/', '\\Plugin\\ProductRank\\Controller\\ProductRankController::index')->bind('admin_product_product_rank'); // 一覧:上 $app->put($basePath . '/product/product_rank/{category_id}/{product_id}/up', '\\Plugin\\ProductRank\\Controller\\ProductRankController::up')->assert('category_id', '\\d+')->assert('product_id', '\\d+')->bind('admin_product_product_rank_up'); // 一覧:下 $app->put($basePath . '/product/product_rank/{category_id}/{product_id}/down', '\\Plugin\\ProductRank\\Controller\\ProductRankController::down')->assert('category_id', '\\d+')->assert('product_id', '\\d+')->bind('admin_product_product_rank_down'); // 一覧:N番目へ移動 $app->post($basePath . '/product/product_rank/moveRank', '\\Plugin\\ProductRank\\Controller\\ProductRankController::moveRank')->assert('category_id', '\\d+')->assert('product_id', '\\d+')->assert('position', '\\d+')->bind('admin_product_product_rank_move_rank'); // カテゴリ選択 $app->match($basePath . '/product/product_rank/{category_id}', '\\Plugin\\ProductRank\\Controller\\ProductRankController::index')->assert('category_id', '\\d+')->bind('admin_product_product_rank_show'); // メッセージ登録 $app['translator'] = $app->share($app->extend('translator', function ($translator, \Silex\Application $app) { $translator->addLoader('yaml', new \Symfony\Component\Translation\Loader\YamlFileLoader()); $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); // メニュー登録 $app['config'] = $app->share($app->extend('config', function ($config) { $addNavi['id'] = "product_rank"; $addNavi['name'] = "商品並び替え"; $addNavi['url'] = "admin_product_product_rank"; self::addNavi($config['nav'], $addNavi, array('product')); return $config; })); }
public function boot(Application $app) { $app->before(function () use($app) { $app['np.extensions']['debug'] = $app['debug']; $app['np.extensions']['admin'] = $app['np.admin']; $app['np.extensions']->boot(); // add template paths for all extensions and blocks $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function ($loader, $app) { foreach ($app['np.extensions']->getAll() as $namespace => $extension) { $loader->addPath($extension->getPath(), $namespace); } foreach ($app['np.extensions']['block_types'] as $blockType) { $loader->addPath($blockType->getPath(), 'block_' . $app['np.slug_helper']->slugify($blockType->name)); } return $loader; })); // load collected twig functions $app['twig'] = $app->share($app->extend('twig', function ($twig, $app) { foreach ($app['np.extensions']['twig_extensions'] as $extension) { $twig->addExtension($extension); } return $twig; })); }); $app->after(function (Request $request, Response $response) use($app) { if ($response instanceof BinaryFileResponse || !$app['np.extensions']->booted) { return; } $app['np.extensions']->prepareSnippets(); $response->setContent($app['np.extensions']['snippet_queue']->processAll($app, $response->getContent())); }); }
public function register(Application $app) { if (!isset($app['db'])) { $app->register(new \Silex\Provider\DoctrineServiceProvider(), ['db.options' => $app['config']->get('general/database')]); } $app['db.config'] = $app->share($app->extend('db.config', function ($config) use($app) { $config->setFilterSchemaAssetsExpression($app['schema.tables_filter']); return $config; })); $app['db.doctrine_listener'] = $app->share(function ($app) { return new DoctrineListener($app['logger.system'], $app['controller.exception']); }); // For each database connection add this class as an event subscriber $app['dbs.event_manager'] = $app->share($app->extend('dbs.event_manager', function ($managers) use($app) { /** @var \Pimple $managers */ foreach ($managers->keys() as $name) { /** @var \Doctrine\Common\EventManager $manager */ $manager = $managers[$name]; $manager->addEventSubscriber($app['db.doctrine_listener']); } return $managers; })); $app['db.query_cache'] = $app->share(function ($app) { $cache = $app['config']->get('general/caching/database') == true ? $app['cache'] : new ArrayCache(); return $cache; }); $app['db.query_cache_profile'] = $app->share(function ($app) { $lifetime = $app['config']->get('general/caching/duration') ?: 0; return new QueryCacheProfile($lifetime, 'bolt.db', $app['db.query_cache']); }); $app['db'] = $app->share($app->extend('db', function ($db) use($app) { $db->setQueryCacheProfile($app['db.query_cache_profile']); return $db; })); }
/** * Bootstraps the application. * * This method is called after all services are registered * and should be used for "dynamic" configuration (whenever * a service must be requested). * @param Application $app */ public function boot(Application $app) { if (php_sapi_name() === 'cli') { $app['console.commands'] = $app->extend('console.commands', function ($commands) use($app) { $migrationCommands = [new Proxy\DiffCommandProxy(), new Proxy\ExecuteCommandProxy(), new Proxy\GenerateCommandProxy(), new Proxy\LatestCommandProxy(), new Proxy\MigrateCommandProxy(), new Proxy\StatusCommandProxy(), new Proxy\VersionCommandProxy()]; if (isset($app['migrations.directory'])) { $config = new Configuration($app['db']); $config->setMigrationsDirectory($app['migrations.directory']); $config->setMigrationsNamespace('DocMigrations'); $config->setMigrationsTableName('doc_migrations'); $config->registerMigrationsFromDirectory($app['migrations.directory']); /** @var AbstractCommand $cmd */ foreach ($migrationCommands as $cmd) { $cmd->setMigrationConfiguration($config); } } return array_merge($commands, $migrationCommands, [new Proxy\ClearMetadataCacheDoctrineCommand(), new Proxy\ClearQueryCacheDoctrineCommand(), new Proxy\ClearResultCacheDoctrineCommand(), new Proxy\ConvertMappingDoctrineCommand(), new Proxy\CreateSchemaDoctrineCommand(), new Proxy\DropSchemaDoctrineCommand(), new Proxy\EnsureProductionSettingsDoctrineCommand(), new Proxy\InfoDoctrineCommand(), new Proxy\RunDqlDoctrineCommand(), new Proxy\RunSqlDoctrineCommand(), new Proxy\UpdateSchemaDoctrineCommand(), new Proxy\UpdateSchemaDoctrineCommand(), new Proxy\ValidateSchemaCommand(), new Proxy\GenProxiesDoctrineCommand(), new CreateDatabaseDoctrineCommand(), new DropDatabaseDoctrineCommand()]); }); if (isset($app['console'])) { $app['console'] = $app->share($app->extend('console', function (ConsoleApplication $consoleApplication) use($app) { $helperSet = $consoleApplication->getHelperSet(); $helperSet->set(new ManagerRegistryHelper($app['doctrine']), 'doctrine'); return $consoleApplication; })); } } }
public function register(Application $app) { if (!isset($app['twig'])) { $app->register(new \Silex\Provider\TwigServiceProvider()); } // Handlers $app['twig.handlers'] = $app->share(function (Application $app) { return new \Pimple(['admin' => $app->share(function () use($app) { return new AdminHandler($app); }), 'array' => $app->share(function () use($app) { return new ArrayHandler($app); }), 'html' => $app->share(function () use($app) { return new HtmlHandler($app); }), 'image' => $app->share(function () use($app) { return new ImageHandler($app); }), 'record' => $app->share(function () use($app) { return new RecordHandler($app); }), 'text' => $app->share(function () use($app) { return new TextHandler($app); }), 'user' => $app->share(function () use($app) { return new UserHandler($app); }), 'utils' => $app->share(function () use($app) { return new UtilsHandler($app); })]); }); // Add the Bolt Twig Extension. $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig, $app) { $twig->addExtension(new TwigExtension($app, $app['twig.handlers'], false)); return $twig; })); $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function ($filesystem, $app) { $filesystem->addPath($app['resources']->getPath('app/view/twig'), 'bolt'); // @deprecated Since Bolt 2.3 and will be removed in Bolt 3. $filesystem->addPath($app['resources']->getPath('app/view/twig')); return $filesystem; })); // Twig paths $app['twig.path'] = function () use($app) { return $app['config']->getTwigPath(); }; // Twig options $app['twig.options'] = function () use($app) { // Should we cache or not? if ($app['config']->get('general/caching/templates')) { $cache = $app['resources']->getPath('cache'); } else { $cache = false; } return ['debug' => true, 'cache' => $cache, 'strict_variables' => $app['config']->get('general/strict_variables'), 'autoescape' => true]; }; $app['safe_twig.bolt_extension'] = function () use($app) { return new TwigExtension($app, $app['twig.handlers'], true); }; $app['safe_twig'] = $app->share(function ($app) { $loader = new \Twig_Loader_String(); $twig = new \Twig_Environment($loader); $twig->addExtension($app['safe_twig.bolt_extension']); return $twig; }); }
public function getServices(Application $app) { return array('resolver' => $app->share($app->extend('resolver', function ($resolver, $container) { return new $container['sdispatcher.cbv_resolver.class']($container, $resolver); })), 'dispatcher' => $app->share($app->extend('dispatcher', function (EventDispatcherInterface $dispatcher, $container) { $dispatcher->addSubscriber($container['sdispatcher.rest_route_listener']); $dispatcher->addSubscriber($container['sdispatcher.option_inspector']); $dispatcher->addSubscriber($container['sdispatcher.content_negotiator']); $dispatcher->addSubscriber($container['sdispatcher.deserializer']); $dispatcher->addSubscriber($container['sdispatcher.serializer']); $dispatcher->addSubscriber($container['sdispatcher.pagination_listener']); return $dispatcher; })), 'sdispatcher.resource_option' => $app->share(function ($container) { return new $container['sdispatcher.resource_option.class'](); }), 'sdispatcher.rest_route_listener' => $app->share(function ($container) { return new $container['sdispatcher.rest_route_listener.class']($container['routes']); }), 'sdispatcher.option_inspector' => $app->share(function ($container) { return new $container['sdispatcher.option_inspector.class']($container['routes'], $container['sdispatcher.resource_option']); }), 'sdispatcher.content_negotiator' => $app->share(function ($container) { return new $container['sdispatcher.content_negotiator.class']($container['routes'], new FormatNegotiator()); }), 'sdispatcher.deserializer' => $app->share(function ($container) { return new $container['sdispatcher.deserializer.class']($container['routes'], new FOSDecoderProvider()); }), 'sdispatcher.serializer' => $app->share(function ($container) { return new $container['sdispatcher.serializer.class']($container['routes'], new ChainEncoder(array(new JsonEncoder(), new DefaultXmlEncoder()))); }), 'sdispatcher.pagination_listener' => $app->share(function ($container) { return new $container['sdispatcher.pagination_listener.class']($container['routes']); })); }
/** * Registers services on the given app. * * @param Application $app Silex application. */ public function register(Application $app) { if (!isset($app['data_collector.templates'])) { throw new \LogicException('The provider: "' . __CLASS__ . '" must be registered after the "WebProfilerServiceProvider"'); } $app['data_collector.templates'] = $app->extend('data_collector.templates', function ($tpls) { $tpls[] = ['guzzle', '@CampruGuzzle/views/Collector/guzzle.html.twig']; return $tpls; }); $app['guzzle_bundle.subscriber.profiler'] = $app->share(function () { return new \GuzzleHttp\Subscriber\History(); }); $app['guzzle_bundle.subscriber.storage'] = $app->share(function () { return new \Campru\GuzzleBundle\Subscriber\Stopwatch(new \SplObjectStorage()); }); $app['data_collectors'] = $app->share($app->extend('data_collectors', function ($collectors, $app) { $collectors['guzzle'] = function ($app) { return new \Campru\GuzzleBundle\DataCollector\GuzzleDataCollector($app['guzzle_bundle.subscriber.profiler'], $app['guzzle_bundle.subscriber.storage']); }; return $collectors; })); $app['guzzle_bundle.profiler.templates_path'] = function () { $class = new \ReflectionClass('Campru\\GuzzleBundle\\DataCollector\\GuzzleDataCollector'); return dirname(dirname($class->getFileName())) . '/../resources'; }; $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function ($loader, $app) { $loader->addPath($app['guzzle_bundle.profiler.templates_path'], 'CampruGuzzle'); return $loader; })); }
public function register(Application $app) { // Checking for dependencies if (!isset($app['orm.em'])) { throw new \RuntimeException('You must register ORM EntityManager before registring ' . get_class($this)); } // Setup Controllers $app['content.article.controller'] = $app->share(function () use($app) { return new ArticleController($app); }); // Setup routing $app['content.article.routes.prefix'] = '/articles'; // Adding entities to ORM Entity Manager $app['orm.em.paths'] = $app->share($app->extend('orm.em.paths', function ($paths) use($app) { $paths[] = __DIR__ . '/../Entity'; return $paths; })); // Adding view paths $app['twig.path'] = $app->share($app->extend('twig.path', function ($paths) { $path = __DIR__ . '/../views'; if (!in_array($path, $paths)) { $paths[] = $path; } return $paths; })); }
/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. * * @param Application $app An Application instance */ public function register(Application $app) { $app['ladybug.options'] = array('theme' => 'modern', 'expanded' => false, 'silenced' => false, 'array_max_nesting_level' => 9, 'object_max_nesting_level' => 3); $app['ladybug.dumper'] = $app->share(function () use($app) { $dumper = new Dumper(); $dumper->setOptions($app['ladybug.options']); return $dumper; }); $app['ladybug'] = $app->share(function () use($app) { return new LadybugDataCollector($app['ladybug.dumper']); }); $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig, $app) { $twig->addExtension(new LadybugExtension($app)); return $twig; })); if (isset($app['profiler'])) { $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function ($loader, $app) { $loader->addPath($app['rswork.templates_path'], 'Rswork'); return $loader; })); $app['rswork.templates_path'] = function () { return realpath(__DIR__ . '/../../views'); }; $app['data_collector.templates'] = array_merge($app['data_collector.templates'], array(array('ladybug', '@Rswork/collector/ladybug.html.twig'))); $app['data_collectors'] = $app->share($app->extend('data_collectors', function ($collectors, $app) { $collectors['ladubug'] = $app->share(function ($app) { return $app['ladybug']; }); return $collectors; })); } }
public function register(Application $app) { $app['knp_menu.factory'] = $app->share(function () use($app) { $factory = new MenuFactory(); if (isset($app['url_generator'])) { $factory->addExtension(new RoutingExtension($app['url_generator'])); } return $factory; }); $app['knp_menu.matcher'] = $app->share(function () use($app) { $matcher = new Matcher(); if (isset($app['knp_menu.matcher.configure'])) { $app['knp_menu.matcher.configure']($matcher); } return $matcher; }); $app['knp_menu.renderer.list'] = $app->share(function () use($app) { return new ListRenderer($app['knp_menu.matcher'], array(), $app['charset']); }); $app['knp_menu.menu_provider'] = $app->share(function () use($app) { return new PimpleMenuProvider($app, $app['knp_menu.menus']); }); if (!isset($app['knp_menu.menus'])) { $app['knp_menu.menus'] = array(); } $app['knp_menu.renderer_provider'] = $app->share(function () use($app) { $app['knp_menu.renderers'] = array_merge(array('list' => 'knp_menu.renderer.list'), isset($app['knp_menu.renderer.twig']) ? array('twig' => 'knp_menu.renderer.twig') : array(), isset($app['knp_menu.renderers']) ? $app['knp_menu.renderers'] : array()); return new PimpleRendererProvider($app, $app['knp_menu.default_renderer'], $app['knp_menu.renderers']); }); $app['knp_menu.menu_manipulator'] = $app->share(function () use($app) { return new MenuManipulator(); }); if (!isset($app['knp_menu.default_renderer'])) { $app['knp_menu.default_renderer'] = 'list'; } $app['knp_menu.helper'] = $app->share(function () use($app) { return new Helper($app['knp_menu.renderer_provider'], $app['knp_menu.menu_provider'], $app['knp_menu.menu_manipulator']); }); if (isset($app['twig'])) { $app['knp_menu.twig_extension'] = $app->share(function () use($app) { return new MenuExtension($app['knp_menu.helper'], $app['knp_menu.matcher'], $app['knp_menu.menu_manipulator']); }); $app['knp_menu.renderer.twig'] = $app->share(function () use($app) { return new TwigRenderer($app['twig'], $app['knp_menu.template'], $app['knp_menu.matcher']); }); if (!isset($app['knp_menu.template'])) { $app['knp_menu.template'] = 'knp_menu.html.twig'; } $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig) use($app) { $twig->addExtension($app['knp_menu.twig_extension']); return $twig; })); $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function (\Twig_Loader_Filesystem $loader) use($app) { $loader->addPath(__DIR__ . '/../../Resources/views'); return $loader; })); } }
public function register(BaseApplication $app) { // おすすめ情報テーブルリポジトリ $app['eccube.plugin.recommend.repository.recommend_product'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\Recommend\\Entity\\RecommendProduct'); }); // おすすめ商品の一覧 $app->match('/' . $app["config"]["admin_route"] . '/recommend', '\\Plugin\\Recommend\\Controller\\RecommendController::index')->value('id', null)->assert('id', '\\d+|')->bind('admin_recommend_list'); // おすすめ商品の新規先 $app->match('/' . $app["config"]["admin_route"] . '/recommend/new', '\\Plugin\\Recommend\\Controller\\RecommendController::create')->value('id', null)->assert('id', '\\d+|')->bind('admin_recommend_new'); // おすすめ商品の新規作成・編集確定 $app->match('/' . $app["config"]["admin_route"] . '/recommend/commit', '\\Plugin\\Recommend\\Controller\\RecommendController::commit')->value('id', null)->assert('id', '\\d+|')->bind('admin_recommend_commit'); // おすすめ商品の編集 $app->match('/' . $app["config"]["admin_route"] . '/recommend/edit/{id}', '\\Plugin\\Recommend\\Controller\\RecommendController::edit')->value('id', null)->assert('id', '\\d+|')->bind('admin_recommend_edit'); // おすすめ商品の削除 $app->match('/' . $app["config"]["admin_route"] . '/recommend/delete/{id}', '\\Plugin\\Recommend\\Controller\\RecommendController::delete')->value('id', null)->assert('id', '\\d+|')->bind('admin_recommend_delete'); // おすすめ商品のランク移動(上) $app->match('/' . $app["config"]["admin_route"] . '/recommend/rank_up/{id}', '\\Plugin\\Recommend\\Controller\\RecommendController::rankUp')->value('id', null)->assert('id', '\\d+|')->bind('admin_recommend_rank_up'); // おすすめ商品のランク移動(下) $app->match('/' . $app["config"]["admin_route"] . '/recommend/rank_down/{id}', '\\Plugin\\Recommend\\Controller\\RecommendController::rankDown')->value('id', null)->assert('id', '\\d+|')->bind('admin_recommend_rank_down'); // 商品検索画面表示 $app->post('/' . $app["config"]["admin_route"] . '/recommend/search/product', '\\Plugin\\Recommend\\Controller\\RecommendSearchModelController::searchProduct')->bind('admin_recommend_search_product'); // ブロック $app->match('/block/recommend_product_block', '\\Plugin\\Recommend\\Controller\\Block\\RecommendController::index')->bind('block_recommend_product_block'); // 型登録 $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\Recommend\Form\Type\RecommendProductType($app); return $types; })); // サービスの登録 $app['eccube.plugin.recommend.service.recommend'] = $app->share(function () use($app) { return new \Plugin\Recommend\Service\RecommendService($app); }); // メッセージ登録 $app['translator'] = $app->share($app->extend('translator', function ($translator, \Silex\Application $app) { $translator->addLoader('yaml', new \Symfony\Component\Translation\Loader\YamlFileLoader()); $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); // メニュー登録 $app['config'] = $app->share($app->extend('config', function ($config) { $addNavi['id'] = 'admin_recommend'; $addNavi['name'] = 'おすすめ管理'; $addNavi['url'] = 'admin_recommend_list'; $nav = $config['nav']; foreach ($nav as $key => $val) { if ('content' == $val['id']) { $nav[$key]['child'][] = $addNavi; } } $config['nav'] = $nav; return $config; })); }
public function register(BaseApplication $app) { // 定休日テーブル用リポジトリ $app['eccube.plugin.holiday.repository.holiday'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\Holiday\\Entity\\Holiday'); }); $basePath = '/' . $app["config"]["admin_route"]; // 一覧 $app->match($basePath . '/system/shop/holiday/', '\\Plugin\\Holiday\\Controller\\HolidayController::index')->bind('admin_setting_shop_holiday'); // 新規作成 $app->match($basePath . '/system/shop/holiday/new', '\\Plugin\\Holiday\\Controller\\HolidayController::edit')->bind('admin_setting_shop_holiday_new'); // 編集 $app->match($basePath . '/system/shop/holiday/{id}/edit', '\\Plugin\\Holiday\\Controller\\HolidayController::edit')->assert('id', '\\d+')->bind('admin_setting_shop_holiday_edit'); // 一覧:削除 $app->delete($basePath . '/system/shop/holiday/{id}/delete', '\\Plugin\\Holiday\\Controller\\HolidayController::delete')->assert('id', '\\d+')->bind('admin_setting_shop_holiday_delete'); // 一覧:上 $app->put($basePath . '/system/shop/holiday/{id}/up', '\\Plugin\\Holiday\\Controller\\HolidayController::up')->assert('id', '\\d+')->bind('admin_setting_shop_holiday_up'); // 一覧:下 $app->put($basePath . '/system/shop/holiday/{id}/down', '\\Plugin\\Holiday\\Controller\\HolidayController::down')->assert('id', '\\d+')->bind('admin_setting_shop_holiday_down'); $app->match('/block/holiday_calendar_block', '\\Plugin\\Holiday\\Controller\\Block\\HolidayController::index')->bind('block_holiday_calendar_block'); // 型登録 $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\Holiday\Form\Type\HolidayType($app); return $types; })); // メッセージ登録 $app['translator'] = $app->share($app->extend('translator', function ($translator, \Silex\Application $app) { $translator->addLoader('yaml', new \Symfony\Component\Translation\Loader\YamlFileLoader()); $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); // load config $conf = $app['config']; $app['config'] = $app->share(function () use($conf) { $confarray = array(); $path_file = __DIR__ . '/../Resource/config/path.yml'; if (file_exists($path_file)) { $config_yml = Yaml::parse(file_get_contents($path_file)); if (isset($config_yml)) { $confarray = array_replace_recursive($confarray, $config_yml); } } return array_replace_recursive($conf, $confarray); }); // メニュー登録 $app['config'] = $app->share($app->extend('config', function ($config) { $addNavi['id'] = "holiday"; $addNavi['name'] = "定休日管理"; $addNavi['url'] = "admin_setting_shop_holiday"; self::addNavi($config['nav'], $addNavi, array('setting', 'shop')); return $config; })); }
public function register(BaseApplication $app) { // 不要? $app['eccube.plugin.maker.repository.maker_plugin'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\Maker\\Entity\\MakerPlugin'); }); // メーカーテーブル用リポジトリ $app['eccube.plugin.maker.repository.maker'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\Maker\\Entity\\Maker'); }); $app['eccube.plugin.maker.repository.product_maker'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\Maker\\Entity\\ProductMaker'); }); // 一覧・登録・修正 $app->match('/' . $app["config"]["admin_route"] . '/product/maker/{id}', '\\Plugin\\Maker\\Controller\\MakerController::index')->value('id', null)->assert('id', '\\d+|')->bind('admin_maker'); // 削除 $app->match('/' . $app["config"]["admin_route"] . '/product/maker/{id}/delete', '\\Plugin\\Maker\\Controller\\MakerController::delete')->value('id', null)->assert('id', '\\d+|')->bind('admin_maker_delete'); // 上 $app->match('/' . $app["config"]["admin_route"] . '/product/maker/{id}/up', '\\Plugin\\Maker\\Controller\\MakerController::up')->value('id', null)->assert('id', '\\d+|')->bind('admin_maker_up'); // 下 $app->match('/' . $app["config"]["admin_route"] . '/product/maker/{id}/down', '\\Plugin\\Maker\\Controller\\MakerController::down')->value('id', null)->assert('id', '\\d+|')->bind('admin_maker_down'); // 型登録 $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\Maker\Form\Type\MakerType($app); return $types; })); // Form Extension $app['form.type.extensions'] = $app->share($app->extend('form.type.extensions', function ($extensions) use($app) { $extensions[] = new \Plugin\Maker\Form\Extension\Admin\ProductMakerTypeExtension($app); return $extensions; })); // メッセージ登録 $app['translator'] = $app->share($app->extend('translator', function ($translator, \Silex\Application $app) { $translator->addLoader('yaml', new \Symfony\Component\Translation\Loader\YamlFileLoader()); $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); // メニュー登録 $app['config'] = $app->share($app->extend('config', function ($config) { $addNavi['id'] = "maker"; $addNavi['name'] = "メーカー管理"; $addNavi['url'] = "admin_maker"; $nav = $config['nav']; foreach ($nav as $key => $val) { if ("product" == $val["id"]) { $nav[$key]['child'][] = $addNavi; } } $config['nav'] = $nav; return $config; })); }
/** * register. * * @param Application $app */ public function register(BaseApplication $app) { $app->post('/related_product/search_product', '\\Plugin\\RelatedProduct\\Controller\\Admin\\RelatedProductController::searchProduct')->bind('admin_related_product_search'); $app->post('/related_product/get_product', '\\Plugin\\RelatedProduct\\Controller\\Admin\\RelatedProductController::getProduct')->bind('admin_related_product_get_product'); $app->match('/' . $app['config']['admin_route'] . '/related_product/search/product/page/{page_no}', '\\Plugin\\RelatedProduct\\Controller\\Admin\\RelatedProductController::searchProduct')->assert('page_no', '\\d+')->bind('admin_related_product_search_product_page'); // イベントの追加 $app['eccube.plugin.relatedproduct.event'] = $app->share(function () use($app) { return new Event($app); }); $app['eccube.plugin.relatedproduct.event.legacy'] = $app->share(function () use($app) { return new EventLegacy($app); }); // Formの定義 $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new RelatedProductType($app); return $types; })); // @deprecated for since v3.0.0, to be removed in 3.1. if (!Version::isSupportGetInstanceFunction()) { // Form/Extension $app['form.type.extensions'] = $app->share($app->extend('form.type.extensions', function ($extensions) { $extensions[] = new RelatedCollectionExtension(); return $extensions; })); } // Repository $app['eccube.plugin.repository.related_product'] = function () use($app) { return $app['orm.em']->getRepository('\\Plugin\\RelatedProduct\\Entity\\RelatedProduct'); }; // メッセージ登録 $app['translator'] = $app->share($app->extend('translator', function (Translator $translator, Application $app) { $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); // Add config file. $app['config'] = $app->share($app->extend('config', function ($config) { // Update constants $constantFile = __DIR__ . '/../Resource/config/constant.yml'; if (file_exists($constantFile)) { $constant = Yaml::parse(file_get_contents($constantFile)); if (!empty($constant)) { // Replace constants $config = array_replace_recursive($config, $constant); } } return $config; })); // initialize logger (for 3.0.0 - 3.0.8) if (!Version::isSupportGetInstanceFunction()) { eccube_log_init($app); } }
public function register(BaseApplication $app) { // Setting // [システム設定]-[プラグイン一覧]に設定リンクを表示する // $app->match('/' . $app["config"]["admin_route"] . '/plugin/order_pdf/config', '\\Plugin\\OrderPdf\\Controller\\OrderPdfController::index')->bind('plugin_OrderPdf_config'); // ============================================================ // リポジトリの登録 // ============================================================ // 不要? $app['eccube.plugin.order_pdf.repository.order_pdf_plugin'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\OrderPdf\\Entity\\OrderPdfPlugin'); }); // 注文情報テーブルリポジトリ $app['eccube.plugin.order_pdf.repository.order_pdf_order'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\OrderPdf\\Entity\\OrderPdfOrder'); }); // 特定商取引法管理 $app['eccube.plugin.order_pdf.repository.order_pdf_help'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\OrderPdf\\Entity\\OrderPdfHelp'); }); // ============================================================ // コントローラの登録 // ============================================================ // 帳票の作成 $app->match('/' . $app["config"]["admin_route"] . '/orderPdf', '\\Plugin\\OrderPdf\\Controller\\OrderPdfController::index')->value('id', null)->assert('id', '\\d+|')->bind('admin_order_pdf'); // PDFファイルダウンロード $app->match('/' . $app["config"]["admin_route"] . '/orderPdf/download', '\\Plugin\\OrderPdf\\Controller\\OrderPdfController::download')->value('id', null)->assert('id', '\\d+|')->bind('admin_order_pdf_download'); // ============================================================ // Formの登録 // ============================================================ // 型登録 $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\OrderPdf\Form\Type\OrderPdfType($app); return $types; })); // ----------------------------- // サービスの登録 // ----------------------------- // 帳票作成 $app['eccube.plugin.order_pdf.service.order_pdf'] = $app->share(function () use($app) { return new \Plugin\OrderPdf\Service\OrderPdfService($app); }); // ============================================================ // メッセージ登録 // ============================================================ $app['translator'] = $app->share($app->extend('translator', function ($translator, \Silex\Application $app) { $translator->addLoader('yaml', new \Symfony\Component\Translation\Loader\YamlFileLoader()); $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); }
public function register(BaseApplication $app) { // 定休日管理テーブル用リポジトリ $app['eccube.plugin.holiday.repository.holiday'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\Holiday\\Entity\\Holiday'); }); // 定休曜日管理テーブル用レポジトリ $app['eccube.plugin.holiday.repository.holidayweek'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\Holiday\\Entity\\HolidayWeek'); }); // 定休日基本設定テーブル用レポジトリ $app['eccube.plugin.holiday.repository.holidayconfig'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\Holiday\\Entity\\HolidayConfig'); }); // Setting $app->match('/' . $app["config"]["admin_route"] . '/plugin/holiday/config/', '\\Plugin\\Holiday\\Controller\\ConfigController::edit')->value('id', 1)->assert('id', '\\d+|')->bind('plugin_holiday_config'); // 一覧・登録・修正 $app->match('/' . $app["config"]["admin_route"] . '/setting/holiday/{id}', '\\Plugin\\Holiday\\Controller\\HolidayController::index')->value('id', null)->assert('id', '\\d+|')->bind('admin_holiday'); // 定休日 曜日 $app->match('/' . $app["config"]["admin_route"] . '/setting/holidayweek/{id}', '\\Plugin\\Holiday\\Controller\\HolidayWeekController::index')->value('id', 1)->assert('id', '\\d+|')->bind('admin_holiday_week'); // 削除 $app->match('/' . $app["config"]["admin_route"] . '/setting/holiday/{id}/delete', '\\Plugin\\Holiday\\Controller\\HolidayController::delete')->value('id', null)->assert('id', '\\d+|')->bind('admin_holiday_delete'); // 型登録 $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\Holiday\Form\Type\HolidayConfigType($app); $types[] = new \Plugin\Holiday\Form\Type\HolidayType($app); $types[] = new \Plugin\Holiday\Form\Type\HolidayWeekType($app); return $types; })); // メッセージ登録 $app['translator'] = $app->share($app->extend('translator', function ($translator, \Silex\Application $app) { $translator->addLoader('yaml', new \Symfony\Component\Translation\Loader\YamlFileLoader()); $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); // 定休日管理 $app['config'] = $app->share($app->extend('config', function ($config) { $addNavi['id'] = "holiday"; $addNavi['name'] = "定休日管理"; $addNavi['has_child'] = true; $addNavi['child'] = array(array('id' => 'holiday_config', 'name' => '基本設定', 'url' => 'plugin_holiday_config'), array('id' => 'holiday_week', 'name' => '定休日管理', 'url' => 'admin_holiday_week'), array('id' => 'holiday', 'name' => '休日管理', 'url' => 'admin_holiday')); $nav = $config['nav']; foreach ($nav as $key => $val) { if ("setting" == $val["id"]) { $nav[$key]['child'][] = $addNavi; } } $config['nav'] = $nav; return $config; })); }
public function register(Application $app) { // $app['np.blog.options'] = array( // 'templates' => array( // 'index' => '', // ), // 'post_limits' => array( // 'rss' => 20, // 'recent_posts_widget' => 5, // ) // ); $app['np.blog.options'] = array(); $app['np.blog.theme.options'] = array(); $app['np.blog.mount_point'] = '/blog'; $app['np.blog.permalink_format'] = '/{year}/{month}/{slug}'; $app['np.blog.content_filter'] = $app->share(function ($app) { $markdown = new \dflydev\markdown\MarkdownParser(); return new \NodePub\BlogEngine\Filter\FilterMarkdown($markdown); }); # Alias twig by wrapping it in a closure $app['np.blog.template.engine'] = function ($app) { return $app['twig']; }; if (isset($app['twig'])) { $app['twig'] = $app->share($app->extend('twig', function ($twig, $app) { $twig->addExtension(new BlogTwigExtension($app['np.blog.post_manager'], $app['url_generator'])); return $twig; })); } if (isset($app['twig.loader.filesystem'])) { $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function ($twigLoader, $app) { $twigLoader->addPath(__DIR__ . '/../Resources/views', BlogConfiguration::TEMPLATE_NAMESPACE); return $twigLoader; })); } $app['np.blog.processed_options'] = $app->share(function ($app) { $processor = new Processor(); $config = new BlogConfiguration(); // combine default blog settings with dynamic theme template settings return $processor->processConfiguration($config, array($app['np.blog.options'], $app['np.blog.theme.options'])); }); $app['np.blog.post_manager'] = $app->share(function ($app) { $manager = new PostManager($app['np.blog.posts_dir']); $manager->setContentFilter($app['np.blog.content_filter']); $manager->setSourceFileExtension('txt'); //$manager->setCacheDirectory($app['cache_dir']); $manager->setCacheDirectory(false); return $manager; }); $app['np.blog.controller'] = $app->share(function ($app) { return new BlogController($app['np.blog.post_manager'], $app['np.blog.template.engine'], $app['np.blog.processed_options']); }); }
public function register(Application $app) { $app['twig.loader'] = $app->share($app->extend('twig.loader', function (\Twig_Loader_Chain $loader, Application $app) { $loader->addLoader(new \Twig_Loader_Filesystem(APP_ROOT_PATH . '/views')); $loader->addLoader(new \Twig_Loader_Filesystem(APP_ROOT_PATH . '/src')); return $loader; })); $app['twig'] = $app->share($app->extend('twig', function ($twig, $app) { // add extension filter etc return $twig; })); }
public function register(Application $app) { $app['twig.loader'] = $app->share($app->extend('twig.loader', function (\Twig_Loader_Chain $loader, Application $app) { $loader->addLoader(new \Twig_Loader_Filesystem(APP_ROOT_PATH . '/views')); $loader->addLoader(new \Twig_Loader_Filesystem(APP_ROOT_PATH . '/src')); return $loader; })); $app['twig'] = $app->share($app->extend('twig', function ($twig, $app) { // add extension filter etc $twig->addGlobal('baseApiUrl', getenv('INTERNAL_API_URL')); return $twig; })); }
public function register(BaseApplication $app) { // 商品レビュー用リポジトリ $app['eccube.plugin.product_review.repository.product_review'] = $app->share(function () use($app) { return $app['orm.em']->getRepository('Plugin\\ProductReview\\Entity\\ProductReview'); }); // 一覧 $app->match('/' . $app["config"]["admin_route"] . '/product/review/', '\\Plugin\\ProductReview\\Controller\\ProductReviewController::index')->bind('admin_product_review'); // 一覧:表示件数変更 $app->match('/' . $app["config"]["admin_route"] . '/product/review/{page_no}', '\\Plugin\\ProductReview\\Controller\\ProductReviewController::index')->assert('page_no', '\\d+')->bind('admin_product_review_page'); // 編集 $app->match('/' . $app["config"]["admin_route"] . '/product/review/edit/{id}', '\\Plugin\\ProductReview\\Controller\\ProductReviewController::edit')->assert('id', '\\d+')->bind('admin_product_review_edit'); // 削除 $app->match('/' . $app["config"]["admin_route"] . '/product/review/delete/{id}', '\\Plugin\\ProductReview\\Controller\\ProductReviewController::delete')->assert('id', '\\d+')->bind('admin_product_review_delete'); // フロント:レビュー入力、確認 $app->match('/products/detail/{id}/review', '\\Plugin\\ProductReview\\Controller\\ProductReviewController::review')->value('id', null)->assert('id', '\\d+|')->bind('products_detail_review'); // フロント:レビュー登録完了 $app->match('/products/detail/{id}/review/complete', '\\Plugin\\ProductReview\\Controller\\ProductReviewController::complete')->value('id', null)->assert('id', '\\d+|')->bind('products_detail_review_complete'); // フロント:システムエラー $app->match('/products/detail/review_error', '\\Plugin\\ProductReview\\Controller\\ProductReviewController::frontError')->bind('products_detail_review_error'); // 型登録 $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Plugin\ProductReview\Form\Type\ProductReviewType($app); $types[] = new \Plugin\ProductReview\Form\Type\Admin\ProductReviewType($app); $types[] = new \Plugin\ProductReview\Form\Type\Admin\ProductReviewSerchType($app); return $types; })); // メッセージ登録 $app['translator'] = $app->share($app->extend('translator', function ($translator, \Silex\Application $app) { $translator->addLoader('yaml', new \Symfony\Component\Translation\Loader\YamlFileLoader()); $file = __DIR__ . '/../Resource/locale/message.' . $app['locale'] . '.yml'; if (file_exists($file)) { $translator->addResource('yaml', $file, $app['locale']); } return $translator; })); // メニュー登録 $app['config'] = $app->share($app->extend('config', function ($config) { $addNavi['id'] = 'product_review'; $addNavi['name'] = 'レビュー管理'; $addNavi['url'] = 'admin_product_review'; $nav = $config['nav']; foreach ($nav as $key => $val) { if ('product' == $val['id']) { $nav[$key]['child'][] = $addNavi; } } $config['nav'] = $nav; return $config; })); }
/** * {@inheritDoc} */ public function register(Application $app) { $app['exception_controller'] = 'Flint\\Controller\\ExceptionController::showAction'; $app['exception_handler'] = $app->share(function ($app) { return new ExceptionListener($app['exception_controller'], $app['logger']); }); $app['resolver'] = $app->share($app->extend('resolver', function ($resolver, $app) { return new ControllerResolver($resolver, $app); })); $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function ($loader, $app) { $loader->addPath(__DIR__ . '/../Resources/views', 'Jazz'); return $loader; })); }
/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. * * @param BaseApplication $app An Application instance */ public function register(BaseApplication $app) { $app['form.type.extensions'] = $app->share($app->extend('form.type.extensions', function ($extensions) use($app) { $extensions[] = new \Eccube\Form\Extension\HelpTypeExtension(); return $extensions; })); $app['form.types'] = $app->share($app->extend('form.types', function ($types) use($app) { $types[] = new \Eccube\Form\Type\Install\Step1Type($app); $types[] = new \Eccube\Form\Type\Install\Step3Type($app); $types[] = new \Eccube\Form\Type\Install\Step4Type($app); $types[] = new \Eccube\Form\Type\Install\Step5Type($app); return $types; })); }
public function register(Application $app) { $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig, $app) { $twig->addExtension(new AssetsExtension($app)); return $twig; })); $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function (\Twig_Loader_Filesystem $loader, $app) { $loader->addPath($app['silicone.templates_path'], 'Silicone'); return $loader; })); $app['silicone.templates_path'] = function () { $r = new \ReflectionClass('Silicone\\Application'); return dirname($r->getFileName()) . '/Resources/views'; }; }
public function register(Application $app) { if (!isset($app['translator'])) { $app->register(new Silex\Provider\TranslationServiceProvider(), ['locale_fallbacks' => ['en_GB', 'en']]); } $app['translator.caching'] = true; if ($app['config']->get('general/caching/translations') === false) { $app['translator.caching'] = false; } $app['translator.cache_dir'] = $app->share(function ($app) { if ($app['translator.caching'] === false) { return null; } return $app['resources']->getPath('cache/trans'); }); $app['translator'] = $app->share($app->extend('translator', function ($translator, $app) { foreach ($app['translator.loaders'] as $format => $loader) { $translator->addLoader($format, $loader); } return $translator; })); $app['translator.loaders'] = $app->share(function () { return ['yml' => new TranslationLoader\YamlFileLoader(), 'xlf' => new TranslationLoader\XliffFileLoader()]; }); $app['translator.resources'] = $app->extend('translator.resources', function (array $resources, $app) { $locale = $app['locale']; $resources = array_merge($resources, static::addResources($app, $locale)); foreach ($app['locale_fallbacks'] as $fallback) { if ($locale !== $fallback) { $resources = array_merge($resources, static::addResources($app, $fallback)); } } return $resources; }); $locales = (array) $app['config']->get('general/locale'); // Add fallback locales to list if they are not already there $locales = array_unique(array_merge($locales, $app['locale_fallbacks'])); // Merge in generic versions of each locale $locales = $this->mergeGenericLocales($locales); // Merge in UTF-8 suffixes for each locale $locales = $this->mergeUtf8Locales($locales); // Set locales for native php...not sure why? setlocale(LC_ALL, $locales); // Set the default timezone if provided in the Config date_default_timezone_set($app['config']->get('general/timezone') ?: ini_get('date.timezone') ?: 'UTC'); // for javascript datetime calculations, timezone offset. e.g. "+02:00" $app['timezone_offset'] = date('P'); }
/** * Automatically registers all service classes in $this->services array * {@inheritdoc} * @param Application|\Apitude\Core\Application $app */ public function register(Application $app) { foreach ($this->services as $key => $class) { if (is_numeric($key)) { $key = $class; } $app[$key] = $app->share(function () use($class, $app) { $result = new $class(); $app->initialize($result); return $result; }); } if (!empty($this->doctrineEventSubscribers)) { $config = $app['config']; foreach ($this->doctrineEventSubscribers as $class) { $config['orm.subscribers'][] = $class; } } if (!empty($this->entityFolders)) { if (!isset($config)) { $config = $app['config']; } foreach ($this->entityFolders as $namespace => $path) { $config['orm.options']['orm.em.options']['mappings'][] = ['type' => 'annotation', 'namespace' => $namespace, 'path' => $path, 'use_simple_annotation_reader' => false]; } } if (isset($config)) { $app['config'] = $config; } if (php_sapi_name() === 'cli' && !empty($this->commands)) { $app['base_commands'] = $app->extend('base_commands', function (array $commands) { return array_merge($commands, $this->commands); }); } }