2
0

Laravelで動く設計支援ライブラリを作ってみた

Posted at

はじめに

みなさん,こんにちは。
ご覧いただきありがとうございます。

突然ですが,皆さんは設計をする際にどのようなツールを使っていますか?
私は主に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 webauth:web 設計支援ライブラリのAPIのミドルウェアを指定します。

マイグレーション

以下のコマンドでマイグレーションを実行してください。

php artisan migrate

マイグレーション実行前にconfig/designer-helper.phpconnectionを設定してください。

これで使える状態になっています!
プロジェクト管理機能があるため,設計用のリポジトリを作成し,全てのプロジェクトの設計を管理することもできます。

今後の開発計画

以下の機能の追加を考えています。

  • エクスポート・インポート機能:現在のライブラリはデータベースのデータ共有が必要ですが,エクスポート・インポート機能を追加することで,データベースのデータ共有が不要になります。JSON形式でファイルを作成し,Git管理ができるようにすることを考えています。
  • コマンド実行機能:現在のライブラリは設計までですが,設計内容をもとにartisanコマンドを実行できるようにしたいと考えております。これが実現すれば例えば必要なモデルやマイグレーションファイルは簡単に作成され,コーディングのみとなります。

最後に

最後までご覧いただきありがとうございます。
この設計支援ライブラリは使える状態にはなりましたが,まだまだ開発段階であり,皆様からのご意見やご要望をお待ちしております。
是非ともご利用いただき,忌憚のないご意見を頂戴できれば幸いです。
また,プルリクやイシューの作成も大歓迎です!!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0