PHP管理依存関係ツールComposerのインストールと使用

11961 ワード

PHP Componentインストール
システム要件:
ComposerはPHP 5を必要とする.3.2+以上の環境で動作します.いくつかの敏感なPHP設定とコンパイルフラグも必要ですが、インストーラは互換性がない場合に警告します.
例えばPHPの拡張の要件は、php without、Cdisable-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 �Cdisable-phar

Your 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環境がPHP 5以上であることを確認する.3.2以降.
PHP 5.3 Componentのインストール

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 �Cwith-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モジュールを開くことを提案します.開かなくても使用に影響しません.インストール時のパラメータ|PHPは、必ず本物のPHP環境パスに変更してください.例えば|E:USBxampp_177\php\php.Exceでは、PHPパス+コマンドとしてComposerを使用しています.インストール環境では、E:USBxampp_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 Componentコマンドを確認するには:

E:\USB\Dropbox\phpstorm\php53>E:\USB\xampp_177\php/php.exe composer.phar 
  ______ 
 / ____/___ ____ ___ ____ ____ ________ _____ 
/ /  / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ 
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / 
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ 
          /_/ 
Composer version 0209bd31a0ac3aeb2a68fc81e2d03c71072bef33

Usage: 
 [options] command [arguments]

Options: 
 �Chelp      -h Display this help message. 
 �Cquiet     -q Do not output any message. 
 �Cverbose    -v Increase verbosity of messages. 
 �Cversion    -V Display this application version. 
 �Cansi       Force ANSI output. 
 �Cno-ansi      Disable ANSI output. 
 �Cno-interaction -n Do not ask any interactive question. 
 �Cprofile      Display timing and memory usage information 
 �Cworking-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


これでPHP 5にいます.3環境でのComponenterのインストールが完了しました.
同様の方法でPHP 5.4の環境にインストールすることもできます.
PHP 5.4 Componentの取り付け
XAMPP 1.8をダウンロードします.1 usb liteバージョン、PHP 5が得られます.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 �Cwith-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環境でのComponentのインストールも成功した.
PHP Component使用
ここではPHP Componentを使用してSymfonyフレームワークをインストールする方法を簡単に説明します.
まず、コマンドの標準フォーマットについて説明します.

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


最初のパラメータPHPは、ローカルPHP開発環境であり、PHPに対してコマンドを実行します.2番目のパラメータはcomposerです.phar方式でダウンロードします.3番目のパラメータは、create-projectなどのアクションコマンドで、ソフトウェアパッケージから指定されたディレクトリまで新しいプロジェクトを作成することを目的としています.4番目のパラメータは、ローカルにインストールされているディレクトリです.5番目のパラメータは、パッケージのバージョンをインストールします.
上記によりPHP 5.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) 
 �C 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 
 �C Installing doctrine/lexer (v1.0) 
  Downloading: 100%
 �C Installing doctrine/annotations (v1.1) 
  Downloading: 100%
 �C Installing doctrine/cache (v1.0) 
  Downloading: 100%
 �C Installing doctrine/collections (v1.1) 
  Downloading: 100%
 �C Installing twig/twig (v1.12.2) 
  Downloading: 100%
 �C Installing psr/log (1.0.0) 
  Downloading: 100%
 �C Installing doctrine/inflector (v1.0) 
  Downloading: 100%
 �C Installing doctrine/common (2.4.0-RC1) 
  Downloading: 100%
 �C Installing symfony/symfony (v2.2.1) 
  Downloading: 100%
 �C Installing jdorn/sql-formatter (v1.2.0) 
  Downloading: 100%
 �C Installing doctrine/dbal (2.3.3) 
  Downloading: 100%
 �C Installing doctrine/doctrine-bundle (v1.2.0-beta1) 
  Downloading: 100%
 �C Installing doctrine/orm (2.3.3) 
  Downloading: 100%
 �C Installing jms/cg (1.0.0) 
  Downloading: 100%
 �C Installing phpoption/phpoption (1.2.0) 
  Downloading: 100%
 �C Installing jms/parser-lib (1.0.0) 
  Downloading: 100%
 �C Installing jms/metadata (1.3.0) 
  Downloading: 100%
 �C Installing jms/aop-bundle (1.0.0) 
  Downloading: 100%
 �C Installing jms/di-extra-bundle (1.3.0) 
  Downloading: 100%
 �C Installing jms/security-extra-bundle (1.4.0) 
  Downloading: 100%
 �C Installing sensio/distribution-bundle (v2.2.1) 
  Downloading: 100%
 �C Installing sensio/framework-extra-bundle (v2.2.1) 
  Downloading: 100%
 �C Installing sensio/generator-bundle (v2.2.1) 
  Downloading: 100%
 �C Installing kriswallsmith/assetic (v1.1.0-alpha4) 
  Downloading: 100%
 �C Installing symfony/assetic-bundle (v2.1.2) 
  Downloading: 100%
 �C Installing monolog/monolog (1.4.1) 
  Downloading: 100%
 �C Installing symfony/monolog-bundle (v2.2.0) 
  Downloading: 100%
 �C Installing swiftmailer/swiftmailer (v4.3.0) 
  Downloading: 100%
 �C Installing symfony/swiftmailer-bundle (v2.2.0) 
  Downloading: 100%
 �C 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 Componenter定義依存関係
Composerは使用時に自動的にcomposerを探します.jsonという書類.composer.jsonは、プロジェクト全体の依存パッケージを定義するために使用されます.例:

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


依存パッケージの簡単な説明では、1.2から始まるmonolog/monologパッケージが必要です.
ComposerはPHPの依存関係管理ツールです.Composerでは、ソフトウェアのリリース時にファイルの数を大幅に節約し、依存パッケージのバージョンを制御できます.
PHP Componentプロジェクト
Composerプロジェクトの公式:http://getcomposer.org
Composer Githubプロジェクト:https://github.com/composer/composer
PHP Componentパッケージリスト:https://packagist.org/