cd git git@github.com:amaraimusi/CrudBase.git
cd CrudBase mkdir src mkdir testsプロジェクトのディレクトリ内にsrcディレクトリとtestsディレクトリを作成する。
composer.json
{ "name" : "amaraimusi/crudbase", "description" : "CRUD support library", "keywords" : [ "CRUD", "web service", "管理画面" ], "type" : "library", "license" : "MIT", "homepage" : "https://amaraimusi.sakura.ne.jp/CrudBase", "authors" : [{ "name" : "amaraimusi", "email" : "amaraimusi@gmail.com", "homepage" : "https://amaraimusi.sakura.ne.jp/", "role" : "Developer" } ], "minimum-stability" : "dev", "require-dev" : { "phpunit/phpunit" : "^9.0" }, "autoload" : { "psr-4" : { "CrudBase\\" : "src/crudbase/" } } }
compser.jsonの解説
"name" : "amaraimusi/crudbase" | "name" : "Githubでのあなたのユーザー名/新しく作成するパッケージ名(すべて小文字にすること。大文字禁止になっている)" |
"description" : "CRUD support library", | "description" : "パッケージの説明文(任意)", |
"keywords" : [ | 検索用のキーワード。他の開発者がパッケージを検索する手がかりに。省略可能。 |
"type" : "library" | パッケージのタイプ。library、metapackage、composer-installerの3種類があるが、通常はlibraryに設定しておけばよい。 |
"license" : "MIT" | ライセンスの種類を記述。フリーライセンスにするならMITとする。 |
"homepage" : "https://amaraimusi.sakura.ne.jp/CrudBase", | 当パッケージの解説、デモ、サンプルなどを記述したサイトへのURLを指定すると良い。省略可能。 |
"authors" : [{ "name" : "amaraimusi", "email" : "amaraimusi@gmail.com", "homepage" : "https://amaraimusi.sakura.ne.jp/", "role" : "Developer" |
開発者の情報を記述する。 |
"minimum-stability" : "dev", | 開発版なら「dev」をセット、安定版なら「stable」をセットする。 |
"require-dev" : { "phpunit/phpunit" : "^9.0" }, |
開発版である場合のみ依存するパッケージを記述する。 |
"autoload" : { "psr-4" : { "CrudBase\\" : "src/crudbase/" } } |
「"CrudBase\\" : "src/crudbase/"」の部分は重要。 名前空間とパスの紐づけを行っている。 名前空間はクラスファイルに記述する「namespace」のこと。「namespace CrudBase;」などと記述する。 この辺りはハマりやすいのでスペルミスがないよう慎重に。 |
composer update
composer dump-autoload
<?php
namespace CrudBase;
class Neko{
public function bark($name){
return $name . 'はニャーンと吠えた';
}
}
git add -a git commit m="任意のコメント" git push
登録したパッケージの使い方
他のライブラリと使い方と基本的に同じなので詳細は割愛。一応、記述例は下記の通り。composer.json
{ "require-dev" : { "amaraimusi/crudbase" : "dev-master" }, "autoload" : { "psr-4" : { "App\\" : "src/" } } }
index.php
<?php
$autoloader =require_once '../vendor/autoload.php';
require_once 'Animal.php';
$animal = new Animal();
$animal->test();
Animal.php
<?php
use CrudBase¥Neko;
class Animal{
public function test(){
echo 'アメリカザリガニ<br>';
$neko = new Neko();
echo $neko->bark('黒い猫');
}
}
登録したパッケージの使い方2
既存のcomposer.jsonに自作パッケージを追加する場合は以下のコマンドを実行する。composer require amaraimusi/crudbase dev-mastercomposer.jsonに「maraimusi/crudbase」の記述が追加されているのが確認できる。
composer update amaraimusi/crudbase
php composer.phar update amaraimusi/crudbase