Composer使用体验

简介: 什么是Composer简单来说,Composer是PHP的包依赖管理器。但是Composer并不是类似于Yum、Apt的包管理器。Composer可以用于包或者第三方库的安装,但是可以选择在Project范围内进行安装。

什么是Composer

简单来说,Composer是PHP的包依赖管理器。但是Composer并不是类似于Yum、Apt的包管理器。Composer可以用于包或者第三方库的安装,但是可以选择在Project范围内进行安装。Composer是受到Node的NPM启发。

Composer可以在下面的方面帮助到你:

  1. 允许我们定义项目 Project 依赖的第三方库
  2. 自动帮我们查找到哪些库可以下载,并且下载安装

安装(Linux/Unix/mac)

Composer 需要PHP 5.3.2+ 版本的支持

Composer的安装文件很简单,直接下载一个PHP文件,然后在命令行执行就可以。安装过程实际上是下载一个 composer.phar 的文件到项目文件夹。这个文件是 Composer 的库文件。

php composer-setup.php    //安装,下载composer.phar文件,默认到当前目录
php composer.phar //运行composer

使用

配置 composer.json

想在项目中使用 Composer 首先需要一个 composer.json 文件。该文件为必需文件,该文件指定了项目依赖哪些第三方库。

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

Composer 会根据 composer.json 的配置从 资源库 中查找。资源库可以是 Packagist 或者指定的资源库。

安装

php composer.phar install

执行上面的命令,可以将monolog安装(下载)到项目中。下载完成后,项目中多一个 composer.lock 文件以及一个 vendor 文件夹。vendor 文件夹中包含了下载的 monolog 库以及一个 autoload.php、composer文件夹。

第一次安装时,Composer 根据 composer.json 文件来决定需要哪些依赖,之后会将安装过程中的相关信息收集写入 composer.lock 文件,该文件将我们依赖的第三方库的版本进行锁定。composer.lock 文件应当提交到版本库中,以确保其他用户都使用相同的第三方库。

Autoload

require __DIR__ . '/vendor/autoload.php';

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');

Composer 会产生一个 autoload.php 文件,代码中包含该文件后就可以正常使用第三方库。也可以自己在 composer.json 中配置 Autoload的信息。

{
    "autoload": {
        "psr-4": {"Acme\\": "src/“}    //注册psr-4的自动加载器,命名空间为 Acme
    }
}

配置之后,执行php composer.phar dump-autoload来重新生成autoload。

更新第三方库到最新版本

php composer.phar update

这个命令可以将项目中的第三方库进行更新,更新到最新版本,依赖于 composer.json 的配置。同时更新 composer.lock 文件。

参考资料:
1、Composer

相关文章
|
NoSQL Linux Apache
brpc最新安装上手指南
brpc最新安装上手指南
1044 1
brpc最新安装上手指南
|
Shell Python
miniconda使用体验
## 简介 miniconda是什么呢? 这里简单用一个公式来说明 miniconda = virtualenv + pyenv + pypi源 通过miniconda可以实现创建隔离的python包环境,下载特定的python包版本,使用conda源上编译好的whl包。可以说一应俱全。 ## 安装 miniconda在Mac可以直接用Brew安装,一行命令 `brew install mini
|
3月前
|
前端开发 Linux PHP
Composer 入门与 Laravel 安装指南
【8月更文挑战第31天】
92 1
|
11月前
|
Ubuntu 计算机视觉
Ubuntu新手友好:OpenCV 4.6.0安装的简化教程
网络首发,一定可以成功 依赖环境
293 0
|
Web App开发 JSON 前端开发
Yapi 和 Apifox 哪个更好用?详细体验告诉你
在国产软件接口管理软件中,Apifox 和 yapi 口碑都挺不错的。从功能定位上来说,两者几乎一致,不过具体的功能设计和使用体验,还是会不一样的
2026 1
Yapi 和 Apifox 哪个更好用?详细体验告诉你
|
网络虚拟化 计算机视觉
Homebrew下载速度优化(已解决问题)
Homebrew下载速度优化(已解决问题)
1046 1
|
数据可视化 机器人 测试技术
自动化测试 RobotFramework安装以及使用教程
自动化测试 RobotFramework安装以及使用教程
|
数据可视化 程序员 测试技术
Gitlab上手指南(六)|如何利用vscode工具快速的解决代码冲突
相信很多用git的程序员对于git冲突都很恐惧。当你项目马上要上线,测试让你把主分支的代码合并一下,要做一个回归测试,然后你合并的时候,一堆冲突代码,直接让你头皮发麻。到底应该处理哪一个冲突,哪一段代码
4675 1
|
设计模式 前端开发 PHP
PHP的Laravel与Composer部署项目时常见问题
我们在部署PHP项目时,其实大部分的PHP项目会创建环境检测与一键Install页面。 但是,有许多的项目还采用了Composer部署。
362 0
|
JavaScript 前端开发 程序员
前端:nodejs版本管理神器nvm软件使用笔记
使用vue框架开发的朋友可能会遇到首次运行公司项目环境的时候,会出现使用npm install命令安装依赖包的时候出现各种各样的问题,其中很重要的一个错误原因就是因为你的nodejs版本和当时搭建环境的版本不一致造成的。今天就来给大家推荐nvm这款nodejs版本管理工具,可以解决你在实际运行vue项目中的一些问题,一起来看看吧!
前端:nodejs版本管理神器nvm软件使用笔记