php之composer-composer.json参数autoload详解
简介
Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。对于类库的自动加载,Composer 生成了一个 vendor/autoload.php 文件。引入这个文件,就能得到一个免费的自动加载支持,这种感觉真是棒极了~本文主要是介绍如何利用 Composer 自带的自动加载机制,加载本地自定义的包(即不是来自于 packagist)。
使用
1. 在 composer.json 文件中的 autoload 字段中添加自己的 autoloader。
目前 Composer 支持四种自动加载映射的方式:
PSR-0 autoloading
PSR-4 autoloading
classmap generation
files
下面只介绍 PSR-4,为什么?因为它足够方便好用(当你添加类时不需要重新生成 autoloader)。详细请查看 自动加载 - 参考。
PSR-4(推荐)
{"autoload": {"psr-4": {"First\\": "src/","Temp\\": "lib/"}}}
上面的代码采用 PSR-4 规范,该规范包含了 PHP 最新的自动加载标准,它要求必须使用 namespace
(命名空间)的方式。
First\\
表示命名空间,必须以 \\
结尾,避免相似的命名空间导致冲突,若包含子命名空间,可以这样表示:First\\Second\\
。
src/
表示命名空间所在目录为与 Composer 的 vendor 目录同级的 src 目录,如下所示:
根目录 ├─src/ (First/) │ ├─Curl.php │ ├─vendor/ │ ├─autoload.php │ ├─composer.json ├─composer.lock ├─index.php
如果需要在多个目录下搜索相同的命名前缀,可以用一个数组提供:
{"autoload": {"psr-4": {"First\\": ["src/", "lib/"]}}}
2. 修改完 composer.json
的 autoload
字段后需要更新一下 Composer 的自动加载类:
composer dumpautoload -o
3. 被调用文件和调用文件示例
被调用文件 Curl.php
的命名空间如下表示:
<?phpnamespace First;class Curl{}
index.php
文件中调用 Curl.php
的方式如下:
<?phprequire'../vendor/autoload.php';use First\Curl;$curl = new Curl();
评论

React 18的并发渲染确实是个重大改进,我们在项目中已经升级使用,性能提升明显!