JavaScriptを有効にしてください

composer の package を自作してみる

 ·  ☕ 2 分で読めます

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

作成したファイル群を GitHubpush してください。
この時、README.md などパッケージに不要なファイルは削除しましょう。

Packagist に登録

  1. Packagist にアクセス。
  2. ユーザ登録をしてください。
  3. 上部のナビゲーションの Submit を選択。
  4. 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 が表示されたら成功になります。

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer