Composer 学习实践

一、基础知识

安装依赖
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);

浏览器访问入口文件,结果如下图
img
附:项目代码地址

本作品采用《CC 协议》,转载必须注明作者和本文链接
今年不学习,明天惨唧唧。
zs4336
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!