・パッケージ作成
・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();
なるほど、テストしてみないとわからんな。