PHP命名空间和自动加载

时间:2012-05-14 10:28:04

标签: php namespaces spl-autoload-register

我对PHP很陌生,或者更多地指定新项目至少有点复杂并且有很多类。到目前为止使用require_once还可以。然而,在一个新项目中,由于大量的包含并不总是需要它们而变得有点混乱。

我正在创建的是一个复杂的公共Web服务的客户端(不在我的控制之下)。然后该客户端将用于应用程序。

我看了一下spl_autoload_register,但没有真正开始工作。该项目的目录是:

webServiceClient/src/path/same/as/namespaces

让我们说使用的应用程序直接使用的客户端类在

webServiceClient/src/path/same

该类必须“加载”所有可能需要的类。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

  1. 创建自动加载功能
  2. 将第1点功能注册到spl_autoload_registerlink
  3. 如果您只有__autoload作为自动加载功能,则必须这样做 注册它。 link
  4. 编写自动加载功能
  5. function __autoload($classname) {    
       $filename = ROOT."\\". $classname .".php"; //you can define ROOT by define('ROOT','dir path');    
       include_once($filename);    
    }
    

    所以,当你宣布

    $myclass = new webServiceClient\src\path\same;
    

    autolaod将包含ROOT.'webServiceClient\src\path\same.php'