虽然我知道要求现成的代码是不合适的,但在这种情况下我会这样做,因为我找不到解决方案。
尝试将本机PHP__autoload函数与Mollie_API_Autoloader类一起使用:
class Mollie_API_Autoloader
{
/**
* @param string $class_name
*/
public static function autoload ($class_name)
{
if (strpos($class_name, "Mollie_") === 0)
{
$file_name = str_replace("_", "/", $class_name);
$file_name = realpath(dirname(__FILE__) .
"/../../{$file_name}.php");
if ($file_name !== false)
{
require $file_name;
}
}
}
/**
* @return bool
*/
public static function register ()
{
return spl_autoload_register(array(__CLASS__, "autoload"));
}
/**
* @return bool
*/
public static function unregister ()
{
return spl_autoload_unregister(array(__CLASS__, "autoload"));
}
}
Mollie_API_Autoloader::register();
Mollie autoloader类会影响本机PHP __autoload类的正常运行。似乎无法将这些结合起来。我是怎么做到的?
__autoload()
已弃用,多年前(在PHP 5.1.2上)已被spl_autoloader_register()
取代。
他们不能一起工作。__autoload()
是有限的,它所做的一切,spl_autoloader_register()
做得更好。
由于你发布的课程已经使用了spl_autoload_register()
,你所要做的就是调用
Mollie_API_Autoloader::register()
在你的助推代码中的某个地方。
如果您现有的代码使用__autoload()
,您可以很容易地将其更改为使用spl_autoload_register()
。只需将__autoload
函数重命名为其他函数(比如old_autoloader
),并在其定义后添加spl_autoload_register('old_autoloader');
即可。
查看spl_autoload_register()
文档中的示例#1以获取示例。