2

我想要一个普通类型的类结构,比如

com.acme.module.Class.php

那么如何导入这样的包

在其他语言中,我可以做类似的事情

import "com.acme.module.Class"

或者

import "com.acme.module.*"

这可能在 PHP

4

1 回答 1

6

在 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阅读更多内容

于 2012-11-18T01:26:39.513 回答