hytmng / php-scaffolding
PHPで実装したスカフォールディングツール
1.1.0
2025-12-25 13:16 UTC
Requires
- php: >=8.3
- symfony/console: ^7.2
- symfony/dependency-injection: ^7.2
- symfony/filesystem: ^7.2
- symfony/process: ^7.2
- twig/twig: ^3.21
Requires (Dev)
- mikey179/vfsstream: ^1.6
- php-coveralls/php-coveralls: ^2.7
- phpunit/phpunit: ^12.0
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 を参照