> Coding > PHP >

composer入门教程

composer入门教程--初识 composer
composer简介
composer 是 PHP 的一个依赖管理工具,它并不是一个包管理器,它允许开发人员声明项目所依赖的代码库,它会在项目中安装他们。 
composer 利用 PSR-0 到PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统。composer类似著名的 npm 和 RubyGems,给海量 PHP 包提供了一个异常方便的协作通道。
 
php代码规范PSR简介
Framework Interoperability Group(框架可互用性小组),简称 FIG,FIG 提出了 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很好的解决了以上场景出现对的问题,在进行项目开发时只需声明项目所依赖的东西,composer 会找出哪个版本的包需要安装,并将它们下载到项目中。
 
composer实际应用
目前php的主流框架都使用了composer,常见的有Laravel 、Symfony 、CodeIgniter 3、Yii 2 等等,composer 就是 PHP 框架的未来,有了它,让 CI 的路由和 Laravel 的 Eloquent ORM 协作就会变的非常简单。
 
 
 
==========================================================================
 
composer入门教程--安装composer
系统要求
运行composer 需要 PHP 5.3.2+以上版本。一些敏感的 PHP 设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。
 
windows下手动安装composer
1 .检查是否打开了php_openssl.dll扩展 

这里写图片描述
 
 
2 . 下载composer.phar(需要翻墙)
 
php -r "readfile('https://getcomposer.org/installer');" | php

 
下载成功的提示如下: 
这里写图片描述
 
分享我下载下来的composer.phar
 
3 . 将composer.phar执行文件路径写入环境变量 
这里写图片描述
 
重启dos窗口,在任意路径下输入
 
composer -v

这里写图片描述
 
安装成功!
 
MAC下安装
Composer 是 homebrew-php 项目的一部分
 
brew update
brew tap josegonzalez/homebrew-php
brew tap homebrew/versions
brew install php55-intl
brew install josegonzalez/php/composer
 

 
LINUX下安装
下载composer.phar
curl -sS https://getcomposer.org/installer | php

 
 2.把composer.phar移动到环境下让其变成可执行 
 
 
mv composer.phar /usr/local/bin/composer

 
composer版本更新
执行以下命令,进行版本更新
 
composer selfupdate
 
 
========================================================================
 
composer入门教程--初始化工作目录
初始化工作目录
使用composer初始化工作目录,在项目的根目录命令行输入:
 
composer init

 
一些输入项可以先跳过,完成初始化工作后将在项目根目录生成composer.json文件。
 
编写composer.json文件
使用composer进行项目管理需要指定项目所依赖的库,需要编写composer.json声明依赖关系,格式如下:
 
{
    "name":"testor/composer_test"
    ,"require": {
        "提供者/项目名":"项目版本"
    }
}
 


 
每个项目都可以看成是一个包, 使用“name”指定项目的包名称,从而让它成为一个可安装的包。 
使用“require”指定项目所需要安装的依赖包。 
例如:在实际项目开发中需要使用PHP日志记录工具monolog,声明依赖如下:
 
{
    "name":"testor/composer_test"
    ,"require": {
        "monolog/monolog": "1.0.*" 
    }
}
 


 
注:”1.0.*” 指依赖库版本 大于等于1.0且小于1.1。 
更多版本号声明方式: 
这里写图片描述
 
 
 
========================================================================
 
composer入门教程--安装项目依赖
安装项目依赖
接上一篇文章composer入门教程–初始化工作目录(3) 编写的composer.json文件,在composer.json文件所在目录命令行下执行如下命令:
 
 php composer.phar install或composer install

 
安装项目依赖成功后的文件如下: 
这里写图片描述
 
其中,vendor文件夹存放了项目的依赖库,composer把安装时确切的版本号列表写入composer.lock文件用来锁定composer,这将锁定该项目的特定版本。
 
composer.lock文件
当项目根目录下已经生成composer.lock文件时,当执行命令composer intsall时composer只会下载composer.lock文件指定的版本,忽略 composer.json 文件中的定义,从而确保团队成员都使用相同的依赖包。
 
更新依赖库
若package.json进行了修改需要更新依赖库和更新锁文件,可以执行以下命令:
 
 php composer.phar update或composer update
 
=====================================================================
 
composer入门教程--在项目中使用composer
 
准备工作
配置composer.json文件如下:
 
{  
    "require": {  
    "monolog/monolog": "1.0.*",
    "driehle/php-crypt-md5": "2.0.*@dev"
    }
}
 


 
执行:
 
php composer.phar install

 
composer自动加载机制
对于库的自动加载信息,composer 生成了一个 vendor/autoload.php 文件。在项目中引入这个文件即可自动加载依赖库。
 
demo1
demo1的功能是使用php-crypt-md5这个库的加密函数。 
在vendor同级目录下创建demo1.php,代码如下:
 
require 'vendor/autoload.php';
use Md5Crypt\Md5Crypt;
$cryptedpassword = Md5Crypt::unix   ("123456" ,"123");
echo $cryptedpassword;
 

 
运行结果:
 
 
 
demo2
demo2的主要功能是使用monolog记录php日志。 
在vendor同级目录下创建demo2.php,代码如下:
 
<?php
require 'vendor/autoload.php';
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
 

 
运行结果: 
 
 
 

 

(责任编辑:IT)