Composerを導入してバージョンの依存関係を管理

Composerを導入してバージョンの依存関係を管理

概要

PHP の Composer は Ruby on Rails でいう Gem のようなもののようで、

複数のライブラリを使用しているものをインストールしようとした時、バージョンの互換性がなかったりして、相性の悪いバージョンの組み合わせがあり、インストール出来ない事がありました。これを解消出来るように依存関係を管理してくれるものでした。

Composerインストール

$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading 1.0.0...

Composer successfully installed to: /home/user_name/composer.phar
Use it: php composer.phar

もしくは

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

Composer グローバル設定

これをやっておけば各ディレクトリで使用出来ます。

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

Composer確認

$ composer
 ______
 / ____/___ ____ ___ ____ ____ ________ _____
 / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
 /_/
Composer version 1.0.0 2016-04-05 13:27:25

Usage:
 command [options] [arguments]

Options:
 -h, --help Display this help message
 -q, --quiet Do not output any message
 -V, --version Display this application version
 --ansi Force ANSI output
 --no-ansi Disable ANSI output
 -n, --no-interaction Do not ask any interactive question
 --profile Display timing and memory usage information
 -d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.

 -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
 about Short information about Composer
 archive Create an archive of this composer package
 browse Opens the package's repository URL or homepage in your browser.
 clear-cache Clears composer's internal package cache.
 clearcache Clears composer's internal package cache.
 config Set config options
 create-project Create new project from a package into given directory.
 depends Shows which packages cause the given package to be installed
 diagnose Diagnoses the system to identify common errors.
 dump-autoload Dumps the autoloader
 dumpautoload Dumps the autoloader
 exec Execute a vendored binary/script
 global Allows running commands in the global composer dir ($COMPOSER_HOME).
 help Displays help for a command
 home Opens the package's repository URL or homepage in your browser.
 info Show information about packages
 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.
 licenses Show information about licenses of dependencies
 list Lists commands
 prohibits Shows which packages prevent the given package from being installed
 remove Removes a package from the require or require-dev
 require Adds required packages to your composer.json and installs them
 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
 suggests Show package suggestions
 update Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.
 validate Validates a composer.json and composer.lock
 why Shows which packages cause the given package to be installed
 why-not Shows which packages prevent the given package from being installed

 

これでComposerは導入出来ました。

使用方法はcomposer.jsonを作成したら、参考サイト様を参考に中にこれからインストールしようとするものの依存関係を書き、以下を実行するだけです。

$ composer install

 

Composerを使用してのCakePHPの設定は以下の記事で記録していきます。

https://normalblog.net/system/cakephp/cakephp_vagrant_install/

 

参考サイト様

https://kohkimakimoto.github.io/getcomposer.org_doc_jp/doc/00-intro.htmll

http://qiita.com/notona/items/c5a087d8dd446d315e6e

Comments

No comments yet. Why don’t you start the discussion?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です