Don't Code, Bake. An introduction to CakePHP ~PHP Hampshire Oct 2014David Yell
CakePHPで例外を投げた時のレイアウトファイルを変更する方法です。 やり方はいろいろあると思いますが、今回は、ExceptionRendererクラスのサブクラスAppExceptionRendererを新規に作成して、出力時にレイアウトファイルを変更してみます。 app/Lib/Error/AppExceptionRenderer.php1 2 3 4 5 6 7 8 <?php App::uses('ExceptionRenderer', 'Error'); class AppExceptionRenderer extends ExceptionRenderer { protected function _outputMessage($template) { $this->controller->layout = 'custom'; // ここでレイアウトファイルを指定
CakePHP 2.3.0がリリースされましたね。 今日の社内技術発表では、CakePHP2.3.0でのModel::find('first')の返り値の変更について紹介されていました。 CakePHP、ますます使いやすくなってように思います。 開発中システムのメモや気づいた点はどこで共有するか システムがだんだん動くようになってくると、ブラウザで画面を確認することが多くなります。 場合によっては、クライアントの人も開発中のシステムの画面を見ることがあるのではないでしょうか。 そんなときに見つけたバグやデザインの問題、その他気づいた点はどこで共有していますか? 関係者全員でRedmineやCandyCaneといったプロジェクト管理ソフトウェアでうまく情報共有がされているときは、それで全く問題ありません。 ただ、 「そこまで大げさでなくて良い」 「そういった環境がない」 「クライアントに覚え
CakePHPコアチームは CakePHP2.3.0 と 2.2.6 [1]が入手可能になったことをお知らせいたします。2.3.0-RC2のリリース以降、幾らかの改善と修正が施されました。 CakePHP 2.3 は安定版になりました 2.3.0は新しいバージョンであり、2.2.5以前と完全な互換性があります。このお知らせののち、すぐにご自身のプロジェクトをアップデートしたいようなら、必要ないくつかの修正を行うために、かならずBookの移行ガイド(英語)を読んでください。 以下は変更点の概要です: 認証 AuthComponentは愛用されましたが、アクセス権なしの場合にリダイレクトするのではなく適切なエラーコードを返す、といったステートレスな認証メカニズムを実装するのがもっと簡単になりました。実行時の動作を制御するために新しくAuthComponent::$unauthorizedRed
今日もお酒のまないんで、ひとつ記事かいてねることにします。本日もcakePHP2.1のお話です。 さて、設定ファイルでデータベースに持つ程でもない情報というのは、かつてconst.phpに書いてました。 ところが例えば男・女 とか、普遍的なものだったりあまり情報が書き換わらないものって結構あります。 で、設定ファイルが結構カオスになってたりします。 今回は、設定情報もこんなふうに持つと良いよってことで、https://github.com/cakephp/datasources/tree/2.0/Model/Datasource ここからArraySource.phpだけをいただきます。そんでapp/Model/Datasourceにポロリと入れます。 次に、設定です。database.phpにこんな記述を足します。既存のデータベースの設定に追加してくださいね。 var $ArraySou
バーチャルフィールド¶ バーチャルフィールドは任意の SQL 表現を作り、それをモデルのフィールドとして割り当てることを 可能にします。これらのフィールドは保存することはできませんが、 読み込み操作時にモデルの他のフィールドと同じように扱われることになります。 また、モデルの他のフィールドと同じように、モデルのキーを元に配置されます。 バーチャルフィールドの作成¶ バーチャルフィールドを作るのは簡単です。各々のモデルに、フィールド => 式 という内容の配列を用いた $virtualFields プロパティを定義することができます。MySQL を用いたバーチャルフィールドの 定義の例としては、以下のようになります。
CakePHPのpaginateで別名をつけた時に取得結果が使いにくかったのでメモ 通常 $this->paginate = array( 'ErrorLog' => array( 'conditions' => array( 'ErrorLog.delete_flag' => false ), 'fields' => array( 'ErrorLog.email', 'count(ErrorLog.error_log_id) AS error_count', ), 'group' => 'ErrorLog.email', 'limit' => 20 ) ); のように別名をつけると Array ( [0] => Array ( [ErrorLog] => Array ( [email] => hugahuga@example.ne.jp ) [0] => Array ( [error_c
CakePHP Advent Calendar 2012 20日目の記事です。 19日は@konsanさんの「「Chosen + Search + Collectionable」の3つのプラグインの組み合わせ」でした。 Chosenは使ったことなかったです。select系のjQueryライブラリだと、最近Chained Selects jQuery Pluginを使ってみたりしました。 あ、すみません。3回目です。 細かすぎて伝わらないCakePHP Pluginシリーズということで、次はRoutine pluginを紹介したいと思います。 https://github.com/k1LoW/Routine READMEすらないところからも、「他人に紹介しても伝わらないだろうな」と思っていることがおわかりいただけるかと思います。 ただ、自分は「安心して」頻繁に使っています。 この「安心して」
CakePHP Advent Calendar 2012 の19日目のを担当します。@konsanです。 前日の18日目はKaz Watanabe(@kaz_29)さんの「ACL PluginでACL再入門」でした。 私もACLを使っているサイトがあります。非常に興味をもって読まさせて頂きました。後でいろいろと使わせて頂きたいと思います。 さて今回は、「Chosen + Search + Collectionable」の3つのプラグインの組み合わせで使ってみましたので説明したいと思います。 Selectboxを使いやすくするjQuery Plugin ChosenのCakePHPプラグインがありましたので使ってみました。
CakePHP Advent Calendar 2012 18日目の記事です。 昨日は、@msngさんのCakePHP の Configure クラスで最も悩ましい点を解決する方法 でした。確かにConfigureはちと長いですよね(^^;。 当初、BDD Pluginについて何か書こうと思っていたのですが、なかなか時間が取れず記事に出来るほどネタがたまっていないので、ストックしてあったネタからACL Pluginについて書きたいと思います。ACLに関しては、@ootatterさんの7日目の記事、ACL.phpとACL.iniについてでも取り上げられていますのであわせて読むと良いかと思います。 ACLは難しい 「ACL難しい」という話は結構良く聞きますし、実際僕もそう思っていました。今まではあまり細かな権限管理を要求される事も無かった事もあって、ACLは使わずに簡易的な権限管理機能を自作し
CakePHP の Configure クラスで最も悩ましい点を解決する方法 #cakeadvent2012 2012年12月17日 10:11CakePHP CakePHP Advent Calendar 2012 17日目の記事です。 CakePHP 使いのみなさんこんにちは。 一番好きなクラスは何ですか? もちろん Configure ですね。 Configure はできる子 Configure は便利ですね。 値だけじゃなくて配列も格納できるし Configure::write('User', array( 'name' => 'msng', 'url' => 'http://www.msng.info/' )); 格納された配列の要素をドット区切りで指定して書きかえたり Configure::write('User.name', 'msng0413'); 直接呼び出したり ech
はじめに CakePHP Advent Calendar 2012 7日目の記事です。 昨日は@tkykmwさんの「CandyCaneをHerokuにインストールする」でした。 Heroku使いたいと思いました! さて、ネタは何にしようと思いつつacl.phpを改めて見てみようと思いたってのエントリー。 以外に(?)情報が少ない気もしますがどうなの!使われてるの?とか思いながら書いてます。 データベースは使わないで簡単に権限管理したいと思ったのがきっかけではありますが… 以下よく出てくる単語です。 ARO(Access Request Object ) – ユーザーやグループ ACO(Access Controll Ojbect) – アクセス権の対象 この記事では ARO –> ユーザーのロール ACO –> コントローラーのアクション として書いてます。 acl.phpのExample
ようやく、自分の中でテスト駆動開発するのが「デフォルト」になってきた。 そして今回、初めてMVCなシステムのテストを書いていることに気づいたので、そのポイント(一部、CakePHP限定)を書いておこうと思う。 Controllerのテストは書きにくい? テスト駆動開発初心者でも、getter/setterなメソッドのテストは書きやすいと思われる。なぜなら、入力と出力が分かりやすいから。 しかし、Controllerのactionなメソッドは書きづらい/書けないと思っている人が多いのかなと思う。入力→出力の課程でいろいろ(むしろ、ありとあらゆることを?)やるから。 そこはやはり、モノの見方を改めるに限る。 「Controllerはテストが書きづらい/書けない」じゃなく、「テストが書けるようにControllerを書く」だ。 そもそも、テスト駆動開発自体がそういう思想の元に行われていると自分は
PHP Advent Calendar 2012の4日目を担当します@mawatarinです。前日は@wa_teradaさんでした。内容は、CakePHPのbootstrap.phpとcore.phpの翻訳です。しかも全訳!大変、有り難いですねー。 bootstrap.php と core.php を詳しく見てみる。(bootstrap.php編)bootstrap.php と core.php を詳しく見てみる。(core.php 編)さて、今日もCakePHPネタです。過去のAdventCalendarでも、取り上げられたことのあるネタですが、その辺は気にせずに、CakeDCのSearchプラグインを使って、CakePHP製のWebアプリに簡単に検索機能を実装する方法をまとめました。目的毎に章立てしておりますので、チュートリアルとして、使っていただけると思います。 都合上、ソースコード
前職を退職してもう半年以上経ってしまいました。おかげさまで、レガシーなコードとのバトル等色々お仕事しています。 さて、先日のPHP Matsuri2012での@ryuzeeさんの発表を聞いて、開発環境や手法を改善するべく、今月から始まったプロジェクト用の環境を構築しています。 CakePHPは最新で! CakePHPの最新stable版は 2.2.3 ですが、既に 2.3.0-beta が公開されています。幾つか2.3.0-betaの機能で使いたかったものがあったのと、今回のプロジェクトのリリース時期が来年の5月という事もあって、2.3.0-beta を使って開発をしています。来年の5月なら2.3.0Stable版がリリースされるんじゃないかとの読みです(^^;さて、どうなるでしょうかw? 出来る限り公開されているPluginを使う 前職の職場では、ある程度蓄積された自前のPluginがあ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く