基本使用
默认情况下常量、类和函数名都放在全局空间下。命名空间通过namespace来声明,必须定义在文件头部,并在declare(strict_types=1) 语句下面。
文件a.php
<?php
namespace A;
function test() {
echo 'test-A';
}
文件b.php
<?php
namespace B;
function test() {
echo 'test-B';
}
文件index.php
<?php
include 'a.php';
include 'b.php';
A\test();
B\test();
引入方式
非限定名称
调用类时没有指定命名空间时,将使用当前命名空间。
限定名称
类似于文件系统中的相对路径。
文件a.php
<?php
namespace A\B;
class Test {
public static function test() {
echo __METHOD__;
}
}
文件b.php
<?php
namespace A;
include 'a.php';
class Test {
public static function test() {
echo __METHOD__;
}
}
Test::test(); // A\Test::test
B\Test::test(); // A\B\Test::test
完全限定名称
类似于文件系统中的绝对路径。
文件a.php
<?php
namespace A;
class Test {
public static function test() {
echo 'test-' . __METHOD__;
}
}
文件b.php
<?php
namespace B;
include 'a.php';
class Test {
public static function test() {
echo 'test-' . __METHOD__;
}
}
Test::test(); // test-B\Test::test
\A\Test::test(); // test-A\Test::test
别名引入
通过操作符use来为类或命名空间使用别名。
文件a.php
<?php
namespace A\B\C;
class Test {
public static function test() {
echo 'test-' . __METHOD__;
}
}
文件b.php
<?php
namespace A;
use A\B\C\Test;
use A\B\C\Test as Testa;
include 'a.php';
Test::test(); // test-A\B\C\Test::test
Testa::test(); // test-A\B\C\Test::test
Composer
是PHP 5.3以上的一个依赖管理工具,官网:https://getcomposer.org/
安装
下载并运行Composer-Setup.exe,它将安装最新版本的Composer,并设置好系统环境变量,可在任何目录下直接使用composer命令。
配置中国镜像
修改composer全局配置文件,打开命令行窗口并执行命令:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
如果需要解除镜像并恢复到packagist官方源,执行命令:composer config -g --unset repos.packagist
项目初始化
执行命令:composer init
,可一直回车下去。
修改配置
修改composer.json配置文件,其中autoload配置项是自动加载设置。
- files:自动加载文件列表,适合于加载函数
- psr-4:自动加载命名空间与目录对应关系
修改过配置文件需要执行:composer update
配置
在项目中使用以下代码即可完成自动加载。
include 'vendor/autoload.php';