必威体育Betway必威体育官网
当前位置:首页 > IT技术

composer入门教程

时间:2019-10-16 07:13:47来源:IT技术作者:seo实验室小编阅读:85次「手机版」
 

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 非官方规范:

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

为什么要使用composer

考虑如下场景

一个项目如果只是自己一个人开发的话,自己很清楚需要引入什么库,此时如果有新同事又加入项目一起开发,你告诉他要引入什么库,这时候可能会遇到版本库不一致存放位置不一致依赖库引入不方便等问题。如果项目再继续增加人手,项目需要传播给其它成员时,在引入依赖库的时候也会重复遇到以上问题。

composer很好的解决了以上场景出现对的问题,在进行项目开发时只需声明项目所依赖的东西,composer 会找出哪个版本的包需要安装,并将它们下载到项目中。

composer实际应用

目前php的主流框架都使用了composer,常见的有Laravel Symfony CodeIgniter 3Yii 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下安装

  1. 下载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 intsallcomposer只会下载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

运行结果: 

这里写图片描述

本教程结束,你学会了吗!

相关阅读

移动端开发教程-zepto.js入门教程

11-移动端开发教程-zepto.js入门教程Zepto.js是一个轻量级的针对现代浏览器的JavaScript库, 它与jquery有着类似的api。 如果你会

HttpClient入门教程

HttpClient简介HttpClient 功能介绍  1. 读取网页(HTTP/HTTPS)内容  2、使用POST方式提交数据(httpClient3)   3. 处理页面

Android入门教程二十五之Button(按钮)与ImageButton(

今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似

oracle入门教程

推荐一个Oracle入门学习教程 点击下面链接进入自学网站    学习网站:http://www.51zxw.net/study.asp?vip=16229363 点击图片箭

CoreSeek详细入门教程

centos6操作系统 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处

分享到:

栏目导航

推荐阅读

热门阅读