はじめに
みなさん,こんにちは。
ご覧いただきありがとうございます。
突然ですが,皆さんは設計をする際にどのようなツールを使っていますか?
私は主にMarkdownやExcelを使っています。
Markdownはシンプルで書きやすいく,Gitで管理はできますが,設計をするには少し不便です。
Excelは使い慣れているので設計で必要な表をまとめたテンプレートを作成しており,設計はしやすいです。ただ,Gitで管理するのは難しいです。
そこでLaravelで動く設計支援ライブラリを作ってみました。
設計支援ライブラリの目標
普段の開発はLaravelを用いているため,設計支援ライブラリもLaravelで動くものが良いと考えました。
1つのリポジトリでオールインワンを目指した形です。
開発において,開発工数を抑えるため,バックエンドはすべてLaravelに頼る形で,フロントエンドはVite+React.js(TS)を用いています。
また,設計支援ライブラリの構成は普段私が使っているExcelをパッケージに落とし込む形です。
設計支援ライブラリの構成
設計支援ライブラリは以下の機能を含んでいます。
- プロジェクトの管理:プロジェクトごとに設計ができます。
- テーブル関連:テーブルの設計(カラム名や型等)ができます。
- 機能関連:機能の一覧を作成できます。
- 画面関連:画面の一覧を作成できます。
- 例外関連:例外の一覧を作成できます。
- フォーム関連:フォームの設計(項目名やフォーム種類等)ができます。
設計支援ライブラリの使い方
インストール
設計支援ライブラリを導入したいLaravelプロジェクトは作成されていることを前提とします。
以下のコマンドでインストールできます。
composer require ikepu-tp/laravel-designer-helper --dev
設定
以下のコマンドで設定ファイルを作成してください。
php artisan vendor:publish --tag=DesignerHelper-config
設定項目
設定項目キー | デフォルト値 | 説明 |
---|---|---|
connection |
mysql |
データベースの接続名を指定します。ここで指定できる値はdatabase.connections で設定されている値です。 |
middleware |
\ikepu_tp\DesignerHelper\app\Http\Middleware\DesignerMiddleware::class |
設計支援ライブラリのミドルウェアを指定します。 デフォルトのミドルウェアは開発orテスト環境のみ利用できるようになっています。 |
api_middleware |
api |
設計支援ライブラリのAPIのミドルウェアを指定します。 |
web_middleware |
web ,auth:web
|
設計支援ライブラリのAPIのミドルウェアを指定します。 |
マイグレーション
以下のコマンドでマイグレーションを実行してください。
php artisan migrate
マイグレーション実行前にconfig/designer-helper.php
のconnection
を設定してください。
これで使える状態になっています!
プロジェクト管理機能があるため,設計用のリポジトリを作成し,全てのプロジェクトの設計を管理することもできます。
今後の開発計画
以下の機能の追加を考えています。
- エクスポート・インポート機能:現在のライブラリはデータベースのデータ共有が必要ですが,エクスポート・インポート機能を追加することで,データベースのデータ共有が不要になります。JSON形式でファイルを作成し,Git管理ができるようにすることを考えています。
- コマンド実行機能:現在のライブラリは設計までですが,設計内容をもとに
artisan
コマンドを実行できるようにしたいと考えております。これが実現すれば例えば必要なモデルやマイグレーションファイルは簡単に作成され,コーディングのみとなります。
最後に
最後までご覧いただきありがとうございます。
この設計支援ライブラリは使える状態にはなりましたが,まだまだ開発段階であり,皆様からのご意見やご要望をお待ちしております。
是非ともご利用いただき,忌憚のないご意見を頂戴できれば幸いです。
また,プルリクやイシューの作成も大歓迎です!!