FuelPHPをやってみる (30) - Model_Nestedset -

2013-11-07T00:00:00+00:00 FuelPHP PHP

久々にFuelPHPやってみる。ていうかFuelPHP1.7が出た模様で、OrmパッケージにModel_Nestedsetっていうのがあるらしいので使ってみた

※暫定的なので追記する可能性あり

Laravelのパスワードリマインダーに有効期限設定が出来るようになったらしい件

2013-07-30T00:00:00+00:00 Laravel PHP

Laravel使ってみた (20) - Mail -

2013-07-30T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/mail のドキュメント読み。まぁ名前の通りなんでセクション的な所辺りをこなしてみる

Laravel使ってみた (19) - Security(パスワードリマインダーとその他) -

2013-07-29T00:00:00+00:00 Laravel PHP

前回で認証的な機能を作ったのはいいけど、パスワード等を忘れた場合にメールでパスワード変更URLを通知してアクセスしてもらって新しいパスワードを設定するとかっていう形式を利用する事が出来る模様

Laravel使ってみた (18) - Security(ユーザー認証) -

2013-07-28T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/security のドキュメント読み。なんだがユーザー認証的な所だけを書く。っていう事でフォーム認証な所をやってみる。パスワードリマインダー的な所は次回に書く。まとめて書くとわけわかめになるので

あとめんどくさいのでクラス作らずにroutes.phpにClosureでダラ書き

Laravel使ってみた (17) - Queue -

2013-07-26T00:00:00+00:00 beanstalk Laravel PHP

http://laravel.com/docs/queues のドキュメント読みなんですが、一部IronMQっていうのに依存する機能がある模様げで、そのIronMQを使ってないのでそこは(ry

でMQサーバー何使うのって所として、んまぁ手軽だしBeanstalkで良いんじゃないかって事で。

Laravel使ってみた (16) - Events -

2013-07-24T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/events のドキュメント読み

Laravel使ってみた (15) - テンプレートレイアウト -

2013-07-23T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/templates なドキュメント読みつつやってみた

Laravel使ってみた (13) - Forms & HTML -

2013-07-21T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/html を読みつつやってみるだけ

Laravel使ってみた (14) - FacadeとServiceProviderの使い方? -

2013-07-21T00:00:00+00:00 Laravel PHP

使い方合ってるのかは定かじゃない。当てずっぽうで書いてる感も否めないのですが。ドキュメント的には http://laravel.com/docs/facadeshttp://laravel.com/docs/ioc の組み合わせ的な感じかと

Laravel使ってみた (12) - LaravelでCSRF -

2013-07-20T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/security のセクションリンクは無いけど「CSRF Protection」セクションに書いてある通り、csrfのフィルターを利用する事でCSRFなプロテクションを利用する事が出来るっぽい。app/filters.phpにはデフォルトでCSRFなフィルターが定義されている。

Laravel使ってみた (10) - Views & Response -

2013-07-15T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/responses 辺りのドキュメント読みつつやってみる的な事を遂行。部分的な事(ResponseとwithCookieとか)は既にやってるので省略。という事で主な所はViewsに関係する所くらいか

Laravel使ってみた (9) - Error&Logging -

2013-07-11T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/errors のドキュメント読み

Laravel使ってみた (8) - Laravelでのモックテスト -

2013-07-10T00:00:00+00:00 Laravel PHP

何やら前回でEventがあーだらこーだらですっ飛ばすっていうのを書いたんですが、あれEventがどうだとかいう事じゃなくて、単純にMockオブジェクトとしてのテスト手法なセクションだった模様で

Laravel使ってみた (7) - Controller Testing -

2013-07-09T00:00:00+00:00 Laravel PHP

久々にLaravelなドキュメント読みを遂行。 http://laravel.com/docs/testing のコントローラーテストな部分だけをやってみた。

Laravel使ってみた (6) - Request & Input -

2013-06-24T00:00:00+00:00 Laravel PHP

まぁドキュメント通り、Inputクラス(Requestクラスのエイリアス?)だとかのドキュメント読みを進めてみる

