我想试试Yii,但我不想用它作为我的主框架。换句话说,我想使用我自己的框架,同时也使用Yii的一些特性。我想为了能够从我的应用程序示例化Yii的类,我只需要从我的应用程序注册Yii的autoloader,大概用类似于下面的方式:
spl_autoload_register
(
function ($classname)
{
YiiBase::autoload($className);
}
);
当然,我需要要求或包含YiiBase类,所以在调用前面的函数之前,我这样做:
$yiiBase = $_SERVER['DOCUMENT_ROOT'].'/yii/framework/YiiBase.php';
require_once($yiiBase);
但是我得到了一个“无法重新声明类YiiBase”的错误。我错过了什么?
3条答案
按热度按时间vc9ivgsu1#
1)不要直接包含YiiBase.php,而要包含yii.php。因为yii.php包含一个
Yii
类,这个类在所有框架代码中都有使用(甚至在YiiBase方法中)。(默认情况下yiiBase.php包含在yii.php中)
2)用这种方法注册你的
autoload handler
。(Yii有内置的功能来添加自定义的自动加载处理程序)。第二个参数
true
告诉whether to append/prepend the new autoloader after/before the default Yii autoloader
YiiBase::autoload()
。Ref:检查YiiBase.php文件中的最后一行 *roqulrg32#
你可以看看一些人的方法integrating Yii with wordpress,你可能不需要做-〉运行()的应用程序,除非你需要的控制器/路由,它也取决于你假装使用框架的哪些部分.
vshtjzan3#
this article在页面中间的“* 在第三方系统中使用Yii *”标题下解释了Yii2的使用。
以下是启动外部应用程序时要包含的相关部分:
显然,可能需要调整
__DIR__ . '/../
以适合您的目录布局。