Exemplo n.º 1
0
 /**
  *
  * @param Di $diFactory
  */
 public function __construct(Di $diFactory)
 {
     $this->diFactory = $diFactory;
     $this->loader = new Loader();
     $ev = new EventsManager();
     $ev->enablePriorities(true);
     $ev->collectResponses(true);
     $diFactory->set('autoloaderEventsManager', $ev, true);
     $this->loader->setEventsManager($ev);
 }
Exemplo n.º 2
0
 /**
  * Init loader.
  *
  * @param DI            $di            Dependency Injection.
  * @param Config        $config        Config object.
  * @param EventsManager $eventsManager Event manager.
  *
  * @return Loader
  */
 protected function _initLoader($di, $config, $eventsManager)
 {
     /**
      * Add all required namespaces and modules from registry.
      * @var [type]
      */
     $registry = $di->get('registry');
     $namespaces = [];
     $bootstraps = [];
     foreach ($registry->modules as $module) {
         $moduleName = ucfirst($module);
         $namespaces[$moduleName] = $registry->directories->modules . $moduleName;
         $bootstraps[$module] = $moduleName . '\\Bootstrap';
     }
     $namespaces['Engine'] = $registry->directories->engine;
     $loader = new PhLoader();
     $loader->registerNamespaces($namespaces);
     // Register some directories
     $loader->registerDirs([ROOT_PATH . '/app/libraries']);
     $loader->setEventsManager($eventsManager);
     $loader->register();
     $this->registerModules($bootstraps);
     $di->set('loader', $loader);
     return $loader;
 }
Exemplo n.º 3
0
 /**
  * Registers an autoloader related to the module
  *
  * @param DiInterface $di
  */
 public function registerAutoloaders(DiInterface $di = null)
 {
     $eventsManager = new \Phalcon\Events\Manager();
     $loader = new Loader();
     $loader->registerNamespaces(array('Phlame\\Core\\Controllers' => __DIR__ . '/controllers/', 'Phlame\\Core\\Models' => __DIR__ . '/models/', 'Phlame\\Core\\Components' => __DIR__ . '/components/'));
     // Listen all the loader events
     $eventsManager->attach('loader', function ($event, $loader) {
         if ($event->getType() == 'beforeCheckPath') {
             echo 'beforeCheckPath:' . $loader->getCheckedPath() . '<br/>';
         }
     });
     $loader->setEventsManager($eventsManager);
     $loader->register();
 }
<?php

use Phalcon\Events\Manager;
use Phalcon\Loader;
use Phalcon\Mvc\Dispatcher;
$oEventsManager = new Manager();
//$loader = new \Phalcon\Loader();
$di->setShared('loader', function () use($oEventsManager, $di) {
    $oLoader = new Loader();
    $oConfig = $di->getConfig();
    $oLoader->setEventsManager($oEventsManager);
    $oLoader->registerNamespaces(array('App\\Modules' => $oConfig->application->modulesDir, 'App\\Hooks' => $oConfig->application->hooksDir, 'App\\Util' => $oConfig->application->utilDir, 'App\\Core\\Interfaces' => $oConfig->application->ifaceDir, 'App\\Modules\\Api' => __DIR__ . '/../../app/modules/api'));
    $oLogger = $di->getFileLogger();
    //	$oLogger->debug('namespaces registered in main loader');
    //	foreach ($oConfig->modules as $strNamespace => $strDirectory) {
    //
    //		$arNamespace = array(
    //			'App\Modules\\' . $strNamespace => $oConfig->application->modulesDir . '/' . $strDirectory
    //		);
    //
    //		$oLogger->debug('trying to register namespaces: ' . print_r($arNamespace, true));
    //
    //		$oLoader->registerNamespaces($arNamespace);
    //	}
    //	$oLogger = $di->getFileLogger();
    $oLogger->debug('config already read; common loader initialization; here`s the beginning for "' . $di->getRequest()->getURI() . '"' . str_repeat('_', 170) . PHP_EOL . print_r($oLoader->getNamespaces(), true));
    $oLoader->register();
    return $oLoader;
});
//$oEventsManager->attach('loader', function($event, $loader, $strClassName) use ($di) {
//
Exemplo n.º 5
0
 /**
  * Initialize the Loader.
  *
  * Adds all required namespaces.
  *
  * @param DiInterface   $di     Dependency Injector
  * @param Config        $config App config
  * @param EventsManager $em     Events Manager
  *
  * @return Loader
  */
 protected function initLoader(DiInterface $di, Config $config, EventsManager $em)
 {
     $loader = new Loader();
     $loader->registerNamespaces(['Phosphorum\\Models' => $config->get('application')->modelsDir, 'Phosphorum\\Controllers' => $config->get('application')->controllersDir, 'Phosphorum' => $config->get('application')->libraryDir]);
     $loader->setEventsManager($em);
     $loader->register();
     $di->setShared('loader', $loader);
     return $loader;
 }
Exemplo n.º 6
0
 public function setEventsManager(ManagerInterface $eventsManager)
 {
     parent::setEventsManager($eventsManager);
 }
Exemplo n.º 7
0
 /**
  * Init loader.
  *
  * @param DI            $di            Dependency Injection.
  * @param Config        $config        Config object.
  * @param EventsManager $eventsManager Event manager.
  *
  * @return Loader
  */
 protected function _initLoader($di, $config, $eventsManager)
 {
     // Add all required namespaces and modules.
     $registry = $di->get('registry');
     $namespaces = [];
     $bootstraps = [];
     foreach ($registry->modules as $module) {
         $moduleName = ucfirst($module);
         $namespaces[$moduleName] = $registry->directories->modules . $moduleName;
         $bootstraps[$module] = $moduleName . '\\Bootstrap';
     }
     $namespaces['Engine'] = $registry->directories->engine;
     $namespaces['Plugin'] = $registry->directories->plugins;
     $namespaces['Widget'] = $registry->directories->widgets;
     $namespaces['Library'] = $registry->directories->libraries;
     $loader = new Loader();
     $loader->registerNamespaces($namespaces);
     if ($config->application->debug && $config->installed) {
         $loader->setEventsManager($eventsManager);
     }
     $loader->register();
     $this->registerModules($bootstraps);
     $di->set('loader', $loader);
     return $loader;
 }