Laravel使ってみた (5) - サブドメインルーティング -

2013-06-22T00:00:00+00:00 Laravel PHP

Laravelのルーティング定義で

Laravel使ってみた (4) - Routing Filter -

2013-06-12T00:00:00+00:00 Laravel PHP

コントローラー等によりが渡る前などに前後処理等を行ったり出来る。まぁ良くあるパターンとして、コントローラーに処理が回る前に認証状態をチェックしたりとか

フィルター自体の定義はapp/filters.phpに行う

Laravel使ってみた (3) - Routing -

2013-06-11T00:00:00+00:00 Laravel PHP

前にもちょっとだけ書いたけど、ルーティング定義はapp/routes.phpに定義する

Laravel使ってみた (2) - Configuration -

2013-06-09T00:00:00+00:00 Laravel PHP

引き続きドキュメント読み。 http://laravel.com/docs/configuration をやってみる

Laravel使ってみた

2013-06-08T00:00:00+00:00 Laravel PHP

なんか最近話題が多いような気がしなくもないPHPのFramework http://laravel.com を使ってみた

FuelPHPをやってみる (28) - OrmModel_Temporal -

2013-05-08T00:00:00+00:00 FuelPHP PHP

FuelPHP 1.6 Release(祝)

っていう事で1.6から追加された模様気なOrmModel_Temporalを使ってみる。まずこれなんなのかって、バージョニング出来るモデルみたいな感じなのかなと。で

ぶっちゃけこれ見た方が概要全て解説されているかと思いますんで、是非一読される事をオススメします。っていうか自分もこれ見てやってみただけなので

FuelPHPをやってみる (29) - Orm\Auth -

2013-05-08T00:00:00+00:00 FuelPHP PHP

これも1.6から入った物だと思うのだけど、まぁ名前の通り「SimpleAuthをOrmパッケージでやった物」的なスタンスなのかなと。まぁ「Orm自体だけでもパフォーマンスそんなに良いとは言えないような気がするのに、これ必要なんですか」っていう疑問がまず出たのだけど、まぁやってみましょうか的な感じで

恐らくはormパッケージも使うのでalways_loadにはorm及びauthが必要かと

pirumを使ってPEARチャネルサーバーを構築

2013-04-07T00:00:00+00:00 PHP

動かしてるシステムとかのPHPパッケージをPEAR経由でインストール出来るようにしたいとか。pirumっていうのを使えば簡単に構築できるらしいのでやってみた

FuelPHPのエラー処理の雑多メモ

2013-03-10T00:00:00+00:00 FuelPHP PHP

久々にFuelPHPを使ってて思う所がいろいろあったのでメモ

FuelPHPのコントローラーをWebサーバーにデプロイする事無くテストする

2013-03-07T00:00:00+00:00 FuelPHP PHP

あくまで「HTTPリクエストを行うのが前提」っていう所です

PHPUnitでSingleton+staticメソッドをテストするケース

2013-03-02T00:00:00+00:00 PHP

<?php

abstract class Phest_Assert implements Phest_Assert_Interface {

    public static function getTester() {
        return Phest_Context::getInstance();
    }

    public static function getReporter() {
        $tester = static::getTester();

        if (!($tester instanceof Phest_Context)) {
            throw new Phest_Exception("invalid test context");
        }

        $reporter = $tester->getReporter();

        if (!($reporter instanceof Phest_Report)) {
            throw new Phest_Exception("invalid report instance");
        }

        return $reporter;
    }

    public static function report($testSuccessful, $e = null) {
        static::getReporter()->report($testSuccessful, $e);
    }
}

みたいなクラスがあったと場合にgetReporterメソッドの内部をMockを使ってテストする場合には

PHP_CodeCoverageを使ってPHPコードのカバレッジを出力する方法

2013-02-04T00:00:00+00:00 PHP

あくまでPHP_CodeCoverageを単体で使うっていう前提でPHPUnit等は使いません。例えば

PHPUnitみたいにテストケースクラスっていう方式じゃなくても、もっとシンプルにテストかけたら良いよね

