微信号:phpgod

介绍:本公众号对PHP开发技术进行全面透析,所含内容适合各个阶段的PHP developer阅读和收藏,既然关注了就一定会有收获.

【PHP】包管理工具Composer

2017-11-08 08:34 PHP技术大全

Composer是PHP目前普遍应用的包管理机制,可以方便地实现依赖包的管理、安装、更新和自动加载。

Composer的安装

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Composer项目配置

在项目中增加composer.json,语法定义见 这里

{
  "name": "项目名",
  "description": "项目描述",
  "type": "project",
	"require": {
		"php": ">=7.0",
		"illuminate/container": "^5.5",
		"illuminate/database": "^5.5",
		"illuminate/events": "^5.5",
		"illuminate/support": "^5.5"
	},
	"require-dev": {
		"phpmd/phpmd":"^2.0.0",
		"phpunit/phpunit": "^4.8",
		"codeception/aspect-mock": "^2.0"
	},
	"scripts": {
		"post-install-cmd": [
			"../scripts/composer-post-install"
		]
	},
	"config": {
		"preferred-install": "dist"
	},
	"autoload": {
		"files": [
			"./function.php"
		],
		"classmap": [
			"./lib/"
		],
		"psr-4": {
			"Model\\": "./Model/"
		}
	},
	"autoload-dev": {
		"classmap": [
			"../unittest/lib/"
		],
		"psr-4": {
			"Test\\": "../unittest/testcase/"
		}
	},
	"repositories": [
		{"type": "composer", "url": "https://packagist.phpcomposer.com"},
		{"packagist": false}
	],
	"extra": {
		"include_files": [
			"./bootstrap/const.php"
		]
	}
}

Composer常用命令

# 增加包依赖
composer require 依赖包

# 安装包
composer install

# 更新包
composer update

# 显示composer命令
composer list

# 搜索包
composer search 通配符

# 在全局目录下跑composer命令
composer global 命令

至于可以用的公共依赖包可以在 Packagist 里找到。

Composer使用建议

  1. 常用的系统功能基本上都已经有现成的包,可以直接通过依赖方式引入到项目中直接使用

  2. 公司内相对底层的抽象代码也可以独立建包,通过依赖方式引入到不同的项目中;这样就需要建立私有的Packagist库;之前可以用 Toran Proxy 来建立公司私有库,但目前该工具已经停止运营,工具页面也直接引导到 Private Packagist 上了

彩蛋

Packagist 中国全量镜像: https://pkg.phpcomposer.com

附录

  1. Composer 官网

  2. Composer 中文站

  3. Packagist 官网

  4. Composer 脚本

  5. PHP包管理工具--Composer自动加载

打赏随意知识无价


关注随意❤PHP技术大全

@深圳

Since 2017-10-31


 
PHP技术大全 更多文章 使用 Laravel-Modules 扩展包通过模块化开发大型 Laravel 应用 Github精选|Models:基于TensorFlow的训练出来的三种机器学习模型集合 几个实用的PHP内置函数使用指南 PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案 PHP curl伪造IP地址和header信息代码实例
猜您喜欢 二线城市SEO不需要深入,就能自动赚钱 未来是h5的:写在微信应用号发布之际 黑客租阿里云平台攻击淘宝 真相是? 管理的常识(3):什么是组织 程序员到底是一个什么的职业?