hytmng/php-scaffolding

PHPで実装したスカフォールディングツール

Maintainers

Package info

github.com/tominaga-h/php-scaffolding

Type:project

pkg:composer/hytmng/php-scaffolding

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.0 2025-12-25 13:16 UTC

This package is auto-updated.

Last update: 2026-03-25 13:50:07 UTC


README

PHP で実装したスカフォールディングツール

インストール

Composer でグローバルインストール

composer global require hytmng/php-scaffolding

~/.composer/vendor/bin に PATH を通してください:

# ~/.zshrc または ~/.bashrc に追加
export PATH="$HOME/.composer/vendor/bin:$PATH"

使用方法

phspcff new my-project

機能

  • template:add - ファイルをテンプレートとして登録(-g オプションでグループ名を設定可能)
  • template:edit - 指定したテンプレートを開き、雛形作成時にパラメータ化したいところを編集
  • group:list - 全グループをリスト表示(-f オプションでグループ内のテンプレートも表示)
  • group:config - フォルダ構造や使うファイルを設定する meta.yaml ファイルを編集
  • group:rename - グループ名をリネーム
  • group:tree - meta.yaml で設定したフォルダ構造をtree形式で表示
  • new - 指定したグループのフォルダ構造をもとに、グループ内のテンプレートを対象ディレクトリに構築

グループとテンプレート

グループとテンプレートは、本ツールのコアとなる概念です。

グループ

「グループ」はプロジェクトの雛形(フォルダ/ファイル構造、テンプレートの集合)をまとめて管理する単位です。たとえば、「laravel-project」「web-service」「library」など、プロジェクトの種類ごとにグループを作成できます。

  • グループごとに meta.yaml ファイルで、構築するディレクトリや必要なファイル構造をツリー形式で記述します。
  • テンプレートをグループごとに紐付けることができ、テンプレートもグループごとに管理されます。

テンプレート

「テンプレート」は、よく使うファイルの雛形です。コントローラ、モデル、設定ファイルなど、よく使うファイルをテンプレートとして登録できます。

  • テンプレートは、通常のテキストファイルですが、Twig記法で変数を埋め込むことができます。
  • テンプレートはコマンドで追加・編集でき、グループ内に紐づけて管理します。

注意

バージョン1.0.0現在では、グループ名{{ group }})と ディレクトリ名{{ directory }})しか変数を利用できません。 今後のアップデートで使える変数を増やしていきます。

具体例

たとえば「webapp」グループに、以下のようなフォルダ構成やテンプレートファイルを記述しておくと、phscff new webapp-sampleコマンドでその構造が自動生成されます。

meta.yaml の一例

structure:
  src:
    Controller:
      - HomeController.php
    Model:
      - User.php
  config:
    - app.php
  public:
    - index.php

使い分け

  • グループ … フォルダ・ファイルの構成を定義したまとまり
  • テンプレート … 各種ファイルの雛形。動的にコンテンツを生成可能

これにより、さまざまなプロジェクトの型を簡単に再現・使い回せます。

設定フォルダ

このツールは $HOME/.phpscff に設定フォルダを作成します。登録したテンプレート、グループ設定を保存します。

  • .phpscff/templates テンプレート保存場所
  • .phpscff/groups グループ設定 yaml 保存場所

CHANGELOG

CHANGELOG.md を参照