って思う事もしばしばあるのですが、まぁテストフレームワークを作ったとしても結局カバレッジ出力な機能に関しては捨てられませんよねって話。という事で単体で使う方法を調べてみた

FuelPHPをやってみる (27) - Model_Softを使う -

2013-01-22T00:00:00+00:00 FuelPHP PHP

FuelPHP1.5から追加された模様なModel_Softを使ってみる

FuelPHPをやってみる (26) - MongoDBを使う -

2013-01-21T00:00:00+00:00 FuelPHP MongoDB PHP

超久々にFuelPHPを触って見てる。タイトル通り、FuelPHPからMongoDBを使うネタ。まぁドキュメントに書いてる通り進めてるだけなので、詳しくはそれ読めと

PHPの.user.ini

2013-01-10T00:00:00+00:00 PHP

何やらphp.iniを覗いてたらuser.iniっていうのが存在する模様

PHPUnitでテスト内で発生したアサーションをテストする

2013-01-07T00:00:00+00:00 PHP PHPUnit

タイトルじゃ意味がわかりづらいかなと。簡単に言えば「本当にアサーションが発生しているのかをテストする」っていう事

例えばコールバックを引数に持つクラスメソッドを実行する前提のテストを行う際に、その引数に指定されたコールバックが実行されてそこでアサーションを行なってテストする場合、そのコールバックが正常に作動していなければアサーションが発生したとは考えにくいのではと。

でPerlとかの単体テストで使われるTest::Moreとかでは実行プランっていうのが存在しているので、想定されるテスト(アサーション)が保証する回数を前提にする事が出来る訳で。でこれをPHPUnitでやるにはどうすれば良いのかって

色々見た所だとどうもそういうのをサポートされてないような気もする。だけど、PHPUnit_Framework_Assert::getCountで取得する事が可能な模様。でテストする際にあたってはテスト毎(メソッド)にカウンタが初期化される模様(resetCountとかそういうメソッドもある)

PHPUnit+Seleniumと雑多メモ

2013-01-07T00:00:00+00:00 PHP PHPUnit

PHPUnit+Selenium使う場合にはPHPUnit_Extensions_SeleniumTestCase使えば良い模様(PHPUnit_Extensions_Selenium2TestCaseっつーのもある)

PHPUnit+DbUnit

2013-01-06T00:00:00+00:00 PHP PHPUnit

引き続きPHPUnitドキュメント読みつつ進めてみる

ざっくりとPHPUnitマニュアル読みつつやってみる

2013-01-05T00:00:00+00:00 PHP

