搜尋
首頁後端開發php教程Composer快速入门

什么是Composer

Composer是PHP的一个依赖管理工具。你可以在你的项目里声明你依赖的库,然后Composer会帮你解决以下问题:找到这些库以及这些库所依赖的库可以安装的版本,然后进行安装。所以Composer是一个依赖管理工具,而不是一个包管理工具(类似Yum或者Apt),因为它是基于每个项目去管理这些包,把这些包安装到项目里的某个目录。

Composer的安装

Composer要求 PHP 5.3.2+版本以及一些PHP的配置,如果有不兼容的情况发生,在安装过程中会有提示。有两种方式安装Composer,一是本地安装,而是全局安装。

本地安装

本地安装会把Composer安装到当前的目录下。运行以下命令进行安装:

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '070854512ef404f16bac87071a6db9fd9721da1684cd4589b1196c3faf71b9a2682e2311b36a5079825e155ac7ce150d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"$ php composer-setup.php$ php -r "unlink('composer-setup.php');"

一共4条命令,它们分别执行以下的操作:

  1. 下载安装文件到当前目录。

  2. 检验安装文件的SHA-384散列。

  3. 运行安装文件。

  4. 删除安装文件。

然后我们就可以运行执行以下命令来运行Compoer了:

$ php composer.phar

需要注意的是,第二步检查文件的散列,每一个版本安装文件的散列值都会不同的,所以每次安装最好都到 下载页面去获取安装代码。或者如果你觉得没有检查安装文件的必要的话,也可以跳过这条命令去执行下面的命令。当然从安全角度考虑,不建议这么做。

全局安装

所谓全局安装,其实就是把Composer安装到 PATH变量里的某个目录中,这样你就可以从任何地方去访问Composer了。个人也建议这么做。我们只需要把本地安装的composer执行文件移动到全局目录下即可:

$ mv composer.phar /usr/local/bin/composer

这样你就可以在任何地方直接运行 composer命令了。后续如没有特别说明,都是在全局安装的情况下执行命令。

安装选项

Composer安装时支持3个选项。

--install-dir

通过 --install-dir选项可以修改Composer的安装路径,例如如果我们想把Composer安装在 bin目录下:

$ php composer-setup.php --install-dir=bin

--filename

通过 --filename选项,我们可以修改Composer执行文件的名称(默认为composer.phar)。例如:

$ php composer-setup.php --filename=composer

--version

如果想安装指定版本的Composer,可以使用 --version选项:

$ php composer-setup.php --version=1.0.0-alpha8

手动下载

除了上面的安装方式外,还可以直接下载执行文件,请到 下载页面进行下载。

Composer的更新

更新Composer很简单,只需要执行以下命令:

$ composer selfupdateUpdating to version 1.1.2 (stable channel).    Downloading: 100%         Use composer self-update --rollback to return to version 06c45623d76457562cecbcf2245f904aa0f63a87# 或者(两者是等效的)$ composer self-update

如果想进行版本的回滚,可以使用以下命令:

$ composer selfupdate --rollbackRolling back to version 2016-05-26_16-11-16-06c4562.

Composer的基本使用

composer.json文件

安装完Composer后,想要在项目里开始使用它,你唯一需要做的就是创建一个 composer.json文件。这个文件描述了你这个项目所依赖的包以及一些其他的元信息。

require键

通过require这个配置项,我们可以指定项目的依赖。假设我们项目需要用到 monolog/monolog这个日志库,那么我们可以这样配置 composer.json文件:

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

require的值是一个对象,对象里的每一个键对应一个依赖,通过键名为包的名称,键值为包的版本。

包的名称

包名由vendor名和项目名组成,这样可以保证包名的唯一性。项目名可以重复,但是vendor名每个人都不一样。以 monolog/monolog为例,vendor名和项目名都是 monolog。

包的版本

