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
附:项目代码地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章