・パッケージ作成
・composerで管理
・別プロジェクトで使用
・gitのプライベートリポジトリでパッケージは管理
パッケージのディレクトリがプロジェクト
基本的にはPackagist(https://packagist.org/)で管理されている
公開したくないパッケージはprivate リポジトリからの読み取りも可能
タグでバージョン管理ができる
### パッケージのディレクトリ構成
<package>/
.git/
.gitignore
composer.json
src/
<namspace>/
<class>.php
tests/
<namspace>/
<class>Test.php
### パッケージを使う側のプロジェクト
<root>/
composer.json
composer.lock
<vendor>/
autoload.php
<composer>/
<any packages>/
...
### composer.jsonの書式
読み込む側のcomposer.json
{
"name": "<vendor>/<project_name>",
"description": "Composer sample project",
"authors": [
{
"name": "<author>",
"email": "<mail@gmail.com>"
}
],
"require": {
"nuuu/muuu": "^1.0"
},
"autoload": {
"psr-4": {"<NamespacePrefix>\\": "src/"}
},
"repositories": [
{
"type": "vcs",
"url": "ssh://user@loacalhost/var/git/repos/nuu_muu.git"
}
]
}
呼び出し
<?php require_once "./vendor/autoload.php"; use Nuuu\Muuu\Uuuu; Uuuu::sayHello();
なるほど、テストしてみないとわからんな。