在上面的例子中,我们要求 monolog/monolog的版本为 1.0.*,表示任何的1.0的开发分支版本都满足要求。版本的指定方式有很多种,在后面的文章中会进行详细的解说。

安装依赖

创建完 composer.json文件并配置好 require后,我们就可以安装依赖了,只需要运行以下的命令:

$ composer installLoading composer repositories with package informationUpdating dependencies (including require-dev)  - Installing monolog/monolog (1.0.2)    Downloading: 100%         Writing lock fileGenerating autoload files

Composer会根据上面配置的版本约定下载最新版本的 monolog/monolog到默认目录 vendor下。

composer.lock文件

运行完上面的 install命令后,你会发现除了 vendor目录,还会多了一个 composer.lock文件。这个文件保存了项目已经安装的每个包的具体版本。在运行 install命令的时候,如果存在这个文件,则Composer会根据这个文件下载对应版本的包。这样的好处是可以保证各个环境的依赖的版本一致,否则如果没有这个文件,每个环境在运行 install时可能下载到的版本就不一致了。所以建议把 composer.lock文件也放到版本控制里。

更新依赖

要更新依赖,只需要运行 update命令:

# 更新所有的依赖$ composer update# 更新某个依赖$ composer update monolog/monolog

自动加载

下载完依赖后,我们可以开始使用依赖所提供的库了。Composer会为下载的库创建自动加载文件 vendor/autoload.php,我们只需要包含这个文件就能轻松的调用各个库的功能。以 monolog/monolog为例:

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

我们不用关心库文件的加载问题,Composer的 autoload.php文件已经帮我们处理好了各个库的自动加载。

Packagist 镜像

至此,我们安装好了Composer,也知道了它的基本用法,基本可以快乐的玩耍了。但是众所周知,由于某些原因,github和packagist在国内有时会访问不了,或者速度很慢,这就会导致使用Composer时的各种不爽。还好我们国内有个 镜像可以解决这个问题,只需要把仓库的路径修改为镜像的路径即可。

有两种方式,一是修改Composer的全局配置(推荐的方式):

$ composer config -g repo.packagist composer https://packagist.phpcomposer.com

这个命令会修改Composer的全局配置文件 config.json。二是修改单个项目的配置:

$ composer config repo.packagist composer https://packagist.phpcomposer.com

这个命令会修改项目下的 composer.json文件,添加如下的配置信息:

"repositories": {    "packagist": {        "type": "composer",        "url": "https://packagist.phpcomposer.com"    }}

当然你也可以直接手动修改 composer.json文件,添加上面那段配置信息。

详情请访问: http://pkg.phpcomposer.com/。

参考

  • https://getcomposer.org/

  • http://pkg.phpcomposer.com/

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
在Laravel中使用Flash會話數據在Laravel中使用Flash會話數據Mar 12, 2025 pm 05:08 PM

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

PHP記錄:PHP日誌分析的最佳實踐PHP記錄:PHP日誌分析的最佳實踐Mar 10, 2025 pm 02:32 PM

PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除

php中的捲曲:如何在REST API中使用PHP捲曲擴展php中的捲曲:如何在REST API中使用PHP捲曲擴展Mar 14, 2025 am 11:42 AM

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

簡化的HTTP響應在Laravel測試中模擬了簡化的HTTP響應在Laravel測試中模擬了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

在Codecanyon上的12個最佳PHP聊天腳本在Codecanyon上的12個最佳PHP聊天腳本Mar 13, 2025 pm 12:08 PM

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

解釋PHP中晚期靜態結合的概念。解釋PHP中晚期靜態結合的概念。Mar 21, 2025 pm 01:33 PM

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

自定義/擴展框架:如何添加自定義功能。自定義/擴展框架:如何添加自定義功能。Mar 28, 2025 pm 05:12 PM

本文討論了將自定義功能添加到框架上,專注於理解體系結構,識別擴展點以及集成和調試的最佳實踐。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),