表 2.2. Yaf 配置选项
![]() |
警告 |
|---|---|
| 在开启yaf.cache_config的情况下, Yaf会使用INI文件路径作为Key, 这就有一个陷阱, 就是如果在一台服务器上同时运行俩个应用, 那么它们必须不能使用同一个路径名下的INI配置文件, 否则就会出现Application Path混乱的问题. 所以, 尽量不要使用相对路径. |
以下几点在配置时容易踩坑, 值得特别注意:
yaf.forward_limit 是防止 Yaf_Controller_Abstract::forward 递归循环的保护。单次请求内链式转发的次数超出该限制时, 将抛出 Yaf_Exception_DispatchFailed。非正数值会被强制取默认值 5。
yaf.use_namespace 开启后, Yaf 的所有类将以命名空间风格命名, 例如 Yaf_Route_Rewrite 变为 \Yaf\Route\Rewrite。有一个例外: 最后一段是 PHP 保留关键字的类不能用作类名, 这类类的最后一段保留下划线, 例如 Yaf_Controller_Abstract 变为 \Yaf\Controller_Abstract, Yaf_Route_Static 变为 \Yaf\Route_Static。
yaf.use_namespace 只在扩展启动时注册两种命名风格中的一种, 因此该指令必须在扩展加载之前设置(例如写在 php.ini 中), 无法在每个请求之间切换。
关于 yaf.use_spl_autoload 的加载顺序: Yaf 在 Yaf_Application 实例化期间注册它自己的加载器, 因此在此之前注册的任何其他自动加载函数都会先于 Yaf_Loader::autoload 被调用。
yaf.environ 也可以通过给 Yaf_Application::__construct 传递第二个构造参数, 为每个应用单独覆盖环境名称。