タグ

ブックマーク / raining.bear-life.com (11)

  • Fuelphp:エスケープしないでSQLを実行する「DB::expr()」 | raining

    Fuelphpでデータベースの値を操作する場合は、DBクラスを使用します。 そのDBクラスを使用してデータを取得すると、自動でエスケープ処理をかけてくれます。 しかし、状況によってはエスケープしないでデータを取得したい場合があります。 「DB::expr()」メソッドを使用すればエスケープ処理しないで実行することができます。 MySQLの関数で「COUNT()」「SUM()」「RAND()」などを使用したい場合や サブクエリを使用してデータ取得する場合などに非常に便利です。 下記に、Fuelphpの「DB::expr()」メソッドを使用してデータを取得した時の方法をメモします。 ■ expr()メソッド エスケープ処理をしないで実行することができます。 DB::expr('クエリ文字列') ■ 「DB::expr()」の実行例(MySQL関数を使用した場合) ・「COUNT()」関数を使用

  • Fuelphp:Imageクラスを使用し、画像を回転する「rotate」 | raining

    FuelphpのImageクラスを使用すると、簡単に画像を回転させることが可能です。 iPhoneで撮影した画像をアップロードし、ページに表示すると横に表示されてしまうことがあり、 アップロードした画像を回転させる必要がありました。 FuelphpのImageクラスを使用して、読み込んだ画像を回転させて保存する方法をメモします。 ■ rotate() ロードした画像を時計回りに回転します。 パラメータに回転する角度を指定します。 ・時計回りに90度回転する場合 rotate(90) ※反時計回りの場合は「-90」 ■ Imageクラスのrotate()で画像を回転 回転したいファイルをロードし、「rotate()」で回転する角度を指定します。 // ファイルパスを指定 $f_path = '/home/hoge/public/uploads/sample.jpg'; // ファイルを読み込

  • Fuelphp:コントローラーから渡したHTMLソースをビューで出力する | raining

    fuelphpでコントローラーからHTMLソースをビューに渡して出力したい場合があります。 fuelphpではコントローラーからビューに渡す値をデフォルトでエスケープするようになっており、 セキュリティを高めるためにXSS(クロスサイトスクリプティング)対策が実施されています。 処理の内容によっては、HTMLソースをビューで出力したい場合があるので、 下記にコントローラーから渡したHTMLソースなどの値を、 エスケープせずにビューで出力する方法を記載します。 ■ エスケープしない値をビューに渡す Viewクラス forge()メソッドの第三引数に「false」を設定します。 【コントローラー】 $this->template->content = \View::forge('hoge/index', $data, false); $dataの値がエスケープしないでビューに渡されます。 ■

  • Fuelphp:Agentクラスでエラーが起きた場合の対処方法 | raining

    FuelphpのAgentクラスを使用している時にエラーが起きたことがあったので、 そのエラーが起きた時の対処方法をメモします。 FuelphpのAgentクラスを使用していると、古いバージョンの場合にエラーが起きる可能性があります。 下記のようなエラーが発生しました。 Warning! ErrorException [ Warning ]: file_get_contents(http://browsers.garykeith.com/stream.asp?Lite_PHP_BrowsCapINI) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 410 Gone COREPATH/classes/agent.php @ line 446: 445: ini_set('u

  • Fuelphp:モジュール化をする時の方法 | raining

    FuelphpでMVCをモジュール化する時の設定方法をメモします。 開発を進めていくとファイルが膨大になってしまって、開発効率が落ちることがあります。 モジュール化することでMVCをまとめることができるので、開発する時にファイル等を参照しやすくなります。 また、ディレクトリごとコピーしてしまえば簡単に複製することができるので、開発効率も上がると思います。 FuelphpでMVCをモジュール化する場合の記述方法や設定方法等を下記に記載します。 ■ Fuelphpでモジュール化する方法 Fuelphpのディレクトリ構造はモジュール化をしない場合、 下記のような構造になっています。 モジュール化する場合は「modules」ディレクトリの中にモジュールごとに設置します。 今回は「hoge」というモジュールを作成しています。 コントローラー、モデル、ビューをモジュール内に設置します。 ・config

  • Fuelphp:Fuelphpでcoreクラスを拡張する方法 | raining

    フレームワークを使用してシステムを開発しているとコアクラスを変更したり、処理を追加したい場合があります。 あまりコアクラスは変更したくないので、コアクラスを拡張して処理を記述します。 今回はFuelphpでcoreクラスを拡張し、処理を追加したり、オーバーライドする方法をメモします。 ■ Fuelphpでcoreクラスを拡張する Paginationクラスを拡張する場合、「fuel/app/classes」の直下に「pagination.php」を作成します。 作成した「pagination.php」に処理を追加したり、オーバーライドしたい処理を記述します。 ※「fuel/core/classes/pagination.php」をオーバーライドします。 <?php class Pagination extends Fuel\Core\Pagination { // 処理を記述 } 処理を記

  • Fuelphp:バリデーションのルールを追加する | raining

    Fuelphpで用意されているバリデーションのルール以外に 自分で作成したバリデーションを追加したい場合があります。 コアクラスを拡張することによって、新しいバリデーションのルールを作成することができます。 今回はFuelphpのValidationクラスを拡張し、バリデーションのルールを追加する方法をメモします。 ■ バリデーションのルールを追加する方法 「fuel/app/classes」に「myvalidation.php」を作成します。 作成した「myvalidation.php」に追加したいバリデーションのルールを記述します。 下記は半角英数字チェックを追加した場合です。 追加する時は「_validation_」プレフィックスを付けて作成します。 <?php class MyValidation { // 半角英数字チェック public static function _val

  • Fuelphp:Fuelphpで基本的なメール送信処理 | raining

    FuelphpEmailパッケージを使用し、メール送信をした際の処理をメモします。 システムを作成しているとメール送信処理は頻繁に使用することがあると思います。 FuelphpEmailクラスを使用することで簡単にメール送信をすることが可能です。 【FuelphpEmailクラスを使用したメール送信】 ■ Emailパッケージのロード Emailクラスを利用可能にするには、Emailパッケージを読込んで使用できる状態にします。 「/fuel/app/config/config.php」の下記の箇所に「email」を追加し、Emailパッケージ読込みます。 ※Emailパッケージをオートロードする場合 'always_load' => array( 'packages' => array( // Emailパッケージをオートロード 'email', ), (省略) ), また、Emai

  • Fuelphp:Inputクラスを使用し、$_GETや$_POSTの値を取得する | raining

    fuelphpで$_GETや$_POSTの値を取得する場合は、Inputクラスを使用します。 今回はfuelphpのInputクラスを使用し、GETやPOSTなどの変数の値を取得する方法をメモします。 ■ Inputクラス HTTPパラメータ、サーバ変数、ユーザエージェントなどの情報を参照するためのクラスです。 ■ $_GETの値を取得する場合 getメソッドを使用します。 引数がない場合は、$_GETの全ての値を取得します。 ・getメソッド get('配列要素', '規定値') ・使用方法(getメソッド) // $_GETの全ての値を取得する場合 Input::get(); // $_GET['id']の値を取得する場合 Input::get('id'); ■ $_POSTの値を取得する場合 postメソッドを使用します。 引数がない場合は、$_POSTの全ての値を取得します。 ・p

  • Fuelphp:タスクを使用したコマンドラインからの実行 | raining

    fuelphpではタスクという機能を使用するとコマンドラインからプログラムを実行することができます。 コントローラと同じようにモデルやクラスを使用できるので、とても便利です。 また、タスクで作成したプログラムはcronで実行することができるので、定期的に実行したいプログラムがある場合などにも使用できます。 今回はfuelphpに最初から入っていた「robots.php」を実行した時の操作方法をメモします。 ■ タスクを実行する(robots.php) タスクを作成したファイルは下記の場所に格納します。 fuel/app/tasks/ 実行する際は「oil」の「refine」を呼び出します。 タスクを実行するために「refine」を記述します。 タスク名のみ記載した場合は、「run()」を実行します。 # php oil refine robots "KILL ALL HUMANS!" __

  • FuelPHP:fuelphpでSQLを実行した際のSQL文を確認する | raining

    fuelphpSQLを実行した際に、どのようなSQL文が書き出されているか確認したい場合があります。 DBクラスのlast_query()メソッドを使用するとSQLクエリをデバックすることができます。 ■ last_query()メソッド last_query()メソッドは、最後に実行したSQLクエリを返します。 DB::last_query(); ■ last_query()メソッド使用方法 最後に実行したSQLクエリを返すので、SQL実行した直後にlast_query()メソッドを記載します。 // SQLを実行 $query = DB::select()->from('user'); $query->where('id', 1); $res = $query->execute()->as_array(); // 実行したSQLクエリを取得 var_dump(DB::last_que

  • 1