diff --git a/app/config/services.php b/app/config/services.php deleted file mode 100644 index 0b4cc2c..0000000 --- a/app/config/services.php +++ /dev/null @@ -1,399 +0,0 @@ -setShared('logger', function() use ($config) { - - //return new Phalcon\Logger\Adapter\Firephp(""); - $path = $config->application->logDir; - return new FileLogAdapter($path . "app.txt"); -}); - -$di->setShared('dispatcher', function() use ($di, $config) { - - $eventsManager = new Phalcon\Events\Manager(); - - $eventsManager->attach("dispatch", function($event, $dispatcher) { - $actionName = lcfirst(Phalcon\Text::camelize($dispatcher->getActionName(), '-_')); - $dispatcher->setActionName($actionName); - }); - - if ($config->application->debug == false) { - $eventsManager->attach('dispatch:beforeException', new DispatchListener()); - } - - $eventsManager->attach('dispatch:beforeExecuteRoute', new AclListener()); - - $dispatcher = new \Phalcon\Mvc\Dispatcher(); - $dispatcher->setEventsManager($eventsManager); - - $dispatcher->setDefaultNamespace('App\Controller'); - - return $dispatcher; -}); - -/** - * The URL component is used to generate all kind of urls in the application - */ -$di->setShared('url', function() use ($config) { - $url = new UrlResolver(); - $url->setBaseUri($config->application->baseUri); - - return $url; -}); - -$di->setShared('router', function() { - - // Create the router - $router = new Router(); - $router->removeExtraSlashes(true); - - $router->add('/', array( - 'controller' => 'index', - 'action' => 'index' - ))->setName('home-route'); - - // Route about page to index controller - $router->add('/about', array( - 'controller' => 'index', - 'action' => 'about' - ))->setName('about-route'); - - $router->add('/callback/created/{id}', array( - 'controller' => 'callback', - 'action' => 'created', - ))->setName('cb-created'); - - // Route callback endpoints to callback controller. - $router->add('/cb/{id}', array( - 'controller' => 'callback', - 'action' => 'endpoint', - ))->setName('cb-endpoint'); - - // Login routes. - $router->add('/login', array( - 'controller' => 'auth', - 'action' => 'index', - ))->setName('login'); - - $router->add('/logout', array( - 'controller' => 'auth', - 'action' => 'logout', - ))->setName('logout'); - - $router->add('/login/{strategy:([a-z]+)}/:params', array( - 'controller' => 'auth', - 'action' => 'oauth' - ))->setName('oauth'); - - $router->add('/oauth/{provider:([a-z]+)}/disconnect', 'User::oauthdisconnect')->setName('oauth-disconnect'); - $router->add('/oauth/{provider:([a-z]+)}/disconnect/{confirm}', 'User::oauthdisconnect')->setName('oauth-disconnect-confirm'); - - $router->add('/settings', array( - 'controller' => 'user', - 'action' => 'settings', - ))->setName('user-settings'); - - $router->add('/act/{link}', array( - 'controller' => 'user', - 'action' => 'activationlink', - ))->setName('activation-link'); - - return $router; -}); - -$di->setShared('viewHelper', 'Httpcb\ViewHelper\Service'); - -/** - * Setting up the view component - */ -$di->setShared('view', function () use ($di, $config) { - - $view = new View(); - - $view->setViewsDir($config->application->viewsDir); - $view->setLayoutsDir('_layouts/'); - $view->setPartialsDir('_partials/'); - - $view->registerEngines(array( - '.volt' => function ($view, $di) use ($config) { - - $volt = new VoltEngine($view, $di); - - $volt->setOptions(array( - 'compiledPath' => $config->application->viewCacheDir, - 'compiledSeparator' => '_', - 'compileAlways' => true, - )); - - // Register view helpers - $compiler = $volt->getCompiler(); - $compiler->addExtension(new Httpcb\ViewHelper\Volt\Extension($di)); - - return $volt; - }, - '.phtml' => 'Phalcon\Mvc\View\Engine\Php' - )); - - // Set default main layout. - $view->setMainView('layout'); - - return $view; -}); - -$di->set('template', function() use ($config) { - $view = new Phalcon\Mvc\View\Simple(); - $view->setViewsDir($config->application->templateDir); - $view->registerEngines([ - '.volt' => function ($view, $di) use ($config) { - $volt = new VoltEngine($view, $di); - - $volt->setOptions(array( - 'compiledPath' => $config->application->viewCacheDir, - 'compiledSeparator' => '_', - )); - - return $volt; - }, - '.phtml' => 'Phalcon\Mvc\View\Engine\Php' - ]); - return $view; -}); - -$di->setShared('assets', function () { - - $manager = new AssetsManager(); - - // CSS - $manager->collection('css') - ->setPrefix('css/') - ->addCss('application.min.css'); - - // Javascript - $manager->collection('js') - ->setPrefix('js/') - ->addJs('jquery-3.0.0.min.js') - ->addJs('bootstrap.min.js') - ->addJs('fontawesome.min.js'); - - return $manager; -}); - -/** - * Database connection is created based in the parameters defined in the configuration file - */ -$di->setShared('db', function () use ($di, $config) { - $dbConfig = $config->database->toArray(); - $adapter = $dbConfig['adapter']; - unset($dbConfig['adapter']); - - $class = 'Phalcon\Db\Adapter\Pdo\\' . $adapter; - - $db = new $class($dbConfig); - - $logger = $di->get('logger'); - - $eventsManager = new Phalcon\Events\Manager(); - $eventsManager->attach('db', function ($event, $connection) use ($di, $logger) { - - if ($event->getType() == 'beforeQuery') { - $logger->log($connection->getRealSQLStatement(), Logger::INFO); - } - }); - - $db->setEventsManager($eventsManager); - - return $db; -}); - -$di->setShared('sendgrid', function() use ($config) { - return new SendGrid($config->sendgrid->key); -}); - -$di->setShared('eventsManager', function () { - - $activityLog = new ActivityLog(); - - $eventsManager = new Phalcon\Events\Manager(); - $eventsManager->attach('user', $activityLog); - $eventsManager->attach('auth', $activityLog); - - return $eventsManager; -}); - -/** - * If the configuration specify the use of metadata adapter use it or use memory otherwise - */ -$di->setShared('modelsMetadata', function () use ($config) { - - // Use adapter and options from config if defined. - if (isset($config->cache->metadata)) { - $mdConfig = $config->cache->metadata->toArray(); - $options = $mdConfig['options']; - $adapter = $mdConfig['adapter']; - - $class = 'Phalcon\Mvc\Model\MetaData\\' . $adapter; - - $metadata = new $class($options); - } - // Otherwise, default to Memory. - else { - $metadata = new Phalcon\Mvc\Model\MetaData\Memory(); - } - - return $metadata; -}); - -// Set the models cache service -/* -$di->set('modelsCache', function () { - - // Cache data for one day by default - $frontCache = new FrontendDataCache( - array( - "lifetime" => 86400 - ) - ); - - // Memcached connection settings - $cache = new BackendApcCache( - $frontCache, - array( - 'prefix' => 'httpcb_' - ) - ); - - return $cache; -});*/ - -/** - * Start the session the first time some component request the session service - */ -$di->set('session', function () use ($config) { - - // Set session directory if defined. - if (isset($config->application->sessionDir)) { - session_save_path($config->application->sessionDir); - } - - // Create and start session. - $session = new SessionAdapter(); - $session->start(); - - return $session; -}); - -$di->setShared('flash', function () { - return new Phalcon\Flash\Session(); -}); - -$di->set('oauth', function($provider) use ($config) { - - if (isset($config->oauth->providers->{$provider})) { - $options = $config->oauth->providers->{$provider}; - $options = $options->toArray(); - } else { - $options = array(); - } - - $adapter = new OAuthAdapter($provider, $options); - - return new OAuthClient($adapter); -}); - -$di->set('auth', function() use ($di, $config) { - $auth = new Auth($config); - $auth->setEventsManager($di->get('eventsManager')); - - return $auth; -}); - -$di->set('acl', 'Httpcb\Acl'); - -$di->set('menu', function() use ($di) { - - $config = array( - 'home' => array( - 'caption' => 'Home', - 'route' => 'home-route', - 'controller' => 'index', - 'action' => 'index', - ), - 'create-new ' => array( - 'caption' => 'Create new', - 'resource' => 'callback', - 'controller' => 'callback', - 'action' => 'new', - ), - 'my-callbacks' => array( - 'caption' => 'List callbacks', - 'resource' => 'callback', - 'controller' => 'callback', - 'action' => 'list', - 'children' => array( - 'show' => array( - 'resource' => 'callback', - 'controller' => 'callback', - 'action' => 'show', - ), - ), - ), - 'about' => array( - 'route' => 'about-route', - 'caption' => 'About', - 'controller' => 'index', - 'action' => 'about' - ), - ); - - $navigation = new Navigation($config); - - $menu = new Menu($navigation); - $menu->setMenuClass(null); - if ($di->get('auth')->hasIdentity()) { - $menu->setAclRole(Acl::ROLE_USER); - } else { - $menu->setAclRole(Acl::ROLE_GUEST); - } - return $menu; -}); diff --git a/public/index.php b/public/index.php index ffeb24f..f87dc1c 100644 --- a/public/index.php +++ b/public/index.php @@ -16,14 +16,8 @@ if ($config->application->debug) { */ include APP_PATH . "/app/config/loader.php"; -/** - * Read services - */ -include APP_PATH . "/app/config/services.php"; - /** * Handle the request */ -$application = new \Phalcon\Mvc\Application($di); - -echo $application->handle()->getContent(); +$app = new Httpcb\Application(); +echo $app->bootstrap()->run();