關於PHP管理依賴工具 Composer 安裝與使用

來源:互聯網
上載者:User
Composer 是PHP中用來管理依賴(dependency)關係的工具。你可以在自己的項目中聲明所依賴的外部工具庫(libraries),Composer會幫你安裝這些依賴的庫檔案。

PHP Composer 安裝

系統需求:

Composer 需要PHP5.3.2+ 以上的環境來運行。有幾個敏感的PHP設定和編譯標誌也是必需的,但安裝程式會發出警告當存在任何不相容的情況。

比如PHP的擴充的要求是,安裝或重新編譯php without –disable-phar

為了從源地址安裝軟體包,而不是簡單的壓縮檔包,您將需要安裝軟體包的版本控制工具,比如git、svn或hg等。

Composer 是相容多平台的,其運行適用於Windows,Linux和OSX。

安裝失敗的錯誤訊息:

curl -sS https://getcomposer.org/installer | PHP #!/usr/bin/env php some settings on your machine make Composer unable to work properly. Make sure that you fix the issues listed below and run this script again:The phar extension is missing. Install it or recompile php without –disable-pharYour PHP (5.2.9) is too old, you must upgrade to PHP 5.3.2 or higher.

我的本地預設開發環境是PHP 5.2.9,當我嘗試在PHP 5.2.9上安裝時,提示版本過低,需要升級到PHP 5.3.2 或者更高的版本。

於是我下載XAMPP 1.7.7 usb lite 版本。

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_177\php\php.exe -v PHP 5.3.8 (cli) (built: Aug 23 2011 11:50:20) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

XAMPP 1.7.7 下的PHP環境是5.3.8。確認我的PHP環境大於等於PHP5.3.2後。

PHP 5.3 安裝 Composer

E:\USB\Dropbox\phpstorm\php53>curl -sS https://getcomposer.org/installer | E:\USB\xampp_177\php\php.exe #!/usr/bin/env php Some settings on your machine may cause stability issues with Composer. If you encounter issues, try to change the following:The openssl extension is missing, which will reduce the security and stability o f Composer. If possible you should enable it or recompile php with –with-opensslDownloading…Composer successfully installed to: E:\USB\Dropbox\phpstorm\php53\composer.phar Use it: php composer.phar

注意:

我關閉了XAMPP 1.7.7 Apache的SSL模組,所以Composer提示我警告,為了安全因素建議我開啟SSL模組。不開啟也不影響使用。
安裝時的參數 | PHP,一定要更改為真實的PHP環境路徑,比如 | E:\USB\xampp_177\php\php.exe
使用Composer為PHP路徑 + 命令,在我們安裝的環境中,使用方法為:E:\USB\xampp_177\php/php.exe composer.phar 命令。
我安裝的環境是在Windows下,如果在Linux下,而PHP 5.3 環境也不在預設PHP命令下時,應該採用 | /usr/php/53/usr/bin/php,例如:

curl -sS https://getcomposer.org/installer | /usr/php/53/usr/bin/php

安裝完成後,檢查安裝版本。

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_177\php/php.exe composer.phar -V Composer version 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33

檢查PHP Composer命令:

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_177\php/php.exe composer.phar   ______  / ____/___ ____ ___ ____ ____ ________ _____ / /  / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/           /_/ Composer version 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33Usage:  [options] command [arguments]Options:  –help      -h Display this help message.  –quiet     -q Do not output any message.  –verbose    -v Increase verbosity of messages.  –version    -V Display this application version.  –ansi       Force ANSI output.  –no-ansi      Disable ANSI output.  –no-interaction -n Do not ask any interactive question.  –profile      Display timing and memory usage information  –working-dir  -d If specified, use the given directory as working directory .Available commands:  about      Short information about Composer  archive     Create an archive of this composer package  config      Set config options  create-project  Create new project from a package into given directory.  depends     Shows which packages depend on the given package  diagnose     Diagnoses the system to identify common errors.  dump-autoload  Dumps the autoloader  dumpautoload   Dumps the autoloader  help       Displays help for a command  init       Creates a basic composer.json file in current directory.  install     Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.  list       Lists commands  require     Adds required packages to your composer.json and installs the m  run-script    Run the scripts defined in composer.json.  search      Search for packages  self-update   Updates composer.phar to the latest version.  selfupdate    Updates composer.phar to the latest version.  show       Show information about packages  status      Show a list of locally modified packages  update      Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.  validate     Validates a composer.json

這樣我們在PHP5.3環境下的Composer已經安裝完成。

類似的方法我們也可以安裝PHP 5.4的環境上。

PHP 5.4 安裝 Composer

下載XAMPP 1.8.1 usb lite 版本,將得到PHP5.4.7環境。

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_181\php\php.exe -v PHP 5.4.7 (cli) (built: Sep 12 2012 23:48:31) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

確定版本高於PHP 5.3.2 後,開始安裝:

E:\USB\Dropbox\phpstorm\php54>curl -sS https://getcomposer.org/installer | E:\USB\xampp_181\php\php.exe #!/usr/bin/env php Some settings on your machine may cause stability issues with Composer. If you encounter issues, try to change the following:The openssl extension is missing, which will reduce the security and stability o f Composer. If possible you should enable it or recompile php with –with-opensslDownloading…Composer successfully installed to: E:\USB\Dropbox\phpstorm\php54\composer.phar Use it: php composer.phar

