composer管理の考え方

・パッケージ作成
・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();

なるほど、テストしてみないとわからんな。