詳しくは、以下を御覧ください。
■FuelPHPで既存テーブルからScaffoldするTaskをgithubに。
http://madroom-project.blogspot.jp/2012/06/fuelphpscaffoldtaskgithub.html
--
昨日、以下の記事を書きました。
FuelPHPで既存テーブルからScaffoldするTask。
http://madroom-project.blogspot.jp/2012/06/fuelphpscaffoldtask.html
今回は、admin対応版です。
コマンドで表すと oil generate admin ... です。
変更点は、引数追加と、その引数によるcall_user_funcの分岐のみです。
php oil r scafdb $tablename
とすれば非adminで
php oil r scafdb $tablename 1
とすればadminでのscaffoldとなります。
app/tasks/scafdb.php
<?php namespace Fuel\Tasks; class Scafdb { public static $ignore_fields = array( 'id', 'created_at', 'updated_at', ); /** * Scaffold by database table. * * Usage (from command line): * * php oil r scafdb $tablename */ public static function run($tablename='', $is_admin=0) { if(!strlen($tablename)) { exit('Usage : php oil r scafdb $tablename'); } $args = self::mk_args(\DB::list_columns($tablename)); array_unshift($args, $tablename); $subfolder = 'orm'; // TODO: call_user_func($is_admin ? 'Oil\Generate_Admin::forge' : 'Oil\Generate_Scaffold::forge', $args, $subfolder); } private static function mk_args($cols) { $args = array(); foreach ($cols as $col) { if(in_array($col['name'], self::$ignore_fields)) { continue; } $constraint = ''; // TODO: $args[] = $col['name'] . ':' . $col['data_type'] . $constraint; } return $args; } } /* End of file tasks/scafdb.php */尚、adminを表す引数は、1でなくても、PHP的に真と判定される文字(すなわち0以外)なら何でもadmin扱いとなります。
No comments:
Post a Comment