zl程序教程

您现在的位置是:首页 >  其它

当前栏目

Composer使用

Composer 使用
2023-09-14 08:58:20 时间

如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道composer是什么了。没错,它就是PHP里快速安装类库的。平时,我们安装一个PHP类库,需要搜索- 下载;使用composer,我们只要知道包名,直接composer insatll就可以了。

PHP 语言本身就带有强大的网络功能、文件管理功能和丰富的系统 API,Composer 也只是一段 PHP 脚本而已。

引自Composer中文网的描述:

是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

安装PHP包、依赖库。

示例:

composer create-project laravel/laravel learnlaravel5 5.0.22

这是在安装laravel框架。YII框架也是通过composer安装的。

安装Composer

下面是安装命令(来自https://getcomposer.org/download/):

php -r "readfile(https://getcomposer.org/installer);" composer-setup.php

php -r "if (hash(SHA384, file_get_contents(composer-setup.php)) === fd26ce67e3b237fffd5e5544b45b0d92c41a4afe3e3f778e942e43ce6be197b9cdc7c251dcde6e2a52297ea269370680) { echo Installer verified; } else { echo Installer corrupt; unlink(composer-setup.php); }"

php composer-setup.php

php -r "unlink(composer-setup.php);"

按顺序执行即可。安装好后提示:

All settings correct for using Composer

Downloading...

Composer successfully installed to: /root/composer/composer.phar

Use it: php composer.phar

操作执行结束,会在当前目录下生成composer.phar文件。

在Linux里,composer.phar是可执行程序。

例如,我们可以使用php composer.phar update执行更新操作。

全局安装:

mv composer.phar /usr/local/bin/composer

之后,就可以直接使用composer install安装包了。不过通常情况下只需将composer.phar的位置加入到PATH就可以,不一定要全局安装。

生成一个空的Composer项目

在合适的地方新建一个文件夹,命名为 MFFC(My First Framework based on Composer),在文件夹下新建文件 composer.json:

{

 "require": {

}

命令行切换到 MFFC 目录下,运行:

composer update

就会在该目录下生成一个vendor文件夹。里面的代码大家可以看看。

以下以monolog为例:

在项目目录下创建一个composer.json文件,指明依赖,比如,你的项目依赖 monolog:

{

 "require": {

 "monolog/monolog": "1.2.*"

}

如果不需要使用https,可以这么写,以解决有时候因为https造成的问题:

{

 "require": {

 "monolog/monolog": "1.2.*"

 "config": {

 "secure-http": false

}

安装依赖非常简单,只需在项目目录下运行:

composer install

如果没有全局安装的话,则运行:

php composer.phar install

Composer提供了自动加载的特性,只需在你的代码的初始化部分中加入下面一行:

phprequire vendor/autoload.php;
composer list 列出所有可用的命令

composer init 初始化composer.json文件(就不劳我们自己费力创建啦),会要求输入一些信息来描述我们当前的项目,还会要求输入依赖包

composer install 读取composer.json内容,解析依赖关系,安装依赖包到vendor目录下

composer update 更新最新的依赖关系到compsoer.lock文件,解析最新的依赖关系并且写入composer.lock文件

composer search packagename 搜索包,packagename替换为你想查找的包名称

composer require packagename 添加对packagename的依赖,packagename可修改为你想要的包名称

composer show packagename

composer self-update 更新 composer.phar文件自身

composer dump-autoload --optimize 优化一下自动加载

composer command --help 以上所有命令都可以添加 --help选项查看帮助信息

更多可用命令,可以在命令行输入composer进行查看。

packagist.org是Composer的仓库,很多著名的PHP库都能在其中找到。你也可以提交你自己的作品

当你安装完Composer后,使用时,却发现不能下载包,或者很慢,这是一个『众所周知』的原因。

所以,我们使用国内的镜像站点进行代替,常用方法有两种:

1、修改全局配置:全局配置的文件一般放在C:\Users\XXX\AppData\Roaming\Composer\config.json,例如C:\Users\YJC\AppData\Roaming\Composer\config.json。(这里以windows路径为例)

{

 "config": {

 "repositories": [

 {"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},

 {"packagist": false}

}

2、修改当前配置:即项目当前的composer.json文件;

{

 "require": {

 "noahbuscher/macaw": "dev-master"

 "repositories": [

 "packagist": false

 "type": "composer", 

 "url": "http://packagist.cn"

}

3、常见镜像地址:
https://packagist.org 国外的
http://packagist.cn 中国的
http://packagist.phpcomposer.com 中国全量镜像
http://pkg.phpcomposer.com/repo/packagist
http://pkg.uselaravel.com/repo/packagist 日本的

Framework Interoperability Group(框架可互用性小组),简称 FIG,成立于 2009 年。FIG 最初由几位知名 PHP 框架开发者发起,在吸纳了许多优秀的大脑和强健的体魄后,提出了 PSR-0 到 PSR-4 五套 PHP 非官方规范:

PSR-0 (Autoloading Standard) 自动加载标准 PSR-1 (Basic Coding Standard) 基础编码标准 PSR-2 (Coding Style Guide) 编码风格向导 PSR-3 (Logger Interface) 日志接口 PSR-4 (Improved Autoloading) 自动加载优化标准

之后,在此标准之上,Composer 横空出世!Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统。Composer 类似著名的 npm 和 RubyGems,给海量 PHP 包提供了一个异常方便的协作通道,Composer Hub 地址:https://packagist.org/。Composer 中文网站:http://www.phpcomposer.com/

目前 PHP 界风头正劲的 Laravel 和 Symfony 均直接基于 Composer,大家耳熟能详著名框架 CI 和 Yii 的正开发版本 CodeIgniter 3 和 Yii 2 也都基于 Composer(更新:北京时间2014年10月13日 Yii 2 已经发布)。Composer 就是 PHP 框架的未来,有了它,让 CI 的路由和 Laravel 的 Eloquent ORM 协作就会变的非常简单。


Composer 安装 Composer 是一个用于 PHP 依赖管理的工具。它实现了让你声明项目所依赖的库,并帮你完成安装 / 更新过程。 Composer 不是像 Yum 或 Apt 一样的包管理器,虽然它会处理『包』或库,但它管理这些包、库是基于项目的,它会安装这些包、库到你项目的一个目录下(一般是在 vendor 文件夹里),默认情况下不会全局地安装。