一、基础知识
安装依赖
composer install
- install 命令将会检查锁文件 composer.lock 是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义),如果不存在 composer.lock 文件,Composer 将读取 composer.json 并创建锁文件
- 该命令会做两件事情,一是下载项目依赖包到 vendor 目录,二是创建 composer.lock 文件(如果不存在)
添加依赖
- 方式一
composer require packagistName
- 方式二
- 手动更改添加 composer.json 文件的依赖项 require
- 执行
composer update [packagistName]
命令进行安装
更新依赖
composer update [packagistName]
自动加载
- psr-4 自动加载定义一个从命名空间到目录的映射
- classmap 是指没有命名空间的类库进行自动加载
- files 自动加载文件,一般用于公共函数文件
- 自动加载时需要引入 vendor/autoload.php 文件
- 当项目添加了没有命名空间的类库文件,要想实现自动加载,需要执行
composer dump-autoload
命令
{
"require": {
"nesbot/carbon": "^1.39",
"larapack/dd":"1.*"
},
"autoload": {
"psr-4": {
"app\\": "app/"
},
"classmap": ["lib/"],
"files": ["app/common/helpers.php"]
}
}
发布依赖
- 发布到 VCS(线上版本控制系统)
- 发布到 packagist
- 发布到其他资源库
二、学以致用,创建一个项目
首先创建 composer.json 文件
{
"name": "phpzs4336/topmdrt",
"type": "project",
"require": {
"nesbot/carbon": "^1.39",
"larapack/dd":"1.*"
},
"autoload": {
"psr-4": {
"app\\": "app/"
},
"classmap": ["lib/"],
"files": ["app/common/helpers.php"]
}
}
分别创建 app 应用目录,lib 类库目录,public 公共访问目录(包含入口文件 index.php)
<?php
include '../vendor/autoload.php';
use Carbon\Carbon;
use app\controller\TestController;
//使用自动加载类
$qr = new QRcode();
$qr->getQrcode();
echo "<hr>";
//使用命名空间类
$test = new TestController();
$test->index();
echo "<hr>";
//使用公共函数
echo get_rand_str();
echo "<hr>";
Carbon::setLocale('zh');
$humans = Carbon::now()->subDays(5)->diffForHumans();
dd($humans);
浏览器访问入口文件,结果如下图
附:项目代码地址