Posted on

shellでcakephpのプログラムを動かす方法

shellでcakephpのプログラムを動かす方法を覚書を記述しておきたいと思います。

まず/app/vendors/shellsの中にshellを動かすプログラムを書いたファイルを作ります。
今回はcron.phpとしました。
そのファイル内で次のようなコードを書きます。

  1. class CronShell extends Shell{  
  2. var $name = 'Cron';  
  3. function sendEmail() {  
  4. //命令を記述(メールを送信する)  
  5. }  
  6. function deleteFlag() {  
  7. //命令を記述(デルフラグの立っているのを物理削除)  
  8. }  
  9. }  

ここでのクラス名は先ほどつけたファイル名と同じにしておきます。
クラスの中では複数の命令が記述できます。


shellでcakephpのプログラムを動かす方法を覚書を記述しておきたいと思います。

まず/app/vendors/shellsの中にshellを動かすプログラムを書いたファイルを作ります。
今回はcron.phpとしました。
そのファイル内で次のようなコードを書きます。

  1. class CronShell extends Shell{  
  2. var $name = 'Cron';  
  3. function sendEmail() {  
  4. //命令を記述(メールを送信する)  
  5. }  
  6. function deleteFlag() {  
  7. //命令を記述(デルフラグの立っているのを物理削除)  
  8. }  
  9. }  

ここでのクラス名は先ほどつけたファイル名と同じにしておきます。
クラスの中では複数の命令が記述できます。

実行するプログラムが書けたらそれを呼ぶシェルスクリプトを書きます。
cake/console/cake cron sendEmail
cake/console/cake cron deleteFlag
このシェルスクリプトでcake/console/cakeに入って
先ほどつけたプログラムファイル名の「sendEmail」や「deleteFlag」を
呼び出すという感じで動かします。

shellで動かす前にプログラムがあっているかどうか試すのにコントローラーに置いて動かしてみます。
cron.phpをcron_controller.phpにして中のソースを

  1. class CronController extends Controller  
  2. var $name = 'Cron';  
  3. function sendEmail() {  
  4. //命令を記述(メールを送信する)  
  5. }  
  6. function deleteFlag() {  
  7. //命令を記述(デルフラグの立っているのを物理削除)  
  8. }  
  9. }  

とします。
あとはURLでこのコントローラのこのアクションという風に呼ぶと
そこの命令が動いてくれます。
(viewを作っていないので画面にはエラーが出ますけど)