文档章节

掌握Composer

城市之雾
 城市之雾
发布于 06/17 10:57
字数 1295
阅读 3
收藏 0

这一次,真正掌握composer

composer是现代PHP的基石

现代高级编程语言,依赖管理工具是必不可少的。Java有Maven,Python有pip,Nodejs有npm, 而在composer出现之前,PHP只有被广为诟病的Pear, 由于Pear实在太难用,很少PHP开发者用到这个工具。以致于PHP的开发生态很糟糕。

连一个像样的依赖管理工具都没有,让PHP这门占据了web网站开发�主流市场的语言很尴尬。开发过程中,要用到第三方的类库,需要去下载zip包,然后解压,放到相应的目录,处理好命名空间,自动加载的问题,如果这个第三方包还有其他依赖项,还要再次重复这个流程,看着隔壁家python和node.js一个命令行就搞定,显得php开发人员的操作既原始又滑稽。

这场面,好比:

依赖管理工具大比拼

所幸,金光闪闪的composer驾着七彩祥云来了,PHP终于有了真正意义的依赖管理工具。可以说,composer是现代PHP的基石。

composer解决了项目的依赖关系,且实现了自动加载。开发人员只需要几个命令行,就能获取其他开发者的包,PHP开发工作因此变得如同堆积木,可以根据业务的需求,快速方便地拆解组合代码。

奇怪的是,即使compoer已经诞生好些年了,而且所有主流框架都支持composer,可竟然还有不少PHP开发者不用这个工具。甚至还有人觉得composer加大了PHP的学习难度。

持有这种想法的人,就好像是一辈子都用纸笔手工记账,有朝一日,给他配置了电脑,跟他演示了excel是如何地强大。他不为新事物的强大感到震撼惊喜,而是蹙眉不满地说:“这东西太难学了,我还是习惯用纸笔”。

对于持有这种想法的人,我只能两手一摊。心态衰老的年轻人,如果他的内心一直在装睡,任谁也叫不醒。但时代的步伐可不会因为他们的拉后腿而停止前进,只会把他们远远甩在身后...

初识composer

composer的安装步骤,在composr中文社区有详细的说明,点击查看

安装流程

安装的流程很简单,归结为以下几步:

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" # 下载安装脚本 - composer-setup.php - 到当前目录
php composer-setup.php # 执行安装过程
php -r "unlink('composer-setup.php');" # 删除安装脚本
sudo mv composer.phar /usr/local/bin/composer # 全局安装
composer config -g repo.packagist composer https://packagist.phpcomposer.com # 更换国内镜像源

安装完成后,查看composer版本

composer

第一次使用

接下来,我们用composer来安装第一个包

monolog包为例,这个包可以让开发者很方便地将日记写入到文件、数据库或其他储存介质中。

  1. 在项目根目录新建composer.json文件,写入以下内容
{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}
  1. 执行composer install指令安装包依赖

composer install

  1. 使用包进行开发

目录结构

composer已经为我们下载了monolog包,且生成了autoload.php自动加载文件

新建monolog.php文件,内容如下:

<?php
require 'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('monolog.log', Logger::WARNING));

// add records to the log
$log->warn('警告日志');
$log->err('错误日志');

运行脚本:

  learnComposer  php monolog.php

生成了日志文件monolog.log

[2018-07-12 14:18:14] name.WARNING: 警告日志 [] []
[2018-07-12 14:18:14] name.ERROR: 错误日志 [] []

只需一个配置文件composer.json,一行指令composer install,代码中引入autoload.php,即可完美地使用第三方包。接下来分析composer的包管理规范

composer包管理规范

什么是包?只要存在composer.json文件的代码都可以称之为一个包。

包名称

包名称由作者+项目名称组成。有些包作者名与项目名是相同的,如mustache/mustache

包名称一定要加上作者,避免冲突。如,同样的是小龙女这个角色,不同人演绎的效果完全不同。如果你只是说你要看小龙女,可能给你的是一个陈妍希版本的小笼包,而不是你一直仰慕的仙女刘亦菲。

那么,我们怎么根据一个包的项目名去获取包的信息呢?以mustache包为例:

  1. packagist查找

搜索包

点击进入包信息详情页,可以看到包的安装方法以及版本信息

安装包

除了在composer.json中写包的安装信息,还可以通过composer require mustache/mustache这种方式直接安装

包信息

  1. composer search指令查找

composer search

查看包的具体信息 composer show mustache/mustache --all

composer show

 

本文转载自:https://www.jianshu.com/p/adcae6213e9b

城市之雾
粉丝 3
博文 148
码字总数 20762
作品 0
无锡
私信 提问
作为PHP开发者请务必了解Composer

原文出处:虞大胆 Composer是一个非常流行的PHP包依赖管理工具,已经取代PEAR包管理器,对于PHP开发者来说掌握Composer是必须的. 对于使用者来说Composer非常的简单,通过简单的一条命令将需要的...

虞大胆
2016/12/15
0
0
swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? docker 了解一下呗~

date: 2018-8-01 14:22:17 title: swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? docker 了解一下呗~ description: 阅读 sowft 框架源码, swoft 第一步, 搞定环境 小伙伴刚接触...

daydaygo
2018/08/10
0
0
作为PHP开发者请务必了解Composer

作为PHP开发者请务必了解Composer 2016-12-17 PHP开发者 (点击上方公众号,可快速关注) 作者:虞大胆 链接:www.jianshu.com/p/98c5b254a79e Composer是一个非常流行的PHP包依赖管理工具,...

High_Mountain
2017/03/06
0
0
PHP回顾之创建自己的Composer包

前文 PHP回顾之Composer 简要介绍了Composer的相关概念和简要用法,应付日常开发已无大碍。想要更好的利用Composer协同工作,学会创建自己的Composer包是一项必不可少的技能。本文先讲解Com...

PHP开发栈
05/29
0
0
高级php程序员必会的知识点(一)

PHP作为网络开发的强大语言之一,现在应用非常广泛,具有开放源代码,跨平台性强,开发快捷,效率高,面向对象,并且易于上手,专业专注等诸多优点。 然后很多PHP新手除了的开发外,必须要掌握...

老鸟的天空
2018/08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux的基本命令

目录的操作命令(增删改查) 增: mkdir 目录名称; 查: ls 可以看到该目录下的所有的目录和文件 ls -a,可以看到该目录下的所有文件和目录,包括隐藏的 ls -l,可以看到该目录下的所有目录和...

凹凸凸
今天
2
0
在古老unix中增加新用户

Installing 4.3 BSD Quasijarus on SIMH 目标:要在4.3BSD中新增加用户dmr,指定目录/home/dmr,uid为10 gid=31(guest组,系统已建立) 4.3BSD还没有adduser或useradd 直接修改/etc/passwd...

wangxuwei
今天
2
0
Bootstrap(六)表单样式

基本样式 所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好...

ZeroBit
昨天
3
0
SSL 证书格式转换

SSL 证书格式转换 不同服务器情况下,需要不同的证书格式。 比如 pem 转 pfx。 pem在window 平台下可以导入,但是无法正常使用。 需要转换成pfx。 推荐在线转换工具,由中国数字证书网站提供...

DrChenXX
昨天
2
0
HAProxy

xx

Canaan_
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部