PHP管理依賴(dependency)關系工具 Composer 安裝與使用
PHP Composer 安裝
系統(tǒng)需求:
Composer 需要PHP5.3.2+ 以上的環(huán)境來運行。有幾個敏感的PHP設置和編譯標志也是必需的,但安裝程序會發(fā)出警告當存在任何不兼容的情況。
比如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-phar Your PHP (5.2.9) is too old, you must upgrade to PHP 5.3.2 or higher.
我的本地默認開發(fā)環(huán)境是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環(huán)境是5.3.8。確認我的PHP環(huán)境大于等于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-openssl Downloading… Composer successfully installed to: E:\USB\Dropbox\phpstorm\php53\composer.phar Use it: php composer.phar
注意:
我關閉了XAMPP 1.7.7 Apache的SSL模塊,所以Composer提示我警告,為了安全因素建議我開啟SSL模塊。不開啟也不影響使用。
安裝時的參數(shù) | PHP,一定要更改為真實的PHP環(huán)境路徑,比如 | E:\USB\xampp_177\php\php.exe
使用Composer為PHP路徑 + 命令,在我們安裝的環(huán)境中,使用方法為:E:\USB\xampp_177\php/php.exe composer.phar 命令。
我安裝的環(huán)境是在Windows下,如果在Linux下,而PHP 5.3 環(huán)境也不在默認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 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33 Usage: [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環(huán)境下的Composer已經(jīng)安裝完成。
類似的方法我們也可以安裝PHP 5.4的環(huán)境上。
PHP 5.4 安裝 Composer
下載XAMPP 1.8.1 usb lite 版本,將得到PHP5.4.7環(huán)境。
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-openssl Downloading… 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 環(huán)境下的Composer也安裝成功了。
PHP Composer 使用
這里我只簡單演示使用PHP Composer安裝Symfony框架。
首先大概講解一下命令的標準格式:
php composer.phar create-project symfony/framework-standard-edition path/ 2.2.1
第一個參數(shù)PHP為本地PHP開發(fā)環(huán)境,指向PHP運行命令。
第二個參數(shù),為composer.phar方式下載。
第三個參數(shù),為動作命令,例如create-project,目的是為了創(chuàng)建一個新的項目從一個軟件包到指定目錄。
第四個參數(shù),為本地安裝的目錄。
第五個參數(shù),為安裝軟件包的版本。
根據(jù)上述我們在PHP5.4環(huán)境下安裝的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我們可以在發(fā)布軟件時節(jié)省大量的文件數(shù)目和控制依賴包的版本。
PHP Composer 項目
Composer 項目官方:http://getcomposer.org
Composer Github項目:https://github.com/composer/composer
PHP Composer軟件包列表:https://packagist.org/
相關文章
php中的注釋、變量、數(shù)組、常量、函數(shù)應用介紹
本文將詳細介紹php中的注釋、變量、數(shù)組、常量、函數(shù)應用,需要的朋友可以參考下2012-11-11解決php-fpm.service not found問題的辦法
這篇文章主要給大家介紹了解決php-fpm.service not found問題的辦法,文中詳細介紹的解決這個問題的思路與過程,分享出來給大家,如果有同樣問題的朋友就不用到處找解決辦法了,下面來一起看看吧。2017-06-06php 智能404跳轉代碼,適合換域名沒改變目錄的網(wǎng)站
適合于換域名,但是目錄沒有改變的網(wǎng)站.也可以用做301定向.轉自于落伍,收集過來.怕以后需要.需要的兄弟直接copy過去即可.2010-06-06