安裝完成後,檢查安裝版本。

E:\USB\Dropbox\phpstorm\php54>E:\USB\xampp_181\php/php.exe composer.phar -V Composer version 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33

這樣,PHP 5.4 環境下的Composer也安裝成功了。

PHP Composer 使用

這裡我只簡單示範使用PHP Composer安裝Symfony架構。

首先大概講解一下命令的標準格式:

php composer.phar create-project symfony/framework-standard-edition path/ 2.2.1

第一個參數PHP為本地PHP開發環境,指向PHP運行命令。
第二個參數,為composer.phar方式下載。
第三個參數,為動作命令,例如create-project,目的是為了建立一個新的項目從一個軟體包到指定目錄。
第四個參數,為本地安裝的目錄。
第五個參數,為安裝軟體包的版本。

根據上述我們在PHP5.4環境下安裝的Composer,我們的安裝命令為:

E:\USB\Dropbox\phpstorm\php54>E:\USB\xampp_181\php/php.exe composer.phar create-project symfony/framework-standard-edition E:\USB\xampp_181\htdocs\Symfony 2.2.1

安裝結果:

Installing symfony/framework-standard-edition (v2.2.1)  – Installing symfony/framework-standard-edition (v2.2.1)   Downloading: 100%Created project in E:\USB\xampp_181\htdocs\Symfony Loading composer repositories with package information Installing dependencies from lock file  – Installing doctrine/lexer (v1.0)   Downloading: 100% – Installing doctrine/annotations (v1.1)   Downloading: 100% – Installing doctrine/cache (v1.0)   Downloading: 100% – Installing doctrine/collections (v1.1)   Downloading: 100% – Installing twig/twig (v1.12.2)   Downloading: 100% – Installing psr/log (1.0.0)   Downloading: 100% – Installing doctrine/inflector (v1.0)   Downloading: 100% – Installing doctrine/common (2.4.0-RC1)   Downloading: 100% – Installing symfony/symfony (v2.2.1)   Downloading: 100% – Installing jdorn/sql-formatter (v1.2.0)   Downloading: 100% – Installing doctrine/dbal (2.3.3)   Downloading: 100% – Installing doctrine/doctrine-bundle (v1.2.0-beta1)   Downloading: 100% – Installing doctrine/orm (2.3.3)   Downloading: 100% – Installing jms/cg (1.0.0)   Downloading: 100% – Installing phpoption/phpoption (1.2.0)   Downloading: 100% – Installing jms/parser-lib (1.0.0)   Downloading: 100% – Installing jms/metadata (1.3.0)   Downloading: 100% – Installing jms/aop-bundle (1.0.0)   Downloading: 100% – Installing jms/di-extra-bundle (1.3.0)   Downloading: 100% – Installing jms/security-extra-bundle (1.4.0)   Downloading: 100% – Installing sensio/distribution-bundle (v2.2.1)   Downloading: 100% – Installing sensio/framework-extra-bundle (v2.2.1)   Downloading: 100% – Installing sensio/generator-bundle (v2.2.1)   Downloading: 100% – Installing kriswallsmith/assetic (v1.1.0-alpha4)   Downloading: 100% – Installing symfony/assetic-bundle (v2.1.2)   Downloading: 100% – Installing monolog/monolog (1.4.1)   Downloading: 100% – Installing symfony/monolog-bundle (v2.2.0)   Downloading: 100% – Installing swiftmailer/swiftmailer (v4.3.0)   Downloading: 100% – Installing symfony/swiftmailer-bundle (v2.2.0)   Downloading: 100% – Installing twig/extensions (v1.0.0)   Downloading: 100%kriswallsmith/assetic suggests installing leafo/lessphp (Assetic provides the integration with the lessphp LESS compiler) kriswallsmith/assetic suggests installing leafo/scssphp (Assetic provides the integration with the scssphp SCSS compiler) kriswallsmith/assetic suggests installing leafo/scssphp-compass (Assetic provides the integration with the SCSS compass plugin) kriswallsmith/assetic suggests installing ptachoire/cssembed (Assetic provides the integration with phpcssembed to embed data uris) monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server) monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required)) monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server) monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages to a GrayLog2 server) monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server) Generating autoload files Clearing the cache for the dev environment with debug true Installing assets using the hard copy option Installing assets for Symfony\Bundle\FrameworkBundle into web/bundles/framework Installing assets for Acme\DemoBundle into web/bundles/acmedemo Installing assets for Sensio\Bundle\DistributionBundle into web/bundles/sensiodistribution

從命令列結果,我們看到了整個Symfony架構的安裝過程與結果。

PHP Composer 定義依賴關係

Composer在使用時會自動尋找composer.json這個檔案。 composer.json將用來定義整個項目的依賴包。例如:

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

依賴包簡單的說明,我們的項目需要一些從1.2開始的任何版本的monolog/monolog包。

Composer是PHP中的一個依賴關係管理工具。通過Composer我們可以在發布軟體時節省大量的檔案數目和控制依賴包的版本。

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.