タグ

cakephpに関するwogawaraのブックマーク (18)

  • CakePHPで普段使っているpluginをまとめてみた | Web活メモ帳

    2010年を振り返る意味で、自分がCakePHPで開発する際に良く使うプラグインをまとめてみました。 誰かのお役に立てれば幸いです。 1.cakeplus ■ よく使うバリデーションをまとめたBehaviorであるadd_validation_rule モデルでバリデーションする際に当に使います。 var $validate = array( 'hoge' => array( "rule1" => array('rule' => array('katakana_only'), 'message' => 'hogeにカタカナ以外が含まれています' ), ), ); ■ 自動でhiddenタグを生成するヘルパーformhidden 確認画面を挟む際にhiddenに入力情報をまとめて出力してくれます。 echo $formhidden->hiddenVars(); このプラグインを知ってから、

    CakePHPで普段使っているpluginをまとめてみた | Web活メモ帳
  • CakePHPとJSONでAjax用APIを作る方法

    以前、CakePHPでjQueryのAjaxを使う方法というエントリーを書きましたが、 今回はJSON形式の配列を返却するAPIを作ってみます。 ここ一年間、APIを設計したり使ったりしましたが、自分なりのノウハウをまとめてみようと思います。 JSON形式で返すメリットjavascriptでオブジェクトとしてそのまま扱えるPHPから他の言語へデータの受け渡しが容易JSONはXMLなどと比べ軽量JSONを返すWebAPIjavascriptとの相性も良く,Ajaxでのやりとりにも使えます。 PHPの場合はjson_encode、json_decodeで等でJSONと配列を簡単に変換できます。 $json = json_encode(array('あ', 'い', 'う')); echo $json; // ["\u3042","\u3044","\u3046"] ※["あ","い","う"

    CakePHPとJSONでAjax用APIを作る方法
  • CakePHPでjQueryのAjaxを使う方法

    CakePHPでAjaxを使う方法をご紹介していきます。 Ajax処理を書くとき、CakePHPでは色々な手法があるので簡単にまとめていきます。 また、下記の記事でも改めて解説していますので御覧ください。 CakePHPでJSONを返すAPIを作る 初めてCakePHPでajaxを使った時にMissingViewでハマり、 CakePHP×Ajaxを解説しているサイトが見当たらず苦戦した思い出があります。 非常に便利なAjaxですが、CakePHPで使用する場合はAction側で一手間加えてやる必要があるのです。 ということで今回はCakePHPでAjaxを使う方法について解説します。 注: CakePHPにはAjaxHelper(JsHelper)が用意されていますが、今回は使いません。 というのも、個人的に使い勝手があまり良くない印象があるので。 (そもそもjavascriptはjsフ

    CakePHPでjQueryのAjaxを使う方法
  • CakePHP2でModel->find()でjoinsを使ってみた

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    CakePHP2でModel->find()でjoinsを使ってみた
  • 【CakePHP 2.x】Controller内でトランザクションをかける - pospomeのプログラミング日記

    CakePHPの公式サイトを確認すると、 モデル内で以下のようにかけるらしい。 <?php $dataSource->begin(); if (/*すべて成功*/) { $dataSource->commit(); } else { $dataSource->rollback(); } でも今回はコントローラーでかけたい。 ということで、トランザクション管理用のモデルを作った。 <?php App::uses('AppModel', 'Model'); class TransactionManager extends AppModel { public $useTable = false; public function begin(){ $dataSource = $this->getDataSource(); $dataSource->begin($this); return $dat

    【CakePHP 2.x】Controller内でトランザクションをかける - pospomeのプログラミング日記
  • CakePHPのauth.phpでパスワードの認証ができない

    Usersテーブルにusernameとpasswordを入れて、 チュートリアルにある簡単な認証画面でテストしたのですが、 どうしても認証できません。 データベースはMySQLを使用して、select md5(‘password’) で取得した値を passwordに入れていました。 デバッグしてみると、auth.phpSecurity.saltで設定している ランダムの値が使用されていました・・・。 Security.saltの値プラス、フォームのpasswordの値をmd5に変換していたのです。 対応策は、事前に登録する値はselect md5(‘Security.saltの値password’) で登録するか、Cakeでaddするか、以下のように修正するかのようです。 Securityコンポーネントでは、saltを使用するかをtrueかfalseで設定できますが、 肝心の呼び出し元

    CakePHPのauth.phpでパスワードの認証ができない
  • ハッシュ関数の選択とハッシュ化処理

    CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数はデフォルトではSHA-1が使用されます。変更する場合は、Security::setHash($hash)を使用して(AppController.php内で)定義することができます。 ソース:/lib/Cake/Utility/Security.php // /app/Controller/AppController.php public function beforeFilter(){ Security::setHash( 'sha256'); } 各ハッシュ関数でハッシュ化した際の長さになります。(length固定なのでvarcharよりcharを指定したほうが処理コストが少なくなるでしょう。) 以下がCak

    ハッシュ関数の選択とハッシュ化処理
  • CakePHPのルーティングルールを変更してトップページにHello World!を表示してみた

    CakePHPのルーティングルールを変更してトップページにHello World!を表示してみた 2013年10月17日 サイト制作 CakePHP Warning: Trying to access array offset on value of type bool in /home/xs654077/daisukebe.net/public_html/wp/wp-content/themes/daisukebe/functions.php on line 75 CakePHPをインストールしトップページへアクセスすると、CakePHPの設定に関するいろいろが表示がされます。 今回はこのトップページの表示を「Hello World!」と表示されるように変更する方法を紹介します。 トップページ表示の仕組み CakePHPでは/app/Config/routes.phpでトップページへアク

  • CakePHPでデフォルトページの設定 - Qiita

    初期状態でトップページにアクセスした時に表示されるページ。 /lib/Cake/View/Pages/home.ctp この設定箇所は、/app/config/routes.php の下記の記述。 Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); この設定を任意のページに変更すれば表示画面が変わる。 また、ビューとレイアウトを変更するのはチェックページにもあるように、 以下の方法でも可能。 1.app/View/Pages/ に home.ctp を作って設置。 (To change the content of this page, create: APP/View/Pages/home.ctp.) ※ページ内のコンテンツ 2.app/View/Layouts/ に d

    CakePHPでデフォルトページの設定 - Qiita
  • 【CakePHP】レイアウト(Layouts)の使い方 | POPOTOO

    バージョン:CakePHP 2.x レイアウトにはヘッダーやフッターなど、全てのビューで表示される部分を記述していきます。 デフォルトのレイアウトファイルは下記になります。 app/View/default.ctp <?php /** * * PHP 5 * * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) * * Licensed under The MIT License * For full copyright and license information, please see the LICENSE.txt * Redistributions of f

    【CakePHP】レイアウト(Layouts)の使い方 | POPOTOO
  • 『CakePHPのデフォルトレイアウト「default.ctp」を読み解く』

    CakePHPに限らず多くのフレームワークは、レイアウトを制御し所定のフォーマットを各画面に適用する機能を持っています。 ちょっとしたデザイン変更をしたい場合やユーザーの設定によりテーマを切り替えさせたいといった場合、レイアウトの機能をうまく使いこなせればかなり効率化でき便利に使えます。 CakePHPのレイアウト機能でどのようなことができるのかは、デフォルトで用意されているレイアウトファイルを見てみると大体のことがわかってきます(ここでは、バージョン2.3.1を使っています)。 $cakeDescription = __d('cake_dev', 'CakePHP: the rapid development php framework'); ?> <!DOCTYPE html> <html> <head> <?php echo $this->Html->charset(); ?> <t

    『CakePHPのデフォルトレイアウト「default.ctp」を読み解く』
  • CakePHP 2.4 md5 で Auth認証 - Qiita

    概要 PHP 5.4 CakePHP Version 2.4.2 Auth コンポーネントをデフォルトでそのまま使うと、パスワードがソルト付きの sha1() で暗号化されてテーブルの値と比較される。 この暗号化処理を自分で自由に変更したい。 コアの動き class SimplePasswordHasher // ここでハッシュ化されている public function hash($password) { return Security::hash($password, $this->_config['hashType'], true); } class Security { public static function hash($string, $type = null, $salt = false) { // デフォルトだと、ソルトを文字列の先頭につけて sha1() で返す $s

    CakePHP 2.4 md5 で Auth認証 - Qiita
  • 認証 - 2.x

    This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release! 認証¶ class AuthComponent(ComponentCollection $collection, array $settings = array())¶ ユーザーを識別し、認証し、権限を付与することは、ほとんどすべてのウェブアプリケーションに 共通の機能です。CakePHP の AuthComponent ではそういったタスクを実行するための プラガブルな方法を提供します。AuthComponent により、認証オブジェクトと、ユーザーの権限を 識別・判定する柔軟な仕組みを作るための認可オブジェクトを組み合わせることができるように なります。 以降を読む前に¶ 認証

  • 【CakePHP】直接SQL(クエリ)を実行する | POPOTOO

    バージョン:CakePHP 2.2.2 CakePHPで直接SQL文を書きたい場合について。 SQLを書くことに慣れている人や、複雑な条件でデータを取得しようとすると findを使用するよりSQLを直接書きたい場合があると思います。 その場合には、下記のようにqueryメソッドを使用します。 $sql = " SELECT ....."; $return = $this->モデル名->query($sql); 上記はコントローラーで直接実行できますが、コントローラーとモデルに分けて書きたい場合は、 下記のように分けて書くこともできます。 ※個人的には、こっちの方が好きです。 ・コントローラー <?php class SampleController extends AppController{ public $uses = array('Sample'); public function

    【CakePHP】直接SQL(クエリ)を実行する | POPOTOO
  • 極めたいw CakePHPのルーティング | Creazy!

    先週のCakePHP勉強会で、akiyanさんが routes.php に関する発表をやっていて、今までになかったルーティング情報のまとめみたいな資料になっていて多くのBakerが目から鱗状態になったと思います。ボクもそんな中の一人ですが、忘れないうちに復習してみようとおもいます。 内容的には、 ・Routesの設定 :: 環境設定 :: CakePHPによる開発 :: マニュアル :: 1.2 Collection :: The Cookbook ・極める routes.php (CakePHP 1.2) : akiyan.com とかぶりますので、まずはそちらのページを熟読される事をオススメします。 また、routeの確認にはユニットテストが有効です。 shin1x1さんが詳しいエントリーを上げてくださったのでこちらも必読。 CakePHP routes.phpの確認はユニットテストで

    極めたいw CakePHPのルーティング | Creazy!
  • 2010-06-10 - 24時間CakePHP

    注意 この実装はクッキーにユーザ名とパスワードを保持させていますが、パスワードを保持させるのは大変危険なので、実際のアプリケーションで動かす場合は時限つきAuthorizeトークンを発行してそれを保持させる実装にするなど、クッキー盗聴対応を必ずしましょう。 トークンを使う実装に修正しました。(16:25) この実装は、クッキー盗聴対策のため、トークンを発行し、それをクッキーに保存します。 CakePHPのクッキーコンポーネントは賢く、Security.ciperSeedというキーを元に復号可能な暗号化をクッキーに対し施しているため、直に読めることはないのですが、それでも解析されたら丸見えになります。これを避けるため、パスワードを直接保存することがないようにしましょう。 ワンタイムトークンを使う実装に修正しました。(18:51) いつも同じトークンを発行してしまうと、再生(リプレイ)攻撃の脆

    2010-06-10 - 24時間CakePHP
  • CakePHP2.X Search Pluginで複数キーワード×複数フィールド検索 | 14時の間食

    安西先生、『キーワード1 キーワード2 …』のようなスペース区切りのキーワードが与えられた時、例えば『CakePHP 中古』だった時、「CakePHP」「」「中古」この3つのキーワード全てが含まれるレコードを抽出する検索がしたいです。 さらに、「CakePHP」「」「中古」この3つのキーワードがテーブル内のname, body, categoryのいずれかのフィールドに入ってたらヒットさせたいです。 もちろんnameに「CakePHP」、bodyに「」、categoryに「中古」など、それぞれのキーワードが1レコード内の各フィールドに散らばっていてもヒットさせたいです! …という貪欲な検索です。 とりあえず動いたのでコードを載せておきます。もっとスッキリさせたいですが…。妙案がありましたらコメントでアドバイスをいただけると嬉しいです。 とその前に、これはCakeDCのSearch

  • BaserCMS

    Webサイトを自由にカスタマイズできるCMS(コンテンツ・マネジメント・システム)です。 無料で使える国産のオープンソース・ソフトウェアとして、直感的な操作性と高いメンテナンス性、安全性を実現。 さまざまなサーバーで動作可能で、簡単にインストールできます。 固定ページやブログ、フォームをまとめて管理 メールフォームや新着ブログなどのプラグインを標準装備 国産のソフトウェアなので安心・安全のセキュリティ

    BaserCMS
  • 1