PHP包和导入

Dal*_*ser 2 php

我希望有一个普通类型的类结构

com.acme.module.Class.php
Run Code Online (Sandbox Code Playgroud)

那么如何导入像这样的包

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

import "com.acme.module.Class"
Run Code Online (Sandbox Code Playgroud)

要么

import "com.acme.module.*"
Run Code Online (Sandbox Code Playgroud)

这可能与PHP有关

mau*_*ris 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();
Run Code Online (Sandbox Code Playgroud)

更多信息,请访问http://php.net/manual/en/language.namespaces.importing.php