gpt4 book ai didi

php - require_once() 和自动加载器 - 如何加载平面 php?

转载 作者:行者123 更新时间:2023-12-02 22:30:19 25 4
gpt4 key购买 nike

我有一个文件(用于 PHP 的 xmlrpc 库),我想将其用于 Symfony2 类(因此在 Symfony2 项目中)。

我不能使用自动加载器,因为写 here

which is able [the autoloader] to load classes from files that implement one of the following conventions:

1) The technical interoperability standards for PHP 5.3 namespaces and 
class names;
2) The PEAR naming convention for classes.

If your classes and the third-party libraries you use for your project follow these standards, the Symfony2 autoloader is the only autoloader you will ever need.

我将要使用的类(class)不满足其中一个要求。

因此,如果我无法自动加载该文件,因为不可能(据我所知,但我可能会出错)使用 require_once(或简单地 require ) 和 namespace,这个问题的解决方案是什么?

最佳答案

假设您有一个名为 xmlrpc.lib.php 的文件,其中包含以下内容:

<?php 
class XMLRPC_Server {
// ...
}

class XMLRPC_Request {
// ...
}

class XMLRPC_Response {
// ...
}

您可以创建 MapClassLoader 的实例来处理它的自动加载:

// Create map autoloader
$mapLoader = new MapClassLoader(array(
'XMLRPC_Server' => __DIR__.'/../library/xmlrpc.lib.php',
'XMLRPC_Request' => __DIR__.'/../library/xmlrpc.lib.php',
'XMLRPC_Response' => __DIR__.'/../library/xmlrpc.lib.php',
));

// Register autoloader
$mapLoader->register();

当其中一个类被自动加载时,其他类也会被自动加载,因为它们共享同一个 PHP 文件。

关于php - require_once() 和自动加载器 - 如何加载平面 php?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com