我想要一个普通类型的类结构,比如
com.acme.module.Class.php
那么如何导入这样的包
在其他语言中,我可以做类似的事情
import "com.acme.module.Class"
或者
import "com.acme.module.*"
这可能在 PHP
我想要一个普通类型的类结构,比如
com.acme.module.Class.php
那么如何导入这样的包
在其他语言中,我可以做类似的事情
import "com.acme.module.Class"
或者
import "com.acme.module.*"
这可能在 PHP
在 PHP 5.3 及更高版本中,我们有命名空间。
根据PSR-0 标准,包名采用目录名的形式。即如果我有一个类Mauris\Acme\Controllers\Home
(包名是Mauris\Acme\Controllers
,类名是Home
),我的类文件将被命名Home.php
并放在文件夹中src/Mauris/Acme/Controllers
。
然后使用自动加载器(有一个简化的 PSR-0 兼容自动加载器),您可以直接将类“导入”到您的脚本中:
<?php
namespace Mauris\Acme\Actions;
require('autoloader.php');
$classLoader = new SplClassLoader();
$classLoader->register(); // register the autoloading callback
// the "import"
// the require() or include() statement is in the auto
use Mauris\Acme\Controllers\Home as HomeController;
$controller = new HomeController();
// if you don't use the "use" statement, you can also write:
// $controller = new \Mauris\Acme\Controllers\Home();
在http://php.net/manual/en/language.namespaces.importing.php阅读更多内容