CakeLive is online conference for Japanese CakePHP bakers! Please follow me @cakephplive
ACL checks can be costly and would benefit from caching. One approach would be to use Cake's Caching system, as implemented in http://bakery.cakephp.org/articles/view/caching-acl-permissions-with-cachedaclcomponent. Presented here is a different approach, where the cache is stored using Session. How it works Results of ACL checks are stored in the Session variable 'Acl'. Every time an ACL check is
What you get Expert curated premium domain name Professionally crafted logo design Guaranteed transfer or your money back This unique invention takes creative inspiration from words like "trivia" and "trove" for a dynamic and intriguing character. Trivist has a snappy and easily recognizable sound with fantastic appeal for a broad array of brands. Possible uses: Creative and distinct. Capable and
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 Advent Calendar 2010の6日目の記事です。 CakePHP Advent Calendarって何?という方はこちらへ。 CakePHP Advent Calendar 2010を開催! CakePHPに関するtipsを1日1つ、順番に紹介するということなので、私はGitとCakePHPの活用について書きます。 恐らく、これはCakePHPに限らずあらゆるフレームワークで有効なtipsです。 CakePHPを初めとするフレームワークを長く使っていると、色々と面倒なことが起きてきます。 フレームワークのバージョンアップ 外部ライブラリのバージョンアップ 複数プロジェクトにおけるコードの共通化 “フレームワークのバージョンアップ“は重要です。 先日、こんなバグも発見されましたしね。 CakePHPのPHPコード実行の脆弱性を使ってCakePHPを焦が
In this tutorial, i will show you how to implement jQuery UI’s autocomplete widget in cakephp. The script in this tutorial is copy paste from tutorialzine article “A Simple Movie Search App w/ jQuery UI” . We are using a MySql database containing a users table. When you start typing a user name in the text box of the search form, an AJAX request is sent to controller. The controller returns a
イントロダクション CakePHPの使い方は多種多様で、もちろん一つのやり方が正解ということはありません。 しかし、CakePHPはフレームワークであるわけで、想定された使い方以外ではその真価をなかなか発揮できません。 CakePHPにおけるモデルは、ビジネスロジックを置くレイヤとして想定されています。 そして、バリデーションを用いることによって保存のロジックを構築するということも想定されています。 これは、何故Cookbookで紹介されるコードが、ほとんどバリデーションとModel::save()の組み合わせであるかということかの答えにもなっています。 悪い例 あなたはModel::save()の代わりとして、以下のようなadd()メソッドをモデルに定義しているかもしれません: <?php class Post extends AppModel { var $validate = arr
2010/11/13 に出たらしい http://bakery.cakephp.org/articles/markstory/2010/11/13/cakephp_1_3_6_and_1_2_9_released を読んでびっくりしたんですが、 Twitter を軽く検索した限りだと CakePHP ユーザでない僕が気づいているのに (日本の) CakePHP ユーザさんたちがどうも気づいていないっぽいのでわかりやすくまとめてみることにしました! CakePHP には任意の PHP コードが実行できる致命的な脆弱性があります! 影響のあるサイト結構ありそうですが悪用厳禁です! ※通常リリースの告知のなかにこんな致命的な脆弱性に関する情報を思いっきりわかりにくく書いちゃうのはひどいなあと思うので、ユーザの方は CakePHP に文句を言うといいと思います。僕は CakePHP ユーザじゃない
この記事はCakePHP1.2系またら1.3系を対象としており、CakePHP2.0系では別のアプローチになります。 不思議なことにCakePHPアプリの開発でHudson使って継続的インテグレーションしている事例をほとんど見たことがないんだけど、個人的にはPHPアプリだって全部HudsonでCIすべきと思っているのでやってみた。 (ちなみに最近までphpUnderControlでCIしていた) 概略 CakePHPアプリでCIやろうとして問題になるのは、 CakePHPでのテストライブラリがSimpleTestでありJUnit互換のテスト結果を出力できないこと さらにSimpleTestでは一応XMLでの結果出力ができるのに、CakePHPのreporterにcake_xml_reporterとかが無くて、html出力かテキスト出力しかできない という2点にあるので、この2点をクリアする
あれから1週間経ってしまいましたが、CakeFest2010@Chicagoで発表してきました。 なぜ発表しようと思ったかは、「CakeFest2010で発表してきます」に書きました。 今回はカンファレンス1日目の午前中に1時間のセッション枠を貰って、MongoDBをCakePHPから使う方法というタイトルで発表。 内容は前半にMongoDBとは何か、何がよいのか、ドキュメント指向とは、という内容を話し、後半にPHPのPecl Mongoの話と、CakePHPからMongoDBを扱うデータソースの話をしました。このデータソースは以前自分が開発したもので、今はAndyさんと一緒に開発してます。 CakePHPからMongoDBを扱うという話の前に、軽くデータソースの利点や必要なメソッドを話し、最後にデモを2つやりました。デモは簡単なCRUDを実現する画面のデモと、削除履歴を管理するデモ。 削
/** * 前振り開始 */ 突然ですけど最近禁煙を始めまして、これが意外と続いています。ぶっちゃけ最初の4日間を乗り切れば余裕なんですが、その4日間が結構辛いんですよ。「何かをやめる」というのは実は何かを作ったり何かを続けるより明確な目標を立てにくいんですよね。禁煙も継続といえば継続なんですが、「一日に一回何かをする」というタチの問題ではないので「目標の設定をしにくい = 達成感を得にくい」という式が成り立つのです。 じゃあどうやって禁煙を続けているか? いろいろな方法があるのですが、一番大きいのは「禁煙を身近な人達に宣言したこと」です。彼女や同僚に宣言したのはかなりデカくて、ここで嘘ついたらちょっと人間としてアレな人になっちゃうんじゃないかという危機感とプライドが自分を支えてくれます。身近な人に宣言するのはかなり大きな効果を得られることが分かりました。 逆に「ありったけの遠くの大勢の
CakePHPで簡単に例外をハンドリングしたいな〜と思って検索したところ、Coreのdispatcher.phpに手を入れる以下の様な方法が数件引っかかった。(※以下2つはどちらも動作未確認) CakePHP 1.2 (line 227辺り) try { $output = $controller->dispatchMethod($params['action'], $params['pass']); } catch (Exception $e) { $this->log($e->getMessage()); ... } 1.3ではこんな感じになるかな。 CakePHP 1.3 (line 204辺り) try { $output = call_user_func_array(array(&$controller, $params['action']), $params['pass']);
モダンなPHPの開発環境の構築方法をみていて、「はやく5.3.xに慣れないとなー」とか思っていたら、 "アプリケーション以下に lib/ などとディレクトリを作って、その中に pear コマンドなどでパッケージを入れる+ include_path を調整するのが良い(まあ、だいたいフレームワークがやってるよ)。 <中略> 余談だけど、Ethnaなら pear-local コマンドってやつがあるよ!" という記述が。 なんだってー!CakePHPにはそんな便利なコマンドない! ということで作ってた。 pear_local app/pluginsにディレクトリを展開して cake pear_local install Net_UserAgent_Mobile で、使用可能。 app/vendors/pearにライブラリがインストールされてapp/config/bootstrap.phpに読み込
New for CakePHP 1.3 is the ability to create and use custom route classes for your application’s routing. In the past the router did double duty, managing route collections and routes were just arrays. In 1.3 Router underwent some surgery and CakeRoute was extracted as an object to represent a single route. While Router was left as a manager of routes. This also opened up new space for creating cu
nginx+memcachedがめちゃ気になったので試してみました。 元ネタは下記です。 A 53,900% speedup: Nginx, Drupal, and Memcache bring concurrency up and page load time way down | TechnoSophos nginxをリバースプロキシに利用した構成で、バックエンドの出力をmemcachedにキャッシュしておけば、次回リクエストではnginxがそのキャッシュを読み取ってそのまま出力してくれます。 つまりバックエンドにリクエストを経由させずにnginxから即出力するのでかなりの高速化が見込めるという優れものです。 リンク先ではバックエンドにDrupalを利用していたのですが、ここではCakePHPを利用してみます。 1. 全体構成 リバースプロキシにnginx(Port: 80)を使い、バ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く