https://github.com/mp-php/fuel-dbdocs
以前、以下のパッケージを作りました。
FuelPHPでMySQLドキュメントを生成するパッケージを作ってみました。
http://madroom-project.blogspot.jp/2013/01/fuelphpmysql.html
MySQL以外も何とかならないものかという話がチラッとあり、Doctrine2を使って作りなおしてみました。
* テーブル情報
* インデックス情報
* ビュー情報
が生成できます。
現在、MySQL/PostgreSQL/SQLiteのみに対応しています。が、Doctrine2がOracleやSQL Serverにも対応しているので、ちょっと拡張すれば動く気はします。(検証可能な方がいらっしゃいましたら、GitHubでpull request頂ければ嬉しいです。。。)
READMEにも書いてありますが、以下、インストール方法です。
1. ソースコード一式を、DLするなりgit cloneするなりして展開します。
2. 外部ライブラリをインストールします。
$ cd fuel/packages/dbdocs $ curl -s http://getcomposer.org/installer | php $ php composer.phar install
ドキュメントの生成は、ブラウザとコマンドラインそれぞれに対応しています。
ブラウザからの実行は、public/index.phpにアクセスすれば、わかると思います。
コマンドラインからの実行ですが
$ php oil r dbdocs:helpでヘルプが表示されます。
ドキュメントの生成メソッドは、以下になります。(ヘルプより。)
php oil refine dbdocs:mysql <directory> php oil refine dbdocs:pgsql <directory> php oil refine dbdocs:sqlite <directory>"directory"は生成されるドキュメントのディレクトリで、絶対パスになります。-fをつけると、既存ディレクトリを削除した後、再度生成します。
DB接続情報は対話式で入力します。また、-nオプションを付けることで非対話式の実行も可能です。CIサーバなどでの自動実行を想定した機能です。その際、DB接続情報は全てオプション式で、併せて入力します。
以下、ヘルプより。
MySQL and PostgreSQL: --host=<host> --dbname=<dbname> --user=<user> --password=<password> --charset=<charset> SQLite: --path=<path> --charset=<charset>
カラムのコメントの加工や、カラム名からの外部キー判定の機能はpackages/dbdocs/config/dbdocs.phpに無名関数な設定値にしてあるので、本体側を修正すること無くカスタマイズできます。
最後に、補足ですが
* ドキュメントの生成機能は"dbdocs"パッケージとしてまとめてあります。
* デザイン周りはお決まりのTwitter Bootstrapです。
* Travis CIでPHP5.3/5.4/5.5 x MySQL/PostgreSQL/SQLiteの計9通りの環境でユニットテストを実行しています。
* ちょこっとAjax使っています。(FieldSetの切り替え。)
* ビュー情報の表示でsql-formatterを使っています。
Doctrine2のオブジェクトからHTMLを生成する際、ViewModelが役に立ったなー。
--
2012/02/11 補足。
大切なことを書き忘れていました。設定で、webfontの指定ができますw
1.0-alphaブランチは非対応(生成されるドキュメント側は対応済み)ですが、masterブランチで対応済みです。
--
関連:
PHPでSQLを整形するライブラリ"sql-formatter"
http://madroom-project.blogspot.jp/2013/02/phpsqlsql-formatter.html
Travis CIでComposer installする時にGitHubのAPI上限エラー
http://madroom-project.blogspot.jp/2013/02/travis-cicomposer-installgithubapi.html
ComposerでDoctrine 2のインストールメモ
http://madroom-project.blogspot.jp/2013/02/composerdoctrine-2.html
FuelPHPでMySQLドキュメントを生成するパッケージを作ってみました。
http://madroom-project.blogspot.jp/2013/01/fuelphpmysql.html
No comments:
Post a Comment