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;
     }));
 }
Example #2
0
 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');
 }
Example #5
0
 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()));
     });
 }
Example #8
0
 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;
     }));
 }
Example #9
0
 /**
  * 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;
     }));
 }
Example #26
0
 /**
  * {@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);
         });
     }
 }