昨今の。
昨今のPHPと言えばcomposerです。
いやもう昨今と言うよりかなり古い話になっている気がします。
兎にも角にも
composerは便利だから使おうじゃないかと言うお話。
今回、説明に利用している環境は
phpが導入済みのLinuxです。
まず何者なんでしょうか
omposerは、PHPプログラミング言語向けのソフトウェアおよび必要なライブラリの依存関係を管理する標準形式を提供するアプリケーションレベルのパッケージ管理システムである。 Nils AdermannとJordi Boggianoにより開発され、現在も両氏によってプロジェクトの管理が継続されている。両氏は2011年4月に開発を開始し、2012年3月1日に初めてリリースされた。Node.jsの『npm』およびRubyの『bundler』から強い影響を受けている。
コマンドライン上で動作し、アプリケーションが依存するライブラリなどをインストールする。 また、利用可能なパッケージを含んでいるメインリポジトリ『Packagist』 で利用可能なPHPアプリケーションをインストールすることも可能であるほか、ライブラリ向けにサードパーティーのコードを容易に利用出来るオートロード情報を指定できる機能も提供されている。
また、Laravelを含めた有名なオープンソースのPHPプロジェクトの重要な機能の一部として利用されている。Wikipedia「compiser」の項目より抜粋
便利なライブラリは多いけどそれを集めるなんてめんどくさいよね。
という事で
jsonを書いてコマンドを一発叩けば
あっという間にパッケージがインストールされる!そんな便利なものです。
composerにまとめておけば
あとから自分で利用するのも便利そう。
再利用したいですよね過去の資産。
そこで自分でcomposerをやってみようと言うお話です。
これは自分が忘れてしまうのでメモ的な感じでもあります。
まずはインストールです
php -r "readfile('https://getcomposer.org/installer');" | php
まずはダウンロードです。
そしてダウンロードされたものをPathの通る場所に移動です。
sudo mv composer.phar /usr/bin/composer
さぁ使い始めましょう。
ではつくりましょう。
ディレクトリを切って(今回はcomposer-_testとしました)
そのディレクトリへ「移動 cd」し
composer init
すると色々聞かれます。
Package name (
/ ) [root/composer_test]:
いい感じの名称をつけましょう。
vender部分は会社名なら会社名で
個人ならHNとかでも良いかもしれません。
test/composer_test
とすることにします。
Description []:
よしなな説明を記入しましょう。
今回は「composer test」で。
Author [, n to skip]:
Authorは あってもなくてもです。
設定するなら設定して、スキップしてしまうなら「n」です。
Minimum Stability []:
stableとしておきましょう
Package Type (e.g. library, project, metapackage, composer-plugin) []:
パッケージの種類はなんだろうか?と言うやつです。
今回は、「library」とします。
License []:
ライセンスを決定します。
Apache-2.0
BSD-2-Clause
BSD-3-Clause
BSD-4-Clause
GPL-2.0
GPL-3.0
LGPL-2.1
LGPL-3.0
MIT
などどれかですが、自分しか使わないなどであればここはなにも入力なしで先に進みましょう。
今回は「Apache-2.0」にすることにします。
Would you like to define your dependencies (require) interactively [yes]?
Search for a package:
そのままエンターしましょう。
Would you like to define your dev dependencies (require-dev) interactively [yes]?
Do you confirm generation [yes]?
そのまま(ry
そうしますとディレクトリ内に「composer.json」ができます。
見てみましょう。
{
"name": "test/composer_test",
"description": "composer test",
"type": "library",
"license": "Apache-2.0",
"minimum-stability": "stable",
"require": {}
}
mkdir -p src/composer_test/Exception
mkdir logs
mkdir tests
mkdir docs
mkdir example
mkdir bin
{
"name": "test/composer_test",
"description": "composer test",
"type": "library",
"license": "Apache-2.0",
"minimum-stability": "stable",
"require": {},
"autoload": {
"psr-4": {
"test\\composer_test\\": "src/composer_test/"
}
}
}
追加されたのは赤の部分です。
これを追加したら
以下のコマンドでGOです
composer dump-autoload
これで「vender/」が出来てオートロードが可能になりました。
Gitの除外を設定しておきましょう
パッケージはよしなにGitで管理しましょう。
GCPのGitでもGitHubでも。
vi .gitignore
/vender
まず/venderを除外しておきましょう。
普通にComposerで作られたAutoLoadファイルまでGitに上がっても困りますので。
vi logs/.gitignore
*
!.gitignore
logsのほうも除外しておきましょう。
vi tests/.gitignore
*
!.gitignore
tests/も除外してもいいかもしれません。
もしも、testsに有用なテストプログラムを多く作って共有したりするならば
ここは除外なしで。
私は書いては捨てるテストばっかりなので・・・
実際は、tests/はgitに入れておいたほうが無難です。
作ったパッケージを使ってみる
作ったパッケージは以下の設定で。
{
"repositories": [
{
"type" : "vcs",
"url" : "https://github.com/XXXX/XXX"
}
],
"require" : {
"test/composer_test" : "^0.0.1"
}
}
Writer:ゆたさん@開発者。
HomePagehome Twitter Facebook