这次来了解一下配置文件 composer.json
用命令创建一个
{
"name": "codfrm/test", //包名
"description": "描述", //包描述
"license": "MIT",//开源协议,例如:MIT,Apache,BSD等
"authors": [//作者的信息
{
"name": "CodFrm",//自然是名字了
"email": "code.farmer@qq.com"//作者邮箱
}
],
"require": { //引入的包
"php": ">=7.1.3", //意思是php的版本>=7.1.3
"ehime/hello-world": "^1.0"//引入包ehime/hello-world,版本>=1.0 并且 版本<2.0
},
"require-dev": {//与require不同的是,这里一般是存放开发测试的包,并不是一定需要的包
"phpunit/phpunit": "^7.1"
}
}
还有一些其他的参数,例如经常会用到的autoload,这是一个自动加载的参数
index.php
<?php
require_once __DIR__."/vendor/autoload.php";
$a=new HuanL\Hello();
$a->print("world");
src/huanl/hello.php
<?php
namespace HuanL;
class Hello {
function print($var = null)
{
echo "hello $var";
}
}
修改composer.json文件
{
"name": "farmer/test",
"description": "描述",
"require": {
"php": ">=7.1.3",
"ehime/hello-world": "^1.0"
},
"license": "MIT",
"authors": [
{
"name": "CodFrm",
"email": "code.farmer@qq.com"
}
],
"require-dev": {
"phpunit/phpunit": "^7.1"
},
"autoload": { //加入了自动加载
"psr-4": { //psr-4规则
"HuanL\\":"src/HuanL/"//理解意思大概就是HuanL这个命名空间指向src/HuanL/这个目录
}
}
}
然后要执行一次下面这个命令,使刚刚的自动加载生效(感觉可能是像缓存一样的东西,前面一直疑惑配置了为什么不生效,以为是自己配置的问题),vendor\composer\autoload_static.php应该是修改这个文件的,将配置缓存进去
$ composer dump-autoload
文章评论