合并 PHP__autoload 与 Mollie_API_Autoloader class
Combining PHP__autoload with Mollie_API_Autoloader class
虽然我知道要求现成的代码不合适,但在这种情况下我还是这样做了,因为我找不到解决方案。
尝试将本机 PHP __autoload 函数与 Mollie_API_Autoloader class:
一起使用
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 自动加载器 class 影响本机 PHP __autoload class 的正常运行。似乎无法将这些结合起来。我是怎么做到的?
__autoload()
is deprecated, it was replaced by spl_autoloader_register()
多年前(在 PHP 5.1.2 上)。
他们不能一起工作。 __autoload()
是有限的,它所做的一切,spl_autoloader_register()
做得更好。
由于您发布的 class 已经使用了 spl_autoload_register()
,您只需调用
Mollie_API_Autoloader::register()
在你的 boostrap 代码中的某个地方。
如果您现有的代码使用 __autoload()
,您可以轻松地将其更改为使用 spl_autoload_register()
。只需将 __autoload
函数重命名为其他名称(比如 old_autoloader
)并在其定义后添加 spl_autoload_register('old_autoloader');
。
查看 Example #1 on the documentation of spl_autoload_register()
示例。
虽然我知道要求现成的代码不合适,但在这种情况下我还是这样做了,因为我找不到解决方案。
尝试将本机 PHP __autoload 函数与 Mollie_API_Autoloader class:
一起使用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 自动加载器 class 影响本机 PHP __autoload class 的正常运行。似乎无法将这些结合起来。我是怎么做到的?
__autoload()
is deprecated, it was replaced by spl_autoloader_register()
多年前(在 PHP 5.1.2 上)。
他们不能一起工作。 __autoload()
是有限的,它所做的一切,spl_autoloader_register()
做得更好。
由于您发布的 class 已经使用了 spl_autoload_register()
,您只需调用
Mollie_API_Autoloader::register()
在你的 boostrap 代码中的某个地方。
如果您现有的代码使用 __autoload()
,您可以轻松地将其更改为使用 spl_autoload_register()
。只需将 __autoload
函数重命名为其他名称(比如 old_autoloader
)并在其定义后添加 spl_autoload_register('old_autoloader');
。
查看 Example #1 on the documentation of spl_autoload_register()
示例。