查看: 340|回复: 0

[PHP代码] composer的介绍与使用

发表于 2017-7-17 08:00:04

来自: http://my.oschina.net/xiongyuanliang/blog/610725


Composer 是 PHP 的 一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。主要解决的问题:有非常多优秀的开源库,直接使用可以大大节约开发的 时间,但是在标准的库里面,又没有这些功能,于是在运行他们对应的系统的时候,需要去下载相关的库。(因为你需要跨平台的移植性,所以就需要对所引用的库 进行说明与管理)这样就出现了composer。

composer的安装:

1.curl -sS https://getcomposer.org/installer | php

下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)

curl -sS(s是指静默安装,S是指出现错误就报错)如果没有这俩个参数,会显示下载安装进度

但是国内安装composer的时候会经常失败:(如下,受制于国内网络的限制)


一个比较好的补充办法:

curl -sS http://install.phpcomposer.com/installer | php

这个是国内的版本。可以看到很快就会下载好


2.下载好了composer.phar之后,我们无法直接用composer命令,需要让其在全局进行使用,需要将其移动到/usr/local/bin/ 文件目录下面(然后我们可以自己做一个命名)

Mv composer.phar /usr/local/bin/composer

这样我们就可以全局使用了(在命令行里面输入composer就可以全局使用)

3.安装完成之后:(需要不定期的进行更新依赖库,才能拿到最新的依赖库)

composer selfupdate

Composer的几个相关概念:

1.phar包:Phar是PHP Archive缩写,将php文件归档到一个文件包。将一个模块的文件打包成一个phar,这样方便模块整体迁移,只需将phar文件移动过去,其他环境中include即可使用。

2.查看composer包 会发现该phar包 的头部是 #!/usr/bin/env php(该语句表明该命令是用环境里的php进行运行)


3.使用对应项目的composer.json 非常简单,在其对应的文件目录下面,composer install

即完成了依赖库的安装。

Composer的写法:(一般依赖库的文件名叫composer.json)下面以Laravel最新版本的composer.json为例子进行说明:

{

//包的名字

"name": "laravel/laravel",

//包的简单描述

"description": "The Laravel Framework.",

//包的关键词

"keywords": ["framework", "laravel"],

//许可证,确保其他程序员在使用的时候,没有法律上的问题

"license": "MIT",

//包的类型,默认为 library。这里是项目

"type": "project",

//需要的依赖条件

"require": {

"php": ">=5.5.9",

"laravel/framework": "5.2.*"

},

//列出开发这个包(或跑测试等等)所依赖的包。在使用 install 命令时,只有带上 “–dev” 参数才能安装 dev 包。在使用 update 命令时,带上 “–no-dev” 则不更新。

"require-dev": {

"fzaninotto/faker": "~1.4",

"mockery/mockery": "0.9.*",

"phpunit/phpunit": "~4.0",

"symfony/css-selector": "2.8.*|3.0.*",

"symfony/dom-crawler": "2.8.*|3.0.*"

},

//提供给 PHP autoloader 的自动加载映射

"autoload": {

"classmap": [

"database"

],

"psr-4": {

"App\\": "app/"

}

},

//测试环境下的自动映射

"autoload-dev": {

"classmap": [

"tests/TestCase.php"

]

},

"scripts": {

"post-root-package-install": [

"php -r \"copy('.env.example', '.env');\""

],

"post-create-project-cmd": [

"php artisan key:generate"

],

"post-install-cmd": [

"php artisan clear-compiled",

"php artisan optimize"

],

"pre-update-cmd": [

"php artisan clear-compiled"

],

"post-update-cmd": [

"php artisan optimize"

]

},

//针对项目的一些配置。

"config": {

"preferred-install": "dist"

}

}




回复

使用道具 举报