PHP Composer安裝&使用

WBOY
發布: 2016-07-29 09:14:59
原創
1260 人瀏覽過
基本用法
  • 基本用法
    • 安裝
    • display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json:安裝項目
      • 關於 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">require Key
      • 包名稱
      • 包版本
      • 下一個重要版本(波浪號運算子)
      • 穩定性
    • 安裝依賴套件
    • display:inline-block; line-height:18px; margin:0px 2px; line-height:18px; margin:0px 2px; .lock
    •  - 鎖文件
    • Packagist
    • 自動加載
  • 安裝安裝Composer,你只需要下載 display:inline-block; line-height:18px; margin:0px 2px; background-color: rgb(249,242,244)">composer.phar 執行檔。curl -sS https://getcomposer.org/installer | php 詳細請查看 簡介 章節。要檢查Composer 是否正常運作,只需要透過 display:inline-block :0px 2px; background-color:rgb(249,242,244)">php 來執行 PHAR:php composer.phar 這將會傳回給你一個可執行的指令清單。

    注意: 你也可以只執行 ; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">--check 選項而無需下載 Composer。 要取得更多的資訊請使用 displayinline height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">--helpcurl -sS https://getcomposer.org/installer | php -- --help

    display:inline-block; line-height:33.75px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json:项目安装要开始在你的项目中使用 Composer,你只需要一个 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 文件。该文件包含了项目的依赖和其它的一些元数据。这个 JSON format 是很容易编写的。它允许你定义嵌套结构。关于 display:inline-block; line-height:27px; margin:0px 2px; background-color:rgb(249,242,244)">require Key第一件事情(并且往往只需要做这一件事),你需要在 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 文件中指定 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">require key 的值。你只需要简单的告诉 Composer 你的项目需要依赖哪些包。{ "require": { "monolog/monolog": "1.0.*" } } 你可以看到, display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">require 需要一个 包名称 (例如 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">monolog/monolog) 映射到 包版本 (例如 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">1.0.*) 的对象包名称包名稱由供應商名稱和其項目名稱構成。通常容易產生相同的項目名稱,而供應商名稱的存在則很好的解決了命名衝突的問題。它允許兩個不同的人創建同樣名為 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">json 的庫,而之後它們將被命名為 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">igorw/json. margin:0px 2px; background-color:rgb(249,242,244)">seldaek/json。這裡我們需要引入 display:inline-block; line-height:18px; (249,242,244)">monolog/monolog,供應商名稱與項目的名稱相同,對於一個有唯一名稱的項目,我們推薦這麼做。它還允許以後在同一個命名空間中添加更多的相關項目。如果你維護一個庫,這將使你可以很容易的把它分離成更小的部分。 包版本在前面的例子中,我們引入的monolog 版本指定為 display:inline-block; line-height:18px; margin:0px 2px;; line-height:18px; margin:0px 2px;; colorx; 1.0.*。 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">1.0.0、display:inline-block 2px; 。 名稱 實例 描述 確切的版本號碼 display:inline-blockgin-cuplex 49,242,244) ">1.0.2你可以指定包的確切版本。 範圍你可以指定包的確切版本。範圍你可以指定包的確切版本。範圍
    display:inline-block; line-height:18px; margin:inline-block; line-height:18px; margin:inline-block; line-height:18px; margin:inline-block; line-height:18px; ">>=1.0 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">>=1.0,>=1.0,=1.2透過使用比較運算元可以指定有效的版本範圍。 有效的運算子:display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">>、display:in-block 18px; margin:0px 2px; background-color:rgb(249,242,244)">>=
    display:inline-block; line-height:18px; margin:0px 2p">x,2400 、display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">、display:inxline-blockight; margin:0px 2px; background-color:rgb(249,242,244)">!=
    。 
    你可以定義多個範圍,用逗號隔開,這將被視為一個邏輯AND處理。一個管道符號display: inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">|將作為邏輯OR處理。 AND 的優先權高於 OR。 通配符display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">1.0.*你可以使用通配符display:inline -block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">*來指定一種模式。 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">1.0.*與display:inline-block-heighty; 0px 2px; background-color:rgb(249,242,244)">>=1.0,是等價的。 🎜賦值運算子🎜🎜🎜display:inline-block🎜; line-height:18px; margin:0px 2px; background-color:rgb(249,242,249,242,244)~的項目非常有用。display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">~1.2 相當於display:inline-block; 0px 2px; background-color:rgb(249,242,244)">>=1.2,。想要了解更多,請閱讀下一小節。 下一個重要版本(波浪號運算子)display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,2444)~ background-color:rgb(249,242,244)">最好用例子來解釋: display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">~1.2 :相當於; margin:0px 2px; background-color:rgb(249,242,244)">>=1.2,,而 display:inline-block; line-height:18px; margindisplay:inline-block; line-height:18px; margindisplay:inline-block; line-height:18px; margindisplaypx 2px; 249,242,244)">~1.2.3 相當於 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,24">2,244)。如你所看到的這對於遵循 語意化版本號 的專案最有用。 ; background-color:rgb(249,242,244)">~1.2 (允許1.2以上的任何版本,但不包括2.0)。由於理論上直到2.0應該都沒有向後相容性問題,所以效果很好。你也會看到它的另一個用法,使用 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">~ 指定最低版本,但允許指定最低版本,但允許指定最低版本版本號碼的最後一位數字上升。 .1 嚴格地說是早於 display:inline-block; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">2.0-color:rgb(249,242,244)">2.0,但是,根據版本約束條件,但是 例如 display:inline-block

    ; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">~1.2 卻不會安裝這個版本。就像前面所講的這個版本。 inline-block; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">~1.2 只表示 display:inline-block-cight; 0px 2px; background-color:rgb(249,242,244)">.2 部分可以改變,但是 display:inline-block; line-height:19.6875px; margin:0px 2px,colorx0 >1. 部分是固定的。 稳定性

    默认情况下只有稳定的发行版才会被考虑在内。如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用 稳定标志。你可以对所有的包做 最小稳定性 设置,而不是每个依赖逐一设置。安装依赖包获取定义的依赖到你的本地项目,只需要调用 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.phar 运行 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">install 命令。php composer.phar install 接着前面的例子,这将会找到 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">monolog/monolog 的最新版本,并将它下载到 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor 目录。 这是一个惯例把第三方的代码到一个指定的目录 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor。如果是 monolog 将会创建 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor/monolog/monolog 目录。

    小技巧: 如果你正在使用Git来管理你的项目, 你可能要添加 display:inline-block; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">vendor 到你的 display:inline-block; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">.Gitignore 文件中。 你不会希望将所有的代码都添加到你的版本库中。

    另一件事是 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">install 命令将创建一个 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lock 文件到你项目的根目录中。; line-height:33.75px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lockground-color:rgb(249,242,244)">composer.lockground-color:rgb(249,242,244)">composer.lock- 鎖定檔案在安裝依賴後,Composer 將把安裝時確切的版本號碼清單寫入 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,224)"> composer.lock 檔案。 )">composer.lock (包括 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 這是非常重要的,因為 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">installll文件是否會存在,如果會檢查存在,它將下載指定的版本(忽略 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 這意味著,任何人建立專案都將下載與指定版本完全相同的依賴。減輕潛在的錯誤對部署的影響。 如果不存在 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.lock 文件,Composer 將讀取 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 並建立鎖定檔案。这意味着如果你的依赖更新了新的版本,你将不会获得任何更新。此时要更新你的依赖版本请使用 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">update 命令。这将获取最新匹配的版本(根据你的 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 文件)并将新版本更新进锁文件。php composer.phar update 如果只想安装或更新一个依赖,你可以白名单它们:php composer.phar update monolog/monolog [...]

    注意: 对于库,并不一定建议提交锁文件 请参考:库的锁文件.

    Packagistpackagist 是 Composer 的主要资源库。 一个 Composer 的库基本上是一个包的源:记录了可以得到包的地方。Packagist 的目标是成为大家使用库资源的中央存储平台。这意味着你可以 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">require 那里的任何包。当你访问 packagist website (packagist.org),你可以浏览和搜索资源包。任何支持 Composer 的开源项目应该发布自己的包在 packagist 上。虽然并不一定要发布在 packagist 上来使用 Composer,但它使我们的编程生活更加轻松。自动加载对于库的自动加载信息,Composer 生成了一个 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor/autoload.php 文件。你可以简单的引入这个文件,你会得到一个免费的自动加载支持。require'vendor/autoload.php';这使得你可以很容易的使用第三方代码。例如:如果你的项目依赖 monolog,你就可以像这样开始使用这个类库,并且他们将被自动加载。$log=newMonolog\Logger('name');$log->pushHandler(newMonolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));$log->addWarning('Foo');你可以在 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">composer.json 的 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">autoload 字段中增加自己的 autoloader。{ "autoload": { "psr-4": {"Acme\\": "src/"} } } Composer 将注册一个 PSR-4 autoloader 到 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">Acme 命名空间。你可以定义一个从命名空间到目录的映射。此时 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">src 会在你项目的根目录,与 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor 文件夹同级。例如 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">src/Foo.php 文件应该包含 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">Acme\Foo 类。添加 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">autoload 字段后,你应该再次运行 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">install 命令来生成 display:inline-block; line-height:18px; margin:0px 2px; background-color:rgb(249,242,244)">vendor/autoload.php 文件。引用这个文件也将返回 autoloader 的实例,你可以将包含调用的返回值存储在变量中,并添加更多的命名空间。这对于在一个测试套件中自动加载类文件是非常有用的,例如。$loader=require'vendor/autoload.php';$loader->add('Acme\\Test\\',__DIR__);除了 PSR-4 自动加载,classmap 也是支持的。这允许类被自动加载,即使不符合 PSR-0 规范。详细请查看 自动加载-参考。

    注意: Composer 提供了自己的 autoloader。如果你不想使用它,你可以只引入 display:inline-block; line-height:19.6875px; margin:0px 2px; background-color:rgb(249,242,244)">vendor/composer/auload_ ,它傳回一個關聯數組,你可以透過這個關聯數組配置自己的 autoloader。

    以上就介紹了PHP Composer安裝&使用,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

    相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板