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>
注:如果启动失败提示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