いろんなものに使えるようにtemplate-generatorをつくってみました

Posted: 2014-03-24 23:11 |  laravel PHP全般 
フレームワークのジェネレーターはいろいろあります。
laravelでは JeffreyWay/Laravel-4-Generators が有名どころです
今回はlaravelに限らず、汎用的に、どんなものにでも簡単に使えるように
作ってみました。
https://github.com/ytake/template-generator
上記にあげたジェネレーターと異なるところは、
データベースの定義を書くというところでしょうか。

アプリケーションの基本はdatabaseにありということで、
エクセルで記載するdatabase定義テンプレートを含めました。
実装をみていただければわかる通り、エクセルでなくてもかまわないですし、
独自のフォーマットにしてもらえれば何でもできると思います。

ただまだ試用なのでファイルのフォーマットチェックすらいれてませんが、
そこら編は使う方があわせて変更してもらえると信じて・・w

このバッチアプリケーションは自分で作ったもので、
せっかくなのでそれを使って作ってみました。
laravel利用者にはおなじみのilluminate containerを利用しています。
databaseも使えるようになってますので、
リバースエンジニアリングも・・・

主な使い方ですが、至ってシンプルです。

そのままgenerateしてみる

$ php console generate:template
そのまま実行すると、
定義書はapp/storage/template/template.xls をパースして、
app/storage/output 下にそれぞれを出力します。
laravelにあわせたものが出力されるようになってますので、
ほかのフレームワークに使う場合は同じように出力したいテンプレートを作ったり、
laravelでもこういう風にしたい!というのにも簡単にできるようになっているとは思っています。

オプションもシンプル

--path : 読み込むファイルを指定
--output : 出力するディレクトリを指定
--framework : フレームワークを指定出来ますが、お使いのフレームワークに合わせて実装が必要です
これしかありません。

 

注意

$ chmod -R 777 app/storage
デフォルトで動かす場合は権限忘れずに

エクセル以外のものを指定したい、mysql以外のものを対象にしたい場合は、
bindを直接変更するか、オプションで指定して変更できるようにするかで簡単にできます
			// container
			$this->app->bind("Model\ReadInterface", "Model\Excel\Reader");
			$this->app->bind("Model\Framework\WriterInterface", "Model\Writer\Framework\\" . ucfirst($framework));
			$this->app->bind("Model\Database\SchemeInterface", "Model\Writer\Database\Mysql\Scheme");

			$this->app->make("Controller\Generate")->perform($array);
これをもとにもっといいものを作ってもらえるとうれしいです!w

about ytake

執筆に参加しています


Laravel お役立ち情報

share



このエントリーをはてなブックマークに追加

Categories

laravel 45

DTM 0

music 0

PHP全般 31

0

JAPAN 1

WORLD 1

javascript 4

RDBMS 1

NoSQL 1

NewSQL 1

Recent Posts

Ad

comments powered by Disqus

GitHub

Social Links

Author


クリエイティブ・コモンズ・ライセンス
Yuuki Takezawa 作『Ytake Blog』はクリエイティブ・コモンズ 表示 - 非営利 4.0 国際 ライセンス で提供されています。

© ytake/comnect All Rights Reserved. 2014