/** * Creates the application. * * @return \Symfony\Component\HttpKernel\HttpKernel */ public function createApplication() { $app = new Silex\Application(); $app['foo'] = 'bar'; $app->mount('/containerdoc', new ContainerDocProvider()); return $app; }
/** * @return Silex\Application */ static function getApp() { $app = new \Silex\Application(); $app['debug'] = TRUE; $app->register(new MonologServiceProvider(), array('monolog.logfile' => ROOT . '/log.txt')); $app->register(new UrlGeneratorServiceProvider()); $app->register(new ConsoleServiceProvider()); $app->register(new SessionServiceProvider(), array('session.test' => TRUE)); $app->register(new TranslationServiceProvider()); $app->register(new TwigServiceProvider(), array("twig.options" => array("path" => ROOT))); $app->register(new FormServiceProvider()); $app->register(new DoctrineServiceProvider(), array("db.options" => array("driver" => "pdo_sqlite", "path" => 'url_shortener.sqlite'))); $app->register(new DoctrineORMServiceProvider()); $app->register(new UrlShortenerAppServiceProvider()); $app->register(new ValidatorServiceProvider()); /*$app->register(new ValidatorServiceProvider, array( "validator.mapping.chain_loader" => $app->share(function ($app) { return new CustomLoaderChain( array( new StaticMethodLoader, ) ); }), "validator.mapping.class_metadata_factory" => $app->share(function ($app) { return new ClassMetadataFactory($app['validator.chain_loader']); }) ));*/ $app->mount("/", $app['url_shortener.controller']); $app->boot(); /** * create the database */ /* @var $em \Doctrine\ORM\EntityManager */ $em = $app['orm.em']; $app['createDB'] = $app->protect(function () use($em) { $tool = new SchemaTool($em); $tool->dropDatabase(); $tool->createSchema($em->getMetadataFactory()->getAllMetadata()); }); return $app; }
<?php ini_set('error_reporting', E_ALL); ini_set('display_errors', E_ALL); require_once dirname(dirname(__FILE__)) . '/vendor/autoload.php'; use Symfony\Component\Translation\Loader\YamlFileLoader; $app = new Silex\Application(); $app['debug'] = true; $app->register(new Silex\Provider\TwigServiceProvider(), array('twig.path' => dirname(dirname(__FILE__)) . '/src/views')); $app->register(new Silex\Provider\UrlGeneratorServiceProvider()); $app->register(new Silex\Provider\TranslationServiceProvider(), array('locale' => 'pl', 'locale_fallbacks' => array('pl'))); $app['translator'] = $app->share($app->extend('translator', function ($translator, $app) { $translator->addLoader('yaml', new YamlFileLoader()); $translator->addResource('yaml', dirname(dirname(__FILE__)) . '/config/locales/pl.yml', 'pl'); return $translator; })); $app->register(new Silex\Provider\SessionServiceProvider()); $app->register(new Silex\Provider\FormServiceProvider()); $app->register(new Silex\Provider\ValidatorServiceProvider()); $app->register(new Silex\Provider\SecurityServiceProvider(), array('security.firewalls' => array('admin' => array('pattern' => '^.*$', 'form' => array('login_path' => 'auth_login', 'check_path' => 'auth_login_check', 'default_target_path' => '/', 'username_parameter' => 'loginForm[login]', 'password_parameter' => 'loginForm[password]'), 'anonymous' => true, 'logout' => array('logout_path' => 'auth_logout', 'target_url' => '/'), 'users' => $app->share(function () use($app) { return new Provider\UserProvider($app); }))), 'security.access_rules' => array(array('^/.+$', 'IS_AUTHENTICATED_ANONYMOUSLY'), array('^/images/u/add', 'ROLE_USER'), array('^/admin/.+$', 'ROLE_ADMIN')), 'security.role_hierarchy' => array('ROLE_ADMIN' => array('ROLE_USER')))); //var_dump($app['security.encoder.digest']->encodePassword('password', '')); $app->mount('/hello', new Controller\HelloController()); $app->mount('/', new Controller\IndexController()); $app->mount('auth', new Controller\AuthController()); $app->mount('/registration', new Controller\RegistrationController()); $app->mount('/comments', new Controller\CommentsController()); $app->mount('/images', new Controller\ImagesController()); $app->mount('/photos', new Controller\PhotosController()); $app->run();
$app->register(new DerAlex\Silex\YamlConfigServiceProvider(CONFIG_FILE)); $app['debug'] = $app['config']['debug']; Symfony\Component\Debug\ExceptionHandler::register(!$app['debug']); if (in_array($app['config']['timezone'], DateTimeZone::listIdentifiers())) { date_default_timezone_set($app['config']['timezone']); } } $app->register(new Silex\Provider\TwigServiceProvider(), ['twig.path' => APP_ROOT . '/views', 'twig.options' => ['debug' => $app['debug']]]); $app->register(new Silex\Provider\SessionServiceProvider()); $app->register(new Silex\Provider\UrlGeneratorServiceProvider()); $app->register(new Silex\Provider\SecurityServiceProvider(), ['security.firewalls' => ['admin' => ['pattern' => '^/(logs|api)', 'form' => ['login_path' => '/login', 'check_path' => '/logs/login_check'], 'users' => ['user' => ['ROLE_USER', is_file(PASSWD_FILE) ? file_get_contents(PASSWD_FILE) : null]], 'logout' => ['logout_path' => '/logs/logout', 'invalidate_session' => true]]]]); $app['security.encoder.digest'] = $app->share(function ($app) { return new \Symfony\Component\Security\Core\Encoder\BCryptPasswordEncoder(10); }); if (!is_file(PASSWD_FILE)) { $app->mount('/', include 'guest.php'); } else { $app->mount('/api', include 'api.php'); $app->mount('/', include 'user.php'); } $app->error(function (\Syonix\LogViewer\Exceptions\ConfigFileMissingException $e, $code) use($app) { return $app['twig']->render('error/config_file_missing.html.twig'); }); $app->error(function (\Syonix\LogViewer\Exceptions\NoLogsConfiguredException $e, $code) use($app) { return $app['twig']->render('error/no_log_files.html.twig'); }); $app->error(function (\Symfony\Component\HttpKernel\Exception\HttpException $e) use($app) { if ($app['debug']) { return; } switch ($e->getStatusCode()) {
<?php define('APPLICATION_PATH', __DIR__ . '/../'); define('CONFIG', APPLICATION_PATH . '/configs/config.json'); require_once APPLICATION_PATH . "vendor/autoload.php"; $config = new \Noodlehaus\Config(CONFIG); $app = new Silex\Application(); $app['debug'] = $config->get('debug'); $dbOptions = $config->get('db'); define('APP_KEY', $config->get('app_key')); $app->register(new Silex\Provider\DoctrineServiceProvider(), ['db.options' => $dbOptions]); \Sasik\Db\DbSingleton::setDb($app['db']); $app->mount('/', new Sasik\Controllers\IndexControllerProvider()); $app->run();
<?php set_include_path('src'); require_once __DIR__ . '/vendor/autoload.php'; use Mavericks\Controller\API\Provider\TrackRoutes as TrackAPI; use Mavericks\Controller\Web\Provider\TrackRoutes as TrackWeb; use Mavericks\Controller\Web\Provider\HomeRoutes; $app = new Silex\Application(); $app['debug'] = true; include __DIR__ . '/config/config.php'; // register the necessary services and controllers include __DIR__ . '/registry.php'; // mount the group routes $app->mount("/", new HomeRoutes()); $app->mount("/api/track", new TrackAPI()); $app->mount("/track", new TrackWeb()); $app->run();
<?php $app = new Silex\Application(); $app['debug'] = true; // https://github.com/silexphp/Silex/wiki/Third-Party-ServiceProviders#database $app->register(new \Arseniew\Silex\Provider\IdiormServiceProvider(), ['idiorm.db.options' => ['connection_string' => 'mysql:host=localhost;dbname=Prueba', 'username' => 'root', 'password' => '1234']]); // Descomentar si se desea usar Doctrine //$app->register( // new Silex\Provider\DoctrineServiceProvider(), // [ // 'dbs.options' => [ // 'default' => [ // 'driver' => 'pdo_mysql', // 'host' => 'localhost', // 'dbname' => 'Prueba', // 'user' => 'root', // 'password' => '1234', // 'charset' => 'utf8', // ] // ], // ] //); $app->mount('/', new TS\Controller\StockcodeController()); return $app;
// Set path for pages. $app['pages.path'] = __DIR__ . '/pages'; // Set path for docs local repository. $app['docs.path'] = __DIR__ . '/_documentation'; // Set path for recipes local repository. $app['recipes.path'] = __DIR__ . '/_recipes'; // Set path for releases. $app['releases.path'] = __DIR__ . '/releases'; // Set cli file. $app['cli'] = __FILE__; // Set schedule file. $app['schedule'] = __DIR__ . '/logs/schedule.log'; ######################### # Mount controller # ######################### $app->mount('/', include __DIR__ . '/controllers/update.php'); $app->mount('/', include __DIR__ . '/controllers/docs.php'); $app->mount('/', include __DIR__ . '/controllers/recipes.php'); $app->mount('/', include __DIR__ . '/controllers/download.php'); $app->mount('/', include __DIR__ . '/controllers/sitemap.php'); $app->mount('/', include __DIR__ . '/controllers/pages.php'); // Must be last, because match everything. ######################### # Start application # ######################### if (php_sapi_name() == "cli") { require __DIR__ . '/cli.php'; } else { if ($app['cache']) { $app['http_cache']->run(); } else {
<?php include __DIR__ . '/../src/Messaging/bootstrap.php'; $app = new Silex\Application(); $app['debug'] = true; // api v1 $app->mount('/api/1.0', new \Messaging\Controllers\APIVersion1()); // index page $app->get('/', function () { ob_start(); include __DIR__ . '/../src/Messaging/views/layout.php'; return ob_get_clean(); }); $app->run();
<?php require_once __DIR__ . '/../vendor/autoload.php'; $app = new Silex\Application(); $app->register(new Silex\Provider\MonologServiceProvider()); $app->register(new Silex\Provider\DoctrineServiceProvider()); $app->register(new SilexRestApi\Providers\ConfigProvider(__DIR__ . '/../config.php')); $app->register($restapi = new SilexRestApi\Providers\RestApiProvider()); $app->mount('/', $restapi); $app->run();
<?php require_once __DIR__ . '/../../vendor/silex.phar'; require_once __DIR__ . '/../../src/Statme/Application.php'; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; Statme\Application::bootstrap(); $entityManager = Statme\Application::getEntityManager(); $app = new Silex\Application(); $app->mount('/user', new Controller\User('user', $entityManager)); /** Error handler */ $app->error(function (\Exception $e) { return new Response($e->getMessage(), $e->getCode()); }); $app->run();
require_once __DIR__ . '/../bootstrap/auth.php'; } /* |-------------------------------------------------------------------------- | Provide all of our various routes |-------------------------------------------------------------------------- | | These are the various post authentication paths that will return results. | We prefer to use mount points instead of routes right in this file. | */ $app->get('/discovery', function () use($app) { return $app->json(array("server_id" => require_once __DIR__ . '/../config/server_id.php', "hostname" => trim(`hostname`))); }); if (!in_array('/tools', $config['disabled'])) { $app->mount('/tools', new Snapr\Routers\ToolsController()); } if (!in_array('/haproxy/stats', $config['disabled'])) { $app->mount('/haproxy/stats', new Snapr\Routers\HAProxyStatsController()); } if (!in_array('/haproxy/program', $config['disabled'])) { $app->mount('/haproxy/program', new Snapr\Routers\HAProxyProgramController()); } /* |-------------------------------------------------------------------------- | Run the app |-------------------------------------------------------------------------- | | Let Silex do it's thing | */
$app['user'] = $app->share(function ($app) { $token = $app['security.token_storage']->getToken(); if ($token !== null) { return $token->getUser(); } return null; }); $app['comments'] = $app->share(function ($app) { return new Pamplemousse\Comments\Service($app); }); $app['photos'] = $app->share(function ($app) { return new Pamplemousse\Photos\Service($app); }); $app['slug'] = $app->share(function ($app) { return new Cocur\Slugify\Slugify(); }); $app['tags'] = $app->share(function ($app) { return new Pamplemousse\Tags\Service($app); }); $app['imagine'] = $app->share(function ($app) { $imagine = new \Imagine\Gd\Imagine(); $imagine->setMetadataReader(new \Imagine\Image\Metadata\ExifMetadataReader()); return $imagine; }); /** Controller */ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; $app->mount('/', new Pamplemousse\Router()); $app->mount('/photo/', new Pamplemousse\Photos\Router()); $app->mount('/admin/', new Pamplemousse\Admin\Router()); return $app;
foreach ($results as $value) { $myObject = new myObject(); $myObject->setId($value['id']); $myObject->setTitle($value['title']); $myObject->setSummary($value['summary']); $myObject->setText($value['text']); $myObject->setImg($value['img']); $arrayObj[] = $myObject; } return $app['twig']->render('search.twig', array('search' => 'true', 'results' => $results, 'keyword' => $keyword)); })->method('POST'); $app['twig'] = $app->share($app->extend('twig', function ($twig, $app) { $twig->addFunction(new \Twig_SimpleFunction('asset', function ($asset) { // implement whatever logic you need to determine the asset path return sprintf('http://localhost/webcup2015/web/views/%s', ltrim($asset, '/')); })); return $twig; })); $blogPosts = array(1 => array('date' => '2011-03-29', 'author' => 'igorw', 'title' => 'Using Silex', 'body' => '...'), 2 => array('date' => '2011-03-30', 'author' => 'hgignore', 'title' => 'Using Silex 1.2', 'body' => '...')); $blog = $app['controllers_factory']; $blog->get('/', function () { return 'Blog home page'; }); $forum = $app['controllers_factory']; $forum->get('/', function () { return 'Forum home page'; }); $app->mount('/blog', $blog); $app->mount('/forum', $forum); $app['debug'] = true; $app->run();
<?php require_once __DIR__ . '/vendor/autoload.php'; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Validator\Constraints as Assert; $app = new Silex\Application(); $app['debug'] = true; //Register validator service $app->register(new Silex\Provider\ValidatorServiceProvider()); // Register Provider to DB $app->register(new Silex\Provider\DoctrineServiceProvider(), array('db.options' => array('driver' => 'pdo_sqlite', 'path' => __DIR__ . '/db/messenger.sqlite'))); // Make json accepting functionality $app->before(function (Request $request) { if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) { $data = json_decode($request->getContent(), true); $request->request->replace(is_array($data) ? $data : array()); } }); //Mount needed controllers $app->mount('/users', new Messenger\UserController()); $app->mount('/users/{user_id}/messages', new Messenger\MessageController()); $app->error(function (\Exception $e, $code) use($app) { return $app->json(array("error" => $e->getMessage()), $code); }); $app->run();
<?php require_once __DIR__ . '/../vendor/autoload.php'; $app = new Silex\Application(); // Providers $app->register(new Silex\Provider\TwigServiceProvider(), array('twig.path' => __DIR__ . '/../views')); $app->register(new Silex\Provider\UrlGeneratorServiceProvider()); // Controllers $app->mount('/', new App\Controllers\IndexController()); return $app;
<?php require __DIR__ . '/../vendor/autoload.php'; $app = new Silex\Application(); //$app->register(new DerAlex\Silex\YamlConfigServiceProvider(__DIR__ . '/../config.build.yaml')); $app->register(new DerAlex\Silex\YamlConfigServiceProvider(__DIR__ . '/../config.yaml')); $app['debug'] = true; //$app['config']['debug']; $app->register(new Silex\Provider\TwigServiceProvider(), ['twig.path' => __DIR__ . '/../views']); $app->register(new Silex\Provider\DoctrineServiceProvider(), ['db.options' => $app['config']['database']]); $app->mount('/login', new PrintApp\Controllers\LoginControllerProvider()); $app->mount('/logout', new PrintApp\Controllers\LogoutControllerProvider()); $app->mount('/print', new PrintApp\Controllers\PrintControllerProvider()); $app->run();
<?php require_once __DIR__ . '/../vendor/autoload.php'; umask(00); //This will let the permissions be 0777 $app = new Silex\Application(); $app->register(new Digex\Provider\DigexServiceProvider()); $app['translator'] = $app->share($app->extend('translator', function ($translator, $app) { $translator->addLoader('yaml', new Symfony\Component\Translation\Loader\YamlFileLoader()); $filename = __DIR__ . '/trans/' . $app['locale'] . '.yml'; if (file_exists($filename)) { $translator->addResource('yaml', $filename, $app['locale']); } return $translator; })); /** CUSTOMIZE HERE **/ $app->mount('/', new Digitas\Demo\Controller\DefaultControllerProvider()); $app->mount('/admin', new Digitas\Admin\Controller\SecurityControllerProvider()); $app->mount('/admin', new Digitas\Admin\Controller\DefaultControllerProvider()); return $app;
if (!isset($app[$k])) { $app[$k] = $v; } } $app->register(new MonologServiceProvider()); $app->register(new DoctrineServiceProvider()); $app->register(new SecurityServiceProvider()); $app->register(new RememberMeServiceProvider()); $app->register(new SessionServiceProvider()); $app->register(new ServiceControllerServiceProvider()); $app->register(new UrlGeneratorServiceProvider()); $app->register(new TwigServiceProvider()); $app->register(new SwiftmailerServiceProvider()); // Register the SimpleUser service provider. $simpleUserProvider = new SimpleUser\UserServiceProvider(); $app->register($simpleUserProvider); $app->register(new TwigServiceProvider(), ['twig.path' => dirname(__DIR__) . '/views']); //$app->register(new TwigExtensionsServiceProvider()); $app->mount('/', new \Phase\TakeATicket\ControllerProvider($app)); $app->mount('/user', $simpleUserProvider); // SimpleUser options. See https://github.com/jasongrimes/silex-simpleuser for details. $app['user.options'] = ['mailer' => ['enabled' => false], 'emailConfirmation' => ['required' => true], 'templates' => ['layout' => 'simpleuser/layout.html.twig']]; // Security config. See http://silex.sensiolabs.org/doc/providers/security.html for details. $app['security.firewalls'] = array('secured_area' => array('pattern' => '^.*$', 'anonymous' => true, 'remember_me' => array(), 'form' => array('login_path' => '/user/login', 'check_path' => '/user/login_check'), 'logout' => array('logout_path' => '/user/logout'), 'users' => $app->share(function ($app) { return $app['user.manager']; }))); // Mailer config. See http://silex.sensiolabs.org/doc/providers/swiftmailer.html $app['swiftmailer.options'] = array(); // not actually using it at the moment // end simpleuser stuff return $app;
$app = new Silex\Application(); $app["debug"] = true; $db = ["driver" => "pdo_mysql", "dbname" => "tickets", "host" => "127.0.0.1", "port" => 3306, "user" => "root", "password" => "123456"]; $sc = ['login' => ['pattern' => '^/login-form'], 'secured' => ['pattern' => '^/user', 'form' => ['login_path' => '/login-form', 'check_path' => '/user/login-save'], 'logout' => ['logout_path' => '/user/logout', 'invalidate_session' => true], 'users' => $app->share(function () use($app) { return new \Tickets\SecurityProvider($app['db']); })]]; $sa = [['^/ticket.+$', 'ROLE_USER'], ['^/user.+$', 'ROLE_USER'], ['^/admin.+$', 'ROLE_ADMIN']]; $app->register(new Silex\Provider\SessionServiceProvider()); $app->register(new Silex\Provider\TwigServiceProvider(), ['twig.path' => __DIR__ . '/../views']); $app->register(new Silex\Provider\DoctrineServiceProvider(), ['db.options' => $db]); $app->register(new Silex\Provider\SecurityServiceProvider(), ['security.firewalls' => $sc, 'security.access_rules' => $sa]); $app->before(function ($request) use($app) { $sh = new \Tickets\SecurityProvider($app["db"]); $app["user"] = $sh->loadUserByUsername($app["session"]->get("username")); }); $app->mount('/ticket', new Tickets\TicketProvider()); $app->mount('/user', new Tickets\UserProvider()); $app->mount('/admin', new Tickets\AdminProvider()); $app->get('/', function () use($app) { $user = isset($app["user"]) ? $app["user"] : null; if ($user == null) { return $app->redirect("/login-form"); } if (array_search('ROLE_ADMIN', $user->getRoles()) !== false) { return $app->redirect("/admin/home"); } if (array_search('ROLE_USER', $user->getRoles()) !== false) { return $app->redirect("/user/home"); } return $app->redirect("/login-form"); });
<?php /* * This file is part of the "EloGank League of Legends Replay Observer Silex" package. * * https://github.com/EloGank/lol-replay-observer-silex * * For the full license information, please view the LICENSE * file that was distributed with this source code. */ require '../vendor/autoload.php'; $app = new \Silex\Application(['debug' => true]); $app->register(new \Silex\Provider\MonologServiceProvider(), array('monolog.logfile' => __DIR__ . '/../logs/error.log', 'monolog.name' => 'Elogank Replay Observer', 'monolog.level' => $app['debug'] ? \Monolog\Logger::INFO : \Monolog\Logger::ERROR)); $app->register(new \EloGank\Replay\Observer\Provider\ObserverServiceProvider(['replay.dir_path' => __DIR__ . '/../../lol-replay-downloader-cli/replays', 'cache' => new \EloGank\Replay\Observer\Cache\Adapter\RedisCacheAdapter(new \Predis\Client(['host' => '127.0.0.1', 'port' => 6379]))], $app['logger'])); $app->mount('/', new \EloGank\Replay\Observer\Provider\ObserverControllerProvider()); $app->run();
<?php require_once dirname(__DIR__) . '/vendor/autoload.php'; use Kisphp\Core\Factory; use Kisphp\Core\Config; use Symfony\Component\Yaml\Parser; $yaml = new Parser(); $params = $yaml->parse(file_get_contents(dirname(__DIR__) . '/app/config/parameters.yml')); $config = Config::getInstance()->setParams($params['parameters']); $app = new Silex\Application(); $app['debug'] = true; $app['factory'] = new Factory($app); $app->register(new \Silex\Provider\TwigServiceProvider(), ['twig.path' => dirname(__DIR__) . '/src/Kisphp/Views/']); $app->register(new \Silex\Provider\SwiftmailerServiceProvider(), ['host' => 'localhost', 'port' => '25', 'username' => '', 'password' => '', 'encryption' => null, 'auth_mode' => null]); $app->mount('/', new \Kisphp\Core\KisphpControllerProvider()); $app->run();
<?php $loader = (require_once __DIR__ . '/../vendor/autoload.php'); $loader->addPsr4('Jtest\\', array(__DIR__ . '/../app/controllers')); use Symfony\Component\HttpFoundation\Request; Request::enableHttpMethodParameterOverride(); $app = new Silex\Application(); $app['debug'] = true; require __DIR__ . '/../app/registers.php'; //I'd rather mount to /contact but I haven't succeed to make this strange trailing-slash routing work correctly with Angular $resource $app->mount('/', new Jtest\ContactController()); $app->run();
$app->register(new Silex\Provider\SessionServiceProvider()); $app->register(new Silex\Provider\UrlGeneratorServiceProvider()); $app->register(new Silex\Provider\ValidatorServiceProvider()); $app->register(new Silex\Provider\ServiceControllerServiceProvider()); $app->register(new Silex\Provider\TranslationServiceProvider(), array('localefallback' => 'fr')); $app->register(new Silex\Provider\SwiftmailerServiceProvider()); $app->register(new FormServiceProvider()); $app->register(new Silex\Provider\TwigServiceProvider(), array('twig.path' => array(__DIR__ . '/../views/app'))); //db $app->register(new Silex\Provider\DoctrineServiceProvider(), array('db.options' => array('driver' => 'pdo_mysql', 'dbhost' => 'localhost', 'dbname' => 'master', 'user' => 'root', 'password' => ''))); // $app['session.db_options'] = array( // 'db_table' => 'session', // 'db_id_col' => 'session_id', // 'db_data_col' => 'session_value', // 'db_time_col' => 'session_time' // ); // $app['session.storage.handler'] = $app->share(function () use ($app) { // return new PdoSessionHandler( // $app['db']->getWrappedConnection(), // $app['session.db_options'], // $app['session.storage.options'] // ); // }); // Front $frontServiceProvider = new Front\FrontServiceProvider(); $app->register($frontServiceProvider); $app->mount(null, $frontServiceProvider); $app->before(function (Request $request) use($app) { }); $app->boot(); return $app;
<?php //On initialise le timeZone ini_set('date.timezone', 'Europe/Brussels'); //On ajoute l'autoloader $loader = (require_once __DIR__ . '/../vendor/autoload.php'); //dans l'autoloader nous ajoutons notre répertoire applicatif $loader->add("App", dirname(__DIR__)); //Nous instancions un objet Silex\Application $app = new Silex\Application(); //en dev, nous voulons voir les erreurs $app['debug'] = true; //ROUTE $app->mount("/", new App\Controller\IndexController()); $app->mount("/ping", new App\Controller\PingController()); /*$app->get('/', function(){ return new Symfony\Component\HttpFoundation\Response("Hello world !"); });*/ /* twig */ $app->register(new Silex\Provider\TwigServiceProvider(), array("twig.path" => dirname(__DIR__) . "/App/Views", 'twig.options' => array('cache' => dirname(__DIR__) . '/cache', 'strict_variables' => true))); # url generator $app->register(new Silex\Provider\UrlGeneratorServiceProvider()); //On lance l'application $app->run(); /* $app->get('/', function(){ return new Symfony\Component\HttpFoundation\Response("Hello world !"); }); $app->get("/users/{id}", function($id){ return "User - {$id}";
<?php $loader = (require_once __DIR__ . "/../vendor/autoload.php"); $loader->add('app', __DIR__ . '/../'); $app = new Silex\Application(); //register providers $app->register(new \Mongo\Silex\Provider\MongoServiceProvider(), ['mongo.connections' => ['default' => ['server' => 'mongodb://localhost:27017', 'options' => ['connect' => true]]]]); $app->error(function (\app\exceptions\ApiException $e, $code) { $errors = ['message' => $e->getMessage(), 'code' => $e->getCode()]; return new \Symfony\Component\HttpFoundation\JsonResponse(['errors' => $errors], $e->getCode()); }); $app->mount('/', new \app\controllers\IndexController()); $app->mount('/firms', new app\controllers\FirmController()); $app->mount('/buildings', new app\controllers\BuildingController()); $app->mount('/rubrics', new app\controllers\RubricsController()); $app->run();
<?php require __DIR__ . '/../vendor/autoload.php'; $config = \Symfony\Component\Yaml\Yaml::parse(file_get_contents(__DIR__ . '/../app/config.yml')); $app = new \Silex\Application($config); /** * register service provider */ $app->register(new \Silex\Provider\DoctrineServiceProvider()); $app->register(new \Silex\Provider\TwigServiceProvider(), ['twig.path' => __DIR__ . '/../src/Templates', 'twig.options' => ['cache' => __DIR__ . '/../app/cache/app_template', 'auto_reload' => true]]); $app->register(new \Silex\Provider\FormServiceProvider()); $app->register(new \Silex\Provider\SessionServiceProvider()); $app->register(new \Silex\Provider\UrlGeneratorServiceProvider()); $app->register(new \Silex\Provider\ServiceControllerServiceProvider()); $app->register(new \Silex\Provider\HttpFragmentServiceProvider()); $app->register(new \Silex\Provider\ValidatorServiceProvider()); $app->register(new \Silex\Provider\MonologServiceProvider(), ['monolog.logfile' => __DIR__ . '/../app/logs/development.log']); $app->register(new \Silex\Provider\TranslationServiceProvider()); $app->mount('/', new \ExpressLibrary\Controllers\Front($app)); $app->mount('/admin', new \ExpressLibrary\Controllers\Back($app)); $app['db'] = function () { return \Doctrine\DBAL\DriverManager::getConnection(['dbname' => 'perpus', 'user' => 'root', 'password' => 'root', 'host' => 'localhost', 'driver' => 'pdo_mysql'], new \Doctrine\DBAL\Configuration()); }; if ($app['debug']) { Symfony\Component\Debug\Debug::enable(E_ALL, true); $app->register(new Silex\Provider\WebProfilerServiceProvider(), ['profiler.cache_dir' => __DIR__ . '/../app/cache/profiler']); } $app->run();
#------------------------------------------------------------------ # Add Parse for json requests body # #------------------------------------------------------------------ $app->before(function (Symfony\Component\HttpFoundation\Request $request) { if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) { $data = json_decode($request->getContent(), true); $request->request->replace(is_array($data) ? $data : array()); } }); #------------------------------------------------------------------ # Load the Configuration # #------------------------------------------------------------------ require __DIR__ . "/resources/config/application.php"; # ---------------------------------------------------- # Load ValidatorServiceProvider # # --------------------------------------------------- $app->register(new Silex\Provider\ValidatorServiceProvider()); # ---------------------------------------------------- # Setup Tags # # --------------------------------------------------- $app->register(new QuickTag\Silex\Provider\TagServiceProvider('qtag'), array('qtag.options' => array('tableName' => 'quicktag_tags'))); #------------------------------------------------------------------ # Setup Routes / Controllers # #------------------------------------------------------------------ $app->mount('/', new QuickTag\Silex\Controllers\TagProvider('qtag')); return $app;
$data = json_decode($request->getContent(), true); $request->request->replace(is_array($data) ? $data : array()); } }); // Add correct headers before it is sent to the client $app->after(function (Request $request, Response $response) { $response->headers->set("Access-Control-Allow-Origin", "*"); $response->headers->set("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS"); }); $app->register(new ServiceControllerServiceProvider()); $connection = new RestApp\Service\PDOConnection($app); $app['todo.repo'] = $app->share(function () use($connection) { return new RestApp\Repository\TodoRepository($connection); }); $app['todo.controller'] = $app->share(function () use($app) { return new RestApp\Controller\TodoController($app['todo.repo']); }); $app['converter.user'] = $app->share(function () use($app) { return new RestApp\Service\UserAuthentication($app['api.validtoken']); }); $api = $app["controllers_factory"]; $api->get('/todo/get', "todo.controller:getAllTodo")->convert('token', 'converter.user:authorize'); $api->post('/todo/save', "todo.controller:saveTodo")->convert('token', 'converter.user:authorize'); $api->put('/todo/update', "todo.controller:updateTodo")->convert('token', 'converter.user:authorize'); $api->delete('/todo/delete', "todo.controller:deleteTodo")->convert('token', 'converter.user:authorize'); $app->mount($app["api.endpoint"] . '/' . $app["api.version"] . '/{token}', $api); // Proper way to handler error in app $app->error(function (\Exception $e, $code) use($app) { return new JsonResponse(array("statusCode" => $code, "message" => $e->getMessage())); }); $app->run();
$app['twig']->addGlobal('config', $app['config']); $app['twig']->addGlobal('utils', $app['utils']); $authRequired = !empty($app['config']['authenticate']) && !empty($app['config']['authenticate']['username']) && !empty($app['config']['authenticate']['password']) ? true : false; if (!in_array($app['request']->getRequestUri(), $authPage)) { if ($authRequired) { $currentUser = $app['session']->get($app['config']['prefix'] . 'authed-user'); $userHash = sha1($app['config']['authenticate']['username'] . $app['config']['authenticate']['password']); if (empty($currentUser) || $currentUser !== $userHash) { return $app->redirect($app['uri']->generate('authenticate')); // not logged in, redirect to auth page } } } elseif (!$authRequired) { // redirect visits to the auth pages to the homepage if no auth is required. return $app->redirect('/'); } }); $app->error(function (\Exception $e, $code) use($app) { switch ($code) { case '404': $template = 'PT/pages/404.html'; break; default: $template = 'PT/pages/error.html'; break; } return new Response($app['twig']->render($template, array('message' => $e->getMessage())), $code); }); $app->mount('/_system/', new Prontotype\Controller\SystemController()); $app->mount('/', new Prontotype\Controller\MainController()); return $app;