我目前正在尝试使用使用spl_autoload_register包含其类的Twilio PHP库。
function Services_Twilio_autoload($className) {
if (substr($className, 0, 15) != 'Services_Twilio') {
return false;
}
$file = str_replace('_', '/', $className);
$file = str_replace('Services/', '', $file);
return include dirname(__FILE__) . "/Twilio.php";
}
spl_autoload_register('Services_Twilio_autoload');
我抛出这段代码:
require_once('Library/Services/Twilio.php');
$client = new Services_Twilio($this->sid, $this->token);
然后运行时出现此错误:
Fatal error: Cannot redeclare Services_Twilio_autoload() (previously declared in ...\Twilio\Library\Services\Twilio.php:9) in ... \Twilio\Library\Services\Twilio.php on line 16
此代码在Zend上运行,并且已经有一个带有_initAutoload()的引导程序。我不知道我应该在哪里或如何为这个库实现自动加载,因为我对它不是很熟悉。
答案 0 :(得分:1)
我想我已经重现了这个问题。
要纠正它,我只需在引导程序中添加require_once('Services/Twilio.php');
,如下所示:
require_once('Services/Twilio.php');
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
....
就我而言,我将Services
目录放在library
目录中(Zend目录所在的位置)。
在控制器中,我可以像你一样打电话给Services_Twilio
:
$client = new Services_Twilio($this->sid, $this->token);
我希望它会对你有所帮助。 :)