oil タスクの作成と実行
FuelPHP では アプリケーションに関する様々なタスクを定義して実行することができる。
実行可能なタスクの一覧を表示する
$ oil r
または
$ oil refine
Usage: php oil [r|refine] <taskname> Description: Tasks are classes that can be run through the the command line or set up as a cron job. Available tasks: php oil refine install php oil refine migrate:__construct php oil refine migrate:__call php oil refine migrate:help php oil refine session php oil refine session:create php oil refine session:remove php oil refine session:clear php oil refine session:help php oil refine robots php oil refine robots:protect Documentation: http://docs.fuelphp.com/packages/oil/refine.html
アプリのテストデータを生成する
- タスクを書くための php ファイルを用意する。
fuelapp/app/tasks/testdata.php<sxh php collapse:true>
<?php
namespace Fuel\Tasks;
class Testdata {
/**
* fuelappのテストデータをデータベースに生成します。
*
* Usage (from command line):
*
* php oil r testdata
*
* @return string
*/
public static function run()
{
static::tablenames();
}
// <editor-fold defaultstate="collapsed" desc="tablenames">
/**
* t_simulations にテストデータを生成します。
*
* Usage (from command line):
*
* php oil r testdata:tablenames
*
* @return string
*/
public static function tablenames()
{
// t_simulations をクリア
\DBUtil::truncate_table(\Model_Tablename::table());
// <editor-fold defaultstate="collapsed" desc="テストデータ">
$tablenames_array = array(
array(
'column1' => 'testname',
'column2' => 1234567890,
'column3' => \Date::forge()->format('mysql'),
'column4' => 'TextTextTextTextText',
'created_at' => '',
'updated_at' => '',
),
);
// </editor-fold>
$count_max = 1000;
for ($count = 0; $count < $count_max; $count++)
{
foreach ($tablenames_array as $row_data)
{
$at_date = \Date::forge()->format('mysql');
/* @var $row \Model_Tablename */
$row = \Model_Tablename::forge();
$row->column1 = $row_data['column1'];
$row->column2 = $row_data['column2'];
$row->column3 = $row_data['column3'];
$row->column4 = $row_data['column4'];
// レコードを保存
$row->save();
}
}
}
// </editor-fold>
} </sxh>
- タスクを実行する。
$ oil r testdata