Php Zend中的spl_自动加载_寄存器
我目前正在尝试使用Twilio PHP库,该库使用spl_autoload_register来包含它的类Php Zend中的spl_自动加载_寄存器,php,zend-framework,twilio,Php,Zend Framework,Twilio,我目前正在尝试使用Twilio PHP库,该库使用spl_autoload_register来包含它的类 function Services_Twilio_autoload($className) { if (substr($className, 0, 15) != 'Services_Twilio') { return false; } $file = str_replace('_', '/', $className); $file = str_
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()的引导程序。我不确定应该在何处或如何实现此库的自动加载,因为我对它不太熟悉。我想我已经重现了这个问题 为了纠正它,我只添加了
require_once('Services/Twilio.php')引导程序中的代码>如下所示:
require_once('Services/Twilio.php');
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
....
在我的例子中,我将Services
目录放在library
目录中(其中是Zend目录)
在控制器中,我可以像您一样调用服务
:
$client = new Services_Twilio($this->sid, $this->token);
我希望它能帮助你。:) 这确实有效。不过,我决定改用composer来运行库,它也可以运行。谢谢您的回复。:)