composer の package を自作してみる
composer の package を自作してみました。
package を作りのテンプレートに以下のようなものがありますが、今回は最小構成で簡単に作ってみました。
php-pds/skeleton: Standard PHP package skeleton.
composer.json作成
composer init
を実行して質問に答えていくだけ。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| composer init
Welcome to the Composer config generator
This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>) [root/app]: c-a-p-engineer/hello-world-composer
Description []: Hello,World
Author [, n to skip]: n
Minimum Stability []: dev
Package Type (e.g. library, project, metapackage, composer-plugin) []: library
License []: MIT
Define your dependencies.
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]?
Search for a package:
Add PSR-4 autoload mapping? Maps namespace "CAPEngineer\HelloWorldComposer" to the entered relative path. [src/, n to skip]:
{
"name": "c-a-p-engineer/hello-world-composer",
"description": "Hello,World",
"type": "library",
"license": "MIT",
"autoload": {
"psr-4": {
"CAPEngineer\\HelloWorldComposer\\": "src/"
}
},
"minimum-stability": "dev",
"require": {}
}
Do you confirm generation [yes]?
Generating autoload files
Generated autoload files
Would you like the vendor directory added to your .gitignore [yes]? yes
PSR-4 autoloading configured. Use "namespace CAPEngineer\HelloWorldComposer;" in src/
Include the Composer autoloader with: require 'vendor/autoload.php';
|
PHPファイルを作成
PHPファイルを作成します。
1
2
3
4
5
6
7
8
9
10
| <?php
namespace CAPEngineer\HelloWorldComposer\HelloWorld;
class HelloWorld
{
public function say()
{
return 'Hello, World';
}
}
|
GitHub に push
作成したファイル群を GitHub に push
してください。
この時、README.md
などパッケージに不要なファイルは削除しましょう。
Packagist に登録
- Packagist にアクセス。
- ユーザ登録をしてください。
- 上部のナビゲーションの Submit を選択。
- Gitub の
Repository URL
を登録。
※同一名称が多いと注意が出てきますが気にせず進めます。
実際に作った composer は こちらになります。
c-a-p-engineer/hello-world-composer: Hello,World in Composer
実際に使ってみる
まずは composer からインストール。
composer require c-a-p-engineer/hello-world-composer
1
2
3
4
5
6
7
8
| <?php
use CAPEngineer\HelloWorldComposer\HelloWorld\HelloWorld;
require __DIR__.'/../vendor/autoload.php';
$helloWorld = new HelloWorld();
echo $helloWorld->say();
|
これで Hello,World
が表示されたら成功になります。
参考