共计 1569 个字符,预计需要花费 4 分钟才能阅读完成。
基本使用
默认情况下常量、类和函数名都放在全局空间下。命名空间通过 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';