おぼえがき

おぼえがき

fuelphpでバッチ処理(oil refineを利用する)

2013-04-17 | php
oil refineをちゃんと見る

バッチ処理を動かすときは、oil refineを利用するんだが、
ちょいとハマったところもあるので、まとめておく

バッチ処理は、全て、fuel/app/tasks/ここのディレクトリ
配下に配下に置くようになっている。


2 namespace Fuel\Tasks;
3 class Hoge
4 {
5 public static function run()
6 {
7 echo "hoge";
8 }
9 }


これを実行するには、oil refine hoge
runメソッドが実行される


2 namespace Fuel\Tasks;
3 class Hoge
 4 {
5 public static function run()
6 {
7 echo "hoge";
8 }
9 public static function sample()
10 {
11 echo "this is sample";
12 }
13 }


これを実行するには、oil refine hoge:sample
runメソッドではなく、オリジナルのメソッドが実行される


2 namespace Fuel\Tasks;
3 class Hoge
4 {
5 public static function run($a,$b)
6 {
7 echo $a;
8 echo $b;
9 echo "hoge";
10 }
11 public static function sample()
12 {
13 echo "this is sample";
14 }
15 }


これを実行するには、oil refine hoge AAA BBB
これで、runメソッドに引数を渡すことができる

そんざいする、タスクをタスクを確認する
Available tasks:
php oil refine install
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 fromdb
php oil refine fromdb:help
php oil refine fromdb:scaffold
php oil refine fromdb:model
php oil refine hoge <------ お!入っている
php oil refine hoge:sample <------ お!入っている
php oil refine robots
php oil refine robots:protect


modelとかパッケージがなぜか呼べなかったが、
\モデル名
\Email::forge()

ってやればちゃんと呼ぶことができた。


ちなみに、oilコマンドでタスクの生成ができる(これ、ヘルプ oil g help に載ってない気がする)
oil g task test
ってやったら、tasks/配下にtest.phpとrunメソッドのスケルトンが生成されて
oil g task test2 subtest
ってやったら、tasks/配下にtest2.phpとrunメソッドとsubtestのスケルトンが生成される

おしまい。

fuelphp最小構成

2013-04-17 | php
インストール後に、welcomeページ出るんだけど、それを出すために
最低限必要なファイルは何なんだろうか。
コアクラス追っかけてみた。

結果は・・・
./app/bootstrap.php
./app/classes/controller/welcome.php
./app/config/config.php
./app/config/crypt.php
./app/config/routes.php
./app/logs/
./app/views/welcome/index.php
./core/base.php
./core/bootstrap.php
./core/classes/arr.php
./core/classes/asset.php
./core/classes/asset/instance.php
./core/classes/autoloader.php
./core/classes/config/file.php
./core/classes/config/ini.php
./core/classes/config/interface.php
./core/classes/config/json.php
./core/classes/config/php.php
./core/classes/config/yml.php
./core/classes/config.php
./core/classes/controller.php
./core/classes/cookie.php
./core/classes/event.php
./core/classes/event/instance.php
./core/classes/finder.php
./core/classes/fuel.php
./core/classes/inflector.php
./core/classes/input.php
./core/classes/module.php
./core/classes/profiler.php
./core/classes/route.php
./core/classes/request.php
./core/classes/response.php
./core/classes/router.php
./core/classes/security.php
./core/classes/uri.php
./core/classes/view.php
./core/config/asset.php
./core/vendor/phpquickprofiler/console.php
./core/vendor/phpquickprofiler/display.php
./core/vendor/phpquickprofiler/phpquickprofiler.php
./packages/log/

これらのファイルを通って、呼ばれて、welcome画面が表示される


基本的には、index.phpで
$response = Request::forge()->execute()->response();
ってやって、
$response->send();
で表示されるだけ。

なんか、何でこのクラスが必要なんだところもあるが、
もうちょい追っかければ分かると思う

fuelphpとビルトインウェブサーバー

2013-04-14 | php

FuelPHPをビルドインウェブサーバー(PHP5.4以上)で動かそうとしたら、

この辺をみて、mod_rewrite的なものを実装する必要があったけど、

fuelphp1.6-develop眺めてると、
fuelphpをビルドインウェブサーバーで動かすことができそうな予感。

やってみる。

1.6-developのoilパッケージをダウンロードしてくる

今、自分の環境はFuelPHPの1.5を使っている。

XXX/fuel/packages/oil
このoilディレクトリの1.6のoilに入れ替える。
(オリジナルをmvして、githubのやつをDLしてoilに置き換えただけ)

じゃぁー実際動かしてみる

$ls
 CHANGELOG.md CONTRIBUTING.md README.md TESTING.md build.xml
 docs fuel/ oil public/

$oil help
Usage:
 php oil [cell|console|generate|package|refine|help|server|test]

 お!serverオプションがある
 じゃぁ、起動してみる

$oil server
1
Listening on http://localhost:8000
Document root is public/
Press Ctrl-C to quit.

これで、ビルドインウェブサーバーが立ち上がった。
実際アクセスしてみる

wget http://localhost:8000/hello/hoge

うごいたうごいた。

oil/server.phpみると、まぁ、ただのラッパーだな