$cookies = new \Phalcon\Http\Response\Cookies(); return $cookies; }); $di->setShared('session', function () { $session = new \Phalcon\Session\Adapter\Files(); $session->start(); return $session; }); //Specify routes for modules $di->setShared('router', function () use($config, $routers) { $router = new \Phalcon\Mvc\Router(false); $router->clear(); $router->removeExtraSlashes(true); $router->clear(); $router->setDefaultModule($config->app->defaultApp); $router->setDefaultController($config->app->defaultController); $router->setDefaultAction($config->app->defaultAction); if (!empty($routers)) { foreach ($routers as $name => $rule) { $pattern = $rule->pattern; unset($rule->pattern); $router->add($pattern, $rule->toArray())->setName($name); } } return $router; }); $di->setShared('db', function () use($config) { $connection = new \Phalcon\Db\Adapter\Pdo\Mysql(array("host" => $config->database->host, "username" => $config->database->username, "password" => $config->database->password, "dbname" => $config->database->name, "charset" => $config->database->charset, "collation" => $config->database->collation)); return $connection; }); $di->set('modelsManager', new \Phalcon\Mvc\Model\Manager());
* @since 06/01/2016 */ error_reporting(E_ALL); try { /** Define */ define('BASEURL', 'http://phalcon.dev/'); define('CACHE_DATA_ADMIN', '../apps/common/caches/admin'); define('CACHE_DATA_USERS', '../apps/common/caches/users'); define('ADMIN_INFO', serialize(array('name' => 'Thế Phúc', 'email' => '*****@*****.**', 'mailHost' => 'smtp.gmail.com', 'mailPort' => 587, 'mailPassword' => '----'))); /** The FactoryDefault Dependency Injector automatically register the right services providing a full stack framework */ $di = new \Phalcon\DI\FactoryDefault(); /** Registering a router */ $di['router'] = function () { $router = new \Phalcon\Mvc\Router(); $router->setDefaultModule('users'); $router->setDefaultController('index'); $router->setDefaultAction('index'); $adminRoutes = glob(dirname(__DIR__) . "/apps/**/routes/*.php"); foreach ($adminRoutes as $key => $value) { require_once $value; } $router->notFound(array('module' => 'users', 'controller' => 'error', 'action' => 'error404')); $router->removeExtraSlashes(true); return $router; }; /** The URL component is used to generate all kind of urls in the application */ $di->set('url', function () { $url = new \Phalcon\Mvc\Url(); $url->setBaseUri('/'); return $url; });
/** * Phanbook : Delightfully simple forum software * * Licensed under The GNU License * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @link http://phanbook.com Phanbook Project * @since 1.0.0 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt */ $router = new Phalcon\Mvc\Router(); //$router->setDefaultModule("frontend"); $router->setDefaultNamespace("Phanbook\\Controllers"); $router->setDefaultController('posts'); $router->removeExtraSlashes(true); $router->add('/', ['controller' => 'posts', 'action' => 'index']); //Router /tip,/posts,/questions $router->add('/{collection}', ['controller' => 'posts', 'action' => 'index']); $router->add('/posts/{order:[a-z]+}', ['controller' => 'posts', 'action' => 'index']); //Delete posts $router->add('/posts/delete/{id:[0-9]+}', ['controller' => 'posts', 'action' => 'delete']); $router->add('/questions/delete/{id:[0-9]+}', ['controller' => 'posts', 'action' => 'delete']); $router->add('/tips/delete/{id:[0-9]+}', ['controller' => 'posts', 'action' => 'delete']); $router->add('/hackernews/delete/{id:[0-9]+}', ['controller' => 'posts', 'action' => 'delete']); //View posts $router->add('/posts/{id:[0-9]+}/{slug}', ['controller' => 'posts', 'action' => 'view']); $router->add('/questions/{id:[0-9]+}/{slug}', ['controller' => 'posts', 'action' => 'view']); $router->add('/tips/{id:[0-9]+}/{slug}', ['controller' => 'posts', 'action' => 'view']); $router->add('/hackernews/{id:[0-9]+}/{slug}', ['controller' => 'posts', 'action' => 'view']);
* Routes * * This file contains the route definitons for Kolibri. * If you extend the functionality of Kolibri and add methods * which you want to call with HTTP, you need to add them to * this file. * * @package Kolibri\Config * @author Philipp Gérard <*****@*****.**> * @since May 2013 * @copyright Philipp Gérard <*****@*****.**> * @license MIT License http://opensource.org/licenses/MIT */ $router = new \Phalcon\Mvc\Router(); $router->removeExtraSlashes(true); $router->setDefaultController('kolibri'); $router->setDefaultAction('index'); $router->add("/{title:([a-zA-Z0-9_-]+)}", array('controller' => 'kolibri', 'action' => 'page')); $router->add("/page/{title:([a-zA-Z0-9_-]+)}", array('controller' => 'kolibri', 'action' => 'page')); $router->add("/edit/:int", array('controller' => 'kolibri', 'action' => 'edit', 'id' => 1)); $router->addPost("/update", array('controller' => 'kolibri', 'action' => 'update')); $router->add("/create", array('controller' => 'kolibri', 'action' => 'create')); $router->addPost("/save", array('controller' => 'kolibri', 'action' => 'save')); $router->add("/list", array('controller' => 'kolibri', 'action' => 'list')); $router->add("/delete/:int", array('controller' => 'kolibri', 'action' => 'delete', 'id' => 1)); $router->add("/version/:int", array('controller' => 'kolibri', 'action' => 'version', 'id' => 1)); $router->add("/version/:int/:int", array('controller' => 'kolibri', 'action' => 'diff', 'id' => 1, 'revision' => 2)); $router->add("/changes", array('controller' => 'kolibri', 'action' => 'changes')); $router->add("/export/:int", array('controller' => 'kolibri', 'action' => 'export', 'id' => 1)); $router->add("/reimport/:int/:int", array('controller' => 'kolibri', 'action' => 'reimport', 'id' => 1, 'revision' => 2)); return $router;
<?php /** * Registering a router */ $router = new \Phalcon\Mvc\Router(false); $router->removeExtraSlashes(true); $router->setDefaultModule("frontend"); $router->setDefaultAction("index"); $router->setDefaultController("index"); /* Frontend */ $router->add('/:controller', array('module' => 'frontend', 'controller' => 1, 'action' => 'index')); $router->add('/:controller/:action', array('module' => 'frontend', 'controller' => 1, 'action' => 2)); $router->add(':controller/:action/:params', array('module' => 'frontend', 'controller' => 1, 'action' => 2, 'params' => 3)); $router->add('/home', array('module' => 'frontend', 'controller' => 'index', 'action' => 'index')); $router->add('/work', array('module' => 'frontend', 'controller' => 'image', 'action' => 'index')); $router->add('/news/:params', array('module' => 'frontend', 'controller' => 'news', 'action' => 'index', 'params' => 1)); $router->add('/contact', array('module' => 'frontend', 'controller' => 'contact', 'action' => 'index', 'params' => 1)); // $router->add("/tin-tuc/{title}.{cid:[0-9]+}", array( // 'module' => 'frontend', // 'controller' => 'news', // 'action' => 'index' // )); /* Backend */ $router->add("/admin", array('module' => 'backend', 'controller' => 'index', 'action' => 'index')); $router->add('/admin/:controller', array('module' => 'backend', 'controller' => 1, 'action' => 'index')); $router->add('/admin/:controller/:action', array('module' => 'backend', 'controller' => 1, 'action' => 2)); $router->add('/admin/:controller/:action/:params', array('module' => 'backend', 'controller' => 1, 'action' => 2, 'params' => 3)); return $router;
}); /** * Start the session the first time some component request the session service */ $di->setShared('session', function () { $session = new SessionAdapter(); $session->start(); return $session; }); /* * здесь надо добавить в контейнер свои экземпляры классов стандартных компонентов phalcon'а * или свои какие-то экземпляры класса, т.к. это просто реализация контейнера */ $di->setShared("view", function () { $view = new View(); $view->disable(); return $view; }); $di->setShared("router", function () { $router = new \Phalcon\Mvc\Router(false); $router->removeExtraSlashes(true); $router->setDefaultController('robots'); $router->addGet('/v1/api/robots', ['controller' => 'robots', 'action' => 'list']); $router->addGet('/v1/api/robots/{id:[0-9]+}', ['controller' => 'robots', 'action' => 'findOneById']); $router->addGet('/v1/api/robots/search/{name}', ['controller' => 'robots', 'action' => 'search']); $router->addPost('/v1/api/robots', ['controller' => 'robots', 'action' => 'create']); $router->addPut('/v1/api/robots/{id}', ['controller' => 'robots', 'action' => 'update']); $router->addDelete('/v1/api/robots/{id}', ['controller' => 'robots', 'action' => 'delete']); return $router; }); $di->set('config', $config);
* Start the session the first time some component request the session service */ $di->setShared('session', function () { $session = new SessionAdapter(); $session->start(); return $session; }); $di->setShared("view", function () { $view = new View(); $view->disable(); return $view; }); $di->setShared("router", function () { $router = new \Phalcon\Mvc\Router(false); $router->removeExtraSlashes(true); $router->setDefaultController('products'); $router->addGet('/v1/api/products', ['controller' => 'products', 'action' => 'list']); $router->addGet('/v1/api/products/{id:[0-9]+}', ['controller' => 'products', 'action' => 'findOneById']); $router->addGet('/v1/api/products/search/{name}', ['controller' => 'products', 'action' => 'search']); $router->addPost('/v1/api/products', ['controller' => 'products', 'action' => 'create']); $router->addPut('/v1/api/products/{id}', ['controller' => 'products', 'action' => 'update']); $router->addDelete('/v1/api/products/{id}', ['controller' => 'products', 'action' => 'delete']); $router->addGet('/v1/api/categories', ['controller' => 'categories', 'action' => 'list']); $router->addGet('/v1/api/categories/{id:[0-9]+}', ['controller' => 'categories', 'action' => 'findOneById']); $router->addGet('/v1/api/categories/search/{name}', ['controller' => 'categories', 'action' => 'search']); $router->addPost('/v1/api/categories', ['controller' => 'categories', 'action' => 'create']); $router->addPut('/v1/api/categories/{id}', ['controller' => 'categories', 'action' => 'update']); $router->addDelete('/v1/api/categories/{id}', ['controller' => 'categories', 'action' => 'delete']); return $router; }); $di->set('config', $config);