タイトル通りなんでkwskは(ry

PHPUnitを使ってprivateメソッドをテストする

2012-12-21T00:00:00+00:00 PHP

Closure::bindを使って出来るらしい。実際に自分でやらないと信用しないタイプな人間なもんで

FuelPHPをやってみる (25) - ログ出力をテストする -

2012-12-07T00:00:00+00:00 FuelPHP PHP

FuelPHPにLogクラスがありますけど、これを使う場合のログ出力をテストケースでテストしたい場合どうするのかって所。とりあえず手法として、

ログが出力される前と後でログをdiffする
ファイルポインタで出力前に末尾にカーソルを移しておいて出力後にログ取得メソッドで更新された分のカーソルを取得する

っていう手法を思いついた。とりあえず前者なパターンをやってみた(どっちがいいかと言われたら後者の方が良いんじゃないかと思う所)

FuelPHPをやってみる (24) - Goutteでコントローラーテスト -

2012-12-06T00:00:00+00:00 FuelPHP PHP

何やら https://github.com/fabpot/Goutte っていのが便利らしく使ってみた

FuelPHPをやってみる (23) - 認証機能 (3) 独自のAuthドライバを実装する -

2012-12-01T00:00:00+00:00 FuelPHP PHP

前回でSimpleAuthを使って認証する方法がありましたが、これを独自実装でやりたい場合にAuthパッケージな機能を利用し認証ドライバを開発する事で組み込める模様。なのでちょっとやってみた

※一応、暫定版です。色々追記するかも

FuelPHPをやってみる (22) - 認証機能 (2) -

2012-11-29T00:00:00+00:00 FuelPHP PHP

前回で書いた通り、SimpleAuthパッケージを使って認証機能を組んでみる。まぁFuelPHP公式ドキュメント通りなので

FuelPHPをやってみる (21) - 認証機能 (1) -

2012-11-28T00:00:00+00:00 FuelPHP PHP

SimpleAuthパッケージを使えば簡単に認証機能を組み込む事が出来る模様ですが、まだ未検証なので自前で認証機能を実装してみる

FuelPHPをやってみる (20) - ファイルアップロード -

2012-11-26T00:00:00+00:00 FuelPHP PHP

タイトル通り。Uploadクラスを使えばサラっとできちゃう模様

FuelPHPをやってみる (19) - Themeを使う -

2012-11-24T00:00:00+00:00 FuelPHP PHP

Themeクラスを使う事で動的にレイアウトとなるテーマを切り替えたりも出来る模様

FuelPHPをやってみる (18) - タスクを使う -

2012-11-23T00:00:00+00:00 FuelPHP PHP

fuel/app/tasksにタスククラスを定義しておけば、oil refineで使用する事が出来る模様

まぁドキュメントに書いてる通り進めてるだけなので

FuelPHPをやってみる (17) - HMVCリクエスト -

2012-11-21T00:00:00+00:00 FuelPHP PHP

FuelPHPではHMVCリクエスト方式を利用してビューからコントローラーにリクエストを送ってそのレスポンスをビューにレンダリングしたりも出来る模様

FuelPHPをやってみる (16) - CSRFに関して -

2012-11-20T00:00:00+00:00 FuelPHP PHP

CSRF関係のAPIも存在するのでそれを利用すれば良い模様。あくまでFuelPHP APIの話なだけですので

FuelPHPをやってみる (15) - パッケージを作る -

2012-11-19T00:00:00+00:00 FuelPHP PHP

fuel/packagesにディレクトリを作って

├── bootstrap.php
├── classes
└── tests

んな感じで構成を作って(正確にはbootstrap.phpがあれば構造はどんな感じでも良いかもtestsディレクトリを除いては)、fuel/app/config/config.phpでパッケージ利用設定を行えば、定義されたクラス群等を利用する事出来る模様。という事でやってみる

FuelPHPをやってみる (14) - モジュールを使う -

2012-11-18T00:00:00+00:00 FuelPHP PHP

fuel/app/modulesに

└── sample
    └── classes
        └── controller
            └── sample.php

な感じでアプリケーションモジュールとして定義出来る。ディレクトリ構造はfuel/app内とほぼ同様な構造かと。んで、コントローラーの場合は http://localhost/モジュール名/コントローラー名/アクション名 等でアクセス可能な模様(モジュール名は省略可能な模様)

FuelPHPをやってみる (13) - Controller_Hybridを使う -

2012-11-16T00:00:00+00:00 FuelPHP JavaScript PHP

Controller_Template + Controller_Rest = Controller_Hybridらしい

FuelPHPをやってみる (12) - Controller_Restを使う -

2012-11-15T00:00:00+00:00 FuelPHP PHP

Restfulサポートなコントローラー機構なController_Restを使ってみる。

FuelPHPをやってみる (11) - Smartyを使う -

2012-11-13T00:00:00+00:00 FuelPHP PHP Smarty

PHPを色々やってた時にテンプレートエンジンといえばSmartyな感じで良く使ってた記憶があるので、とりあえずじゃあSmarty使いましょうかと思ってやってみた

FuelPHPをやってみる (10) - ViewModelを使ってみる -

2012-11-11T00:00:00+00:00 FuelPHP PHP

ViewModelを使えば、本来コントローラーから値をセットしてビューで表示すると言ったような処理をViewModelに任せる事でコンポーネント化?のように出来る模様

FuelPHPをやってみる (9) - Controller_Templateを使ってみる -

2012-11-11T00:00:00+00:00 FuelPHP PHP

着々とドキュメント読みつつ進めてみる。Controller_Templateを使えばビューレイアウトな方式でレスポンスを出せる模様

FuelPHPをやってみる (8) - OrmModelを試す -

2012-11-10T00:00:00+00:00 FuelPHP PHP

OrmパッケージなModelを使ってみる。この記事から検証バージョンが1.4

FuelPHPをやってみる (7) - コントローラーテスト時の例外を無視してレスポンスを取る

2012-11-09T00:00:00+00:00 FuelPHP PHP

前にも書いたんですが、コントローラーテスト時にset_methodとかしても結局ルーティングに合わない場合等にはHttpNotFoundExceptionがスローされたりして結局レスポンス取れないっていう事があったのですが、んまぁ大体の言語には「このテストでは例外が出る」っていうのを前提にテストを書く(expectedException)というケースがありきたりだとは思いますが

例外うっせぇ、それでもレスポンスをちゃんとチェックしてえんだよクソが

って思う人もいるでしょう。という事でごちゃごちゃでまだ理解出来た訳じゃないのですが、いろいろ調べてみた。という事で例題的なサンプルのコントローラーが

FuelPHPをやってみる (6) - モデルテストとモック -

2012-11-09T00:00:00+00:00 FuelPHP PHP

例えば以下のようなモデルクラスがあった場合

fuel/app/classes/model/items.php

<?php

class Model_Items extends Model_Crud {

    protected static $_table_name = "items";

    public static function findById($id) {
        $entry = null;

        try {
            $entry = static::find_one_by("id", $id);
        } catch (Database_Exception $e) {
            Log::warning($e->getMessage());
        }

        return $entry;
    }
}

まぁ単純にID値から取得するだけのメソッドを定義する。で問題は実際にfind_one_byが失敗した場合(例外により)、結果がちゃんと「NULLである」という保証をテストする必要があると思いますけど。でどうやってそれを再現させるかってところなんですが、まぁよくあるパターンとしてモックでfind_one_byを実行させると例外が出るように設定する。まぁそんな感じの事したいっていう事でやってみた

FuelPHPをやってみる (5) - Migrationを使う -

2012-11-08T00:00:00+00:00 FuelPHP PHP

Railsにそういうのがありますが、FuelPHPでもそういうのがある模様

FuelPHPをやってみる (4) - Model_Crudでバリデーション -

2012-11-07T00:00:00+00:00 FuelPHP PHP

タイトル通り。フォームからの入力を検証してエラーの場合はフォームにリダイレクト後にエラーメッセージを表示する。セッション管理機能を使うのでfuel/app/config/session.phpの設定が必要

FuelPHPをやってみる (3) - Model_Crudを使う -

2012-11-06T00:00:00+00:00 FuelPHP PHP

Modelなパッケージにクラス作ってメソッド実装してそこからDBパッケージで取得するみたいな方式でやったけど、Model_Crudを継承して使う事で有用なメソッドが色々存在するのでSQL書いたりQuery Builder使わずにさっくりとデータベースを使える模様。ちなみにFuelPHP的にはORMっていうのはパッケージとして存在するので、これをORMというのは異なると思うので

fpmプロセスを再起動する

2012-11-05T00:00:00+00:00 PHP

っていう方法を簡単にやる方法(psで探してkillして止めてから起動をやらずに)

FuelPHPをやってみる (2) - データベースを使う -

2012-11-05T00:00:00+00:00 FuelPHP PHP

タイトル通りデータベースを使う

FuelPHPをやってみる (1) - Getting Start -

2012-11-04T00:00:00+00:00 FuelPHP PHP

とりあえずなんかやってみようと

fpmでFuelPHP

2012-11-03T00:00:00+00:00 FuelPHP nginx PHP

FuelPHPをやってみようかなーって思ったらApache入ってねーしどうっすかなーって考えてたので、とりあえずphp-fpmで動かしちゃうかっていう事でやってみた

(FuelPHP及びFPM関係の設定は省略)