作成日:2018-06-12, 更新日:2018-06-12
やりたいことと経緯
1.何かの処理をcron実行させたい
2.じゃぁ、cronでoilを実行させよう
3.cron実行でエラーが発生した
4.手動でoilを実行させるのはいいけど、コンソールを起動させるのが面倒だ!
っていう状況で「ブラウザから実行させたい」となった。
参考:各ファイルPATH
単純だけど、oilにしろcontrollerにしろ実行させる箇所をどっかに書く。
・ブラウザで実行 - app/classes/controller/test.php
・コンソールで実行 - app/tasks/test.php
・実際に走らせたい処理 - app/classes/util/test.php
ブラウザで実行 - app/classes/controller/test.php
~ 省略 ~ \Util_Test::〇〇(); ~ 省略 ~
コンソールで実行 - app/tasks/test.php
~ 省略 ~ \Util_Test::〇〇(); ~ 省略 ~
実際に走らせたい処理 - app/classes/util/test.php
~ 省略 ~
public static function 〇〇() {
}
~ 省略 ~
画面出力の改行
・ブラウザで改行させるには「<br>」を使う
・コンソールで改行せるには「\n」を使う
方法はいくつかあるけど・・・定数にするのが使い勝手が良いかもしれない。
※コントローラーやタスクのトコで最初に定数に設定してやる感じ。
ブラウザで実行 - app/classes/controller/test.php
~ 省略 ~ $prms = array( 'NL_BR' => '<br />', 'NL_HR' => '<hr />', ); \Util_Test::setDefine($prms); \Util_Test::〇〇(); ~ 省略 ~
コンソールで実行 - app/tasks/test.php
~ 省略 ~ $prms = array( 'NL_BR' => "\n", 'NL_HR' => '==== ====' . "\n", ); \Util_Test::setDefine($prms); \Util_Test::〇〇(); ~ 省略 ~
実際に走らせたい処理 - app/classes/util/test.php
~ 省略 ~
public static function setDefine($setData) {
if ( is_array($setData) ) {
foreach ( $setData as $k=>$v) {
if ( !defined($k) ) {
define($k, $v);
}
}
}
}
public static function 〇〇() {
~ 省略 ~
echo 〇〇〇 . NL_BR;
echo NL_HR;
echo 〇〇〇 . NL_BR;
~ 省略 ~
}
~ 省略 ~