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
- 1
下载成功的提示如下:
分享我下载下来的composer.phar
3 . 将composer.phar执行文件路径写入环境变量
重启dos窗口,在任意路径下输入
composer -v
- 1
安装成功!
MAC下安装
Composer 是 homebrew-php 项目的一部分
brew update
brew tap josegonzalez/homebrew-php
brew tap homebrew/versions
brew install php55-intl
brew install josegonzalez/php/composer
- 1
- 2
- 3
- 4
- 5
linux下安装
- 下载composer.phar
curl -sS https://getcomposer.org/installer | php
- 1
2.把composer.phar移动到环境下让其变成可执行
mv composer.phar /usr/local/bin/composer
- 1
composer版本更新
执行以下命令,进行版本更新
composer selfupdate
========================================================================
composer入门教程--初始化工作目录
初始化工作目录
使用composer初始化工作目录,在项目的根目录命令行输入:
composer init
- 1
一些输入项可以先跳过,完成初始化工作后将在项目根目录生成composer.json文件。
编写composer.json文件
使用composer进行项目管理需要指定项目所依赖的库,需要编写composer.json声明依赖关系,格式如下:
{
"name":"testor/composer_test"
,"require": {
"提供者/项目名":"项目版本"
}
}
- 1
- 2
- 3
- 4
- 5
- 6
每个项目都可以看成是一个包, 使用“name”指定项目的包名称,从而让它成为一个可安装的包。
使用“require”指定项目所需要安装的依赖包。
例如:在实际项目开发中需要使用PHP日志记录工具monolog,声明依赖如下:
{
"name":"testor/composer_test"
,"require": {
"monolog/monolog": "1.0.*"
}
}
- 1
- 2
- 3
- 4
- 5
- 6
注:”1.0.*” 指依赖库版本 大于等于1.0且小于1.1。
更多版本号声明方式:
========================================================================
composer入门教程--安装项目依赖
安装项目依赖
接上一篇文章composer入门教程–初始化工作目录(3) 编写的composer.json文件,在composer.json文件所在目录命令行下执行如下命令:
php composer.phar install或composer install
- 1
安装项目依赖成功后的文件如下:
其中,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"
}
}
- 1
- 2
- 3
- 4
- 5
- 6
执行:
php composer.phar install
- 1
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;
- 1
- 2
- 3
- 4
运行结果:
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');
- 1
- 2
- 3
- 4
- 5
运行结果:
本教程结束,你学会了吗!
相关阅读
11-移动端开发教程-zepto.js入门教程Zepto.js是一个轻量级的针对现代浏览器的JavaScript库, 它与jquery有着类似的api。 如果你会
HttpClient简介HttpClient 功能介绍 1. 读取网页(HTTP/HTTPS)内容 2、使用POST方式提交数据(httpClient3) 3. 处理页面
Android入门教程二十五之Button(按钮)与ImageButton(
今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似
推荐一个Oracle入门学习教程 点击下面链接进入自学网站 学习网站:http://www.51zxw.net/study.asp?vip=16229363 点击图片箭
centos6操作系统 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处