PHP包和导入
我想要一个正常类型的类结构,比如PHP包和导入,php,Php,我想要一个正常类型的类结构,比如 com.acme.module.Class.php 那么如何导入这样的包呢 在其他语言中,我可以做类似的事情 import "com.acme.module.Class" 或 在PHP5.3及更高版本中,我们有名称空间 根据,包名称以目录名的形式出现。i、 e.如果我有一个类Mauris\Acme\Controllers\Home(包名为Mauris\Acme\Controllers,类名为Home),我的类文件将命名为Home.php,并放在src/Mau
com.acme.module.Class.php
那么如何导入这样的包呢
在其他语言中,我可以做类似的事情
import "com.acme.module.Class"
或
在PHP5.3及更高版本中,我们有名称空间 根据,包名称以目录名的形式出现。i、 e.如果我有一个类
Mauris\Acme\Controllers\Home
(包名为Mauris\Acme\Controllers
,类名为Home
),我的类文件将命名为Home.php
,并放在src/Mauris/Acme/Controllers
文件夹中
然后使用自动加载器(有一个),您可以直接将类“导入”到脚本中:
<?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();
是的。。。Php拥有它。语法完全不同。命名空间应该是文件中的第一个构造。用require
替换它,如果不需要PSR0标准,我只需使用spl_autoload_register()。@jack-可能也是。但我认为还是采用编码标准更好:您可以更好地与其他库集成(例如,通过Composer和Packagist)。
<?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();