Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:composer常用命令就那几条 ,关键要知道这些命令的应用场景 ,并对结果有一定的预判
cd
进入到php目录,运行composer下载命令php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
得到composer.phar文件php -r "unlink('composer-setup.php');"
composer.phar
文件放到PHP目录(如果在PHP目录运行安装命令,文件就在目录下),在PHP目录下创建composer.bat
,文件内容是@php "%~dp0composer.phar" %*
运行一下这个文件,可以双击也可以命令行运行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
tip:Windows环境有可能会提示没有CA 证书(公钥/私钥)而安装composer失败
cacert.pem
证书phpstudy_pro
目录下面php.ini
文件,找到openssl.cafile=
配置顶openssl.cafile=D:/phpstudy_pro/cacert.pem
;
, 重启服务器Apache/Nginx
,再次运行指令包的命令是带有require,项目的命令是带有create-project
composer require gregwar/captcha
安装组件,这是一个验证码的组件,安装好后文件夹会多了一个组件名的文件夹composer create-project topthink/think tp6
安装一个项目,在命令后面加上新文件夹名安装后composer.json
和composer.lock
会有新组件或项目的配置信息
当有很多组件一个个的去安装很费时间,如果别人已经装好了需要的组件,你只需拿到它的json文件一次性安装所需组件
在目录下只需要有JSON或加上LOCK文件,json文件是必须的。
例如下面的composer.json文件
{
"require": {
"gregwar/captcha": "1.*"
}
}
执行命令行composer install
就会安装JSON文件内的全部组件,然后有lock文件会进行对应的组件详细配置
composer install
命令即可
{
}
文件目录:
文件的内容:
就像是PHP文件内直接require只不过是写到composer里面
{
"autoload": {
"files": [
"app/controller/User.php",
"lib/index/Goods.php"
]
}
}
它检测的是文件内的命名空间和类名,文件名字是可以随意的,文件名是abc.php只要内容存在需要的类就会加载
{
"autoload": {
"classmap": [
"app/controller",
"lib/index"
]
}
}
psr-4是左边命名空间,右边真实路径,这种映射,命名空间与真实目录的命名是可以不一致的,例如think空间对应是lib目录下的index目录
{
"autoload": {
"psr-4": {
"app\\controller\\":"app/controller",
"think\\":"lib/index"
}
}
}
修改完JSON文件需要执行更新命令composer dump-autoload
命令更新json文件,加载才会生效
test1.php调用代码:
<?php
require_once __DIR__ . '/vendor/autoload.php';
use app\controller\User;
echo User::hello();
use think\Goods;
echo Goods::hello();
use think\Order;
echo Order::hello();
?>