快速了解Composer

PHP依赖管理工具Composer早有耳闻,但是一直没有了解过。最近研究定时任务调度,发现Laravel框架自带定时任务管理功能,处于好奇就想去看看。

之前完全没有接触学习过Laravel, 按照习惯,先下载安装让框架代码跑起来。打开文档发现需要用Composer安装,那就先了解下Composer呗。进入Composer官网发现又是一堆文档,目测10分钟是看不完了。

我的目标是快速安装好Laravel,一边调试一边看任务调度的逻辑,结果第一步就被拖住了,我多么希望有一个简单的极致的说明和用法介绍,于是稍微花费了一些功夫有了下面的整理,希望10分钟内你就能明白。

一、什么是Composer?
简单点说Composer是PHP依赖管理工具,安装后通常就是命令行工具composer,直接使用composer install命令,可以从网络上下载并安装PHP依赖库到项目中(从网站packagist.org上获取依赖库信息,从github.com上获取源码信息)。
如下图:

如果你使用过Node.js的npm,Ruby的bundler, 或者Python的pip,那么你可能会很容易理解PHP的Composer, 如果你跟我一样都没接触使用过,也不用担心,相信我,稍微花点时间,实践一次就会了。

二、安装Composer

Linux和Mac系统下安装命令:
curl -sS https://getcomposer.org/installer | /usr/bin/php -- --install-dir=/usr/local/bin --filename=composer
# 说明:从官网请求Composer安装程序(composer-setup.php),
通过php来执行安装(php composer-setup.php)到指定目录(生成的文件是composer.phar),并且重命名为composer。

安装成功提示信息如下:

bj-m-208521a:tmp chuanbo7$ curl -sS https://getcomposer.org/installer | /usr/bin/php -- --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer
Downloading...

Composer (version 1.8.4) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

使用Composer命令查看版本和状态:

# 查看版本
composer -V
Composer version 1.8.4 2019-02-11 10:52:10

# 诊断状态
composer diagnose

如果安装慢,可以使用国内镜像,参考这里

# 使用国内镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com

三、使用Composer安装项目
1、安装Lavavel

# 安装后的文件都放在niliu目录下
composer create-project --prefer-dist laravel/laravel niliu

2、启动本地开发服务器

# 进入niliu目录, 执行
php artisan serve
# 启动成功提示Laravel development server started: <http://127.0.0.1:8000>

本地浏览器访问:127.0.0.1:8000

注:如果启动失败提示Could not open input file: artisan
需要进入到项目中:其他情况查看这里

四、使用Composer在项目中安装依赖库
安装Excel为例:

# 安装,成功后会在项目目录,vendor下生成phpoffice/phpexcel/目录
composer require phpoffice/phpexcel
# 使用
require 'vendor/autoload.php';

五、总结
学习的过程中,顺便查了以下使用Composer的好处,知乎上这个问题下@Summer和@大水的回答让我印象深刻:Composer并不难,难的是让你接受新事物。建议作为新手,学习编程时经常会出现『技术话题过载』的问题,不用担心,找个教程直接使用就行。你不需要在一开始就弄懂所有的概念,等到学习深入了,经验慢慢积累了,那时候你再去了解 Composer 的机制和作用,会更加轻松。

深有感触,随着工作年限增加,对新事物越来越迟钝,并不是因为新事物多难,而是我们习惯了使用自己的存量,习惯了待在舒适区。不愿意花稍微多一点的时间去把新事物的本质搞清楚。哪怕多花了半天时间去各种折腾Composer,也是很值得的。以后的场合你还会经常遇到Composer, 那会再相遇,就是朋友,不是陌生人了。

常见问题:
运行composer提示:
Composer installed, but get /usr/bin/env: php: No such file or directory
解惑:php可执行文件路径不对,查看后做个软连接:

which php
alias php='/usr/local/php/bin/php'
sudo ln -s /usr/local/php/bin/php /usr/bin/php

参考:
composer官网
composer中文网
Laravel中文安装文档

发表评论

电子邮件地址不会被公开。 必填项已用*标注