;添加yaf扩展
extension=php_yaf.dll ;
设置自动加载机制 yaf.use_spl_autoload=1 ;
启用命名空间 yaf.use_namespace=0
设置之后,扩展类的引入变化如下:
//变化前(使用命名空间)
use Yaf\Bootstrap_Abstract;
use Yaf\Dispatcher; //变化后(命名空间关闭)
Yaf_Bootstrap_Abstract
Yaf_Dispatcher
后者无需引入,直接作为类型使用即可。前提是在index.php中进行yaf应用的启动:
$app = new Yaf_Application(APP_PATH . "/conf/application.ini", 'personal');
$app->bootstrap()->run();
设定命名空间
/**
* @Desc: 设置默认的命名空间:/app/library/Base/Base_XXX.php表示使用Base命名空间
* @DateTime: 2018-10-20 18:14
*/
public function _initCommonFunction()
{
//使用默认的命名空间
Yaf_Loader::getInstance()->registerLocalNameSpace('Base');
}
我们手动注册了Base这个命名空间。该命名空间下的文件有目录和命名限制。
目录必须是我们设定的library目录下的Base文件夹中,其中library目录可以人为在application.ini中进行给定,一般在App目录下。
命名的话,对应的类名为Base_XXX,其中文件名为XXX.php
// 存放的目录:/app/libs/Base/Personal.php //基类命名规范 class Base_Personal extends Yaf_Controller_Abstract { }
必须一一对应,否则在controller中引入将提示找不到该类。使用方式:
class IndexController extends Base_Personal {
}
补充一个application.ini的配置说明
在配置变量中,我们可以看到类似以下的配置内容:
[common] XXX = XXX
[personal : common] XXX = XXX
这个配置的意思是personal的配置变量继承common的配置变量,common可以理解为公共的配置内容。当我们的项目使用的是personal模块时,我们需要在index.php中声明,声明如下:
$app = new Yaf_Application(APP_PATH . "/conf/application.ini", 'personal');
第二个参数就是将要使用的配置内容名称,可自行体验。