phalconphp 2.0支持从phar文件中注册空间与加载

在phalconphpV1.3时代,要引入phar文件中的类,必须通过loader的beforeCheckPath事件手动require类文件进来:

$loader->registerNamespaces(array(
	'Qing\Lib'=>'phar://'.QING_ROOT_PATH.'/core.zip/lib/Qing/',
	'Qing\Models'=>'phar://'.QING_ROOT_PATH.'/core.zip/models/',
	'Qing\Service'=>'phar://'.QING_ROOT_PATH.'/core.zip/services/',
	'Qing\DataView'=>'phar://'.QING_ROOT_PATH.'/core.zip/dataview/',
	'Qing\Traits'=>'phar://'.QING_ROOT_PATH.'/core.zip/traits/',
	'Qing\Component'=>'phar://'.QING_ROOT_PATH.'/core.zip/component/',
	'Qing\DTO'=>'phar://'.QING_ROOT_PATH.'/core.zip/dto/',
	'Zend'=>'phar://'.QING_ROOT_PATH.'/core.zip/lib/Zend/',
	'ZendXml'=>'phar://'.QING_ROOT_PATH.'/core.zip/lib/ZendXml/',
    'Phalcon'=>'phar://'.QING_ROOT_PATH.'/core.zip/lib/Phalcon/'
));
$loader->setEventsManager($eventsManager);
//以下代码在phalconphp2.0中要注释掉==========
$eventsManager->attach('loader', function($event,$loader){
   if($event->getType()=='beforeCheckPath' && stripos($loader->getCheckedPath(), 'phar://')===0){
       require_once $loader->getCheckedPath();
       return true;
   } 
});
//==========================================
$loader->register();

新发布的phalconphp2.0,不需要再通过loader的beforeCheckPath事件手动require


相关评论

暂无评论

我要评论