タグ

CakePHPに関するthleaveのブックマーク (20)

  • CakePHPのデータベースを開発環境と本番環境で切り分ける方法

    CakePHPには利用するデータベース定義を複数定義しておける機能がありますが、その使い分けに関するアイデアです。 よくある解決策 よく開発環境と番環境で自動的にデータベース接続を切り替えられるように、以下のようにDATABASE_CONFIGクラスのコンストラクタを改良したり、AppModelクラスのコンストラクタに現在の環境を判別できるような設定を書いたりするアイデア多く見かけられます。 DATABASE_CONFIGクラスの改良 class DATABASE_CONFIG { public $default = array(); // 公開用 public $production = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'production.mysql.server', 'login' => '

    CakePHPのデータベースを開発環境と本番環境で切り分ける方法
  • 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開発者が知るべき10のこと

    先日、こんな記事が上がっていました。 Android開発者が知るべき10のこと この記事でまとまっているのは、Android開発において必要な10の項目です。 インターフェースの設計から、データの取り扱いまで。 AndroidはモバイルデバイスのOSで、CakePHPは単なるWebフレームワーク。 しかし、予め用意されたルールやAPIを活用する点は同じです。 つまり、フレームワーク全般において、開発者が知るべきことをまとめることが出来るはずです。 ここでは、私が良く利用するCakePHPフレームワークについて、開発者が知るべき10のことをまとめます。 1. CakePHPで良いのか CakePHPを使う際に、知るべきことその1。 それは、あなたは当にCakePHPを使うべきなのかということです。 現在、あらゆるフレームワークが溢れ返っています。 Ruby Ruby On Rail

  • CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う : エクスギア Blog

    CakePHP1.2から新たにBehavior(振る舞い)クラスが実装され、モデルに共通の処理を定義することが可能になりました。 今回はBehaviorを使ってモデルの各メソッドの結果を自動的にキャッシュするクラス(CacheBehavior)を検討してみました。 CakePHPでは標準でビューキャッシュをサポートしていますが、Cacheクラスを利用することで簡単にキャッシュ機能を組み込むことができます。 ソースコードは少し長いので、一番最後に記述することにします。 CacheBehaviorの目的 CakePHPでの開発では、 ・まず動作するアプリケーションを構築する ・パフォーマンス上ボトルネックになっている部分のチューニングを行う という手法が一般的だと思います。 そこで、CacheBehaviorはチューニング時に実装していくことを想定し、構築時のソースコードになるべく

  • http://blog.quall.net/program/628/

  • Useful hidden functions – DerEuroMark

    DerEuroMark A blog about Frameworks (CakePHP), MVC, Snippets, Tips and more There are some handy cake functions you might not have used or even heard of, yet. Debugging Most beginners use print_r() to debug variables. Without <pre> tags its really hard to read, though. Use pr($var) or debug($var) to debug this variable and output its content. very useful inside functions, or in the view (if you do

  • むしの手記。 » before,after系のフックメソッドの動きを再確認

    なんとなくコントローラのbeforeFilter, afterFilter, beforeRender、ヘルパーのafterLayoutあたりの順番が気になったので試してみた。 コントローラ。お分かりの通り、焼いたものにメソッド書いて、ヘルパー追加しただけです。 <?php class UsersController extends AppController { var $name = 'Users'; var $helpers = array('Html', 'Form', 'Second', 'First') ; function beforeFilter(){ echo "beforeFilter<br>"; } function afterFilter() { echo "afterFilter<br>"; } function beforeRender() { echo "be

  • http://blog.quall.net/program/827/

  • PHP/CakePHP/CakePHPのログをLog4phpに切り替える - Happy Engineer Life

    イベント・セミナー集客プラットフォーム 「こくちーずプロ」を使えば、驚くほど簡単で安全なイベント告知・集客ができます。誰でも使えるシンプルさ、とことんまでイベント集客の手助けができる拡張性、大規模なイベントの大量な申し込みも安心して受付ができる高機能を併せ持っています。 一般的なイベントだけでなく講演会や、定期的に開催する地域セミナー、クローズドな社内勉強会、大規模な学会など様々なイベント形態にあわせた募集が可能です。 サービスのトップへ セミナー会場検索サービス 「こくちーずスペース」は、イベント・セミナーの開催に適したセミナー会場(貸し会議室・ホール)を所有する全国2,700箇所以上の公共施設を掲載!リーズナブル・格安で安心して利用できる貸し会議室やレンタルスペースを中心にイベントの規模や設備など目的にあった施設を簡単に検索できます。 今まで見つけにくかった公共施設の詳細な情報をまとめ

    PHP/CakePHP/CakePHPのログをLog4phpに切り替える - Happy Engineer Life
  • CakeLogをスマートにカスタマイズする方法 - kaz29

    CakePHPのログ出力処理は結構簡易なもので今ひとつ使いにくいです。また、「内部的に flock してるからアクセスが多いと遅いので実運用では使わない方が良いよ!」という話も聞いていたので、うちではカスタマイズしたものを使っています。 ROOT/cake/libs/cake_log.phpを書き換えてしまえばそれでも良いのですが、COREのコードを書き換えずにカスタマイズする方法を見つけたのでまとめました。 ログ出力処理は、objectクラスのメソッドとして実装されていて実際のコードは以下のようになっています。 <?php // cake/libs/cake_log.php ... function log($msg, $type = LOG_ERROR) { if (!class_exists('CakeLog')) { uses('cake_log'); } if (is_null(

    CakeLogをスマートにカスタマイズする方法 - kaz29
  • [CakePHP] Setクラスを使ってコード量を減らす | バシャログ。

    iPhoneを買って良かったことの半分はGoogle Mapsが歩くときのナビになることです。tanakaです。今回は、CakePHPを使うときにSetクラスを使ってコード量を減らすサンプルを紹介します。Setクラスは、配列を多用するCakeだからこそ「使える」ライブラリといえます。 配列の深い場所から値をとりだして連結する Set::extract() 例えば、ブログアプリを作っているとします。ブログの記事にはタグを付けることができて、タグのデータは次のようにDBから取り出したとしましょう。 Array ( [0] => Array ( [Tag] => Array ( [id] => 1 [name] => PHP [created] => 2009-09-15 21:41:22 ) ) [1] => Array ( [Tag] => Array ( [id] => 2 [name]

    [CakePHP] Setクラスを使ってコード量を減らす | バシャログ。
  • Stupid CakePHP Controller Tricks — @TheKeyboard — The ramblings of a grumpy programmer

    A big shout-out to my favourite typist for showing me some of these gems, which I will gladly share with you So, one of the things that often happens in CakePHP is that you will have multiple values to send to your view, so you might have code that looks like this: ~~~ $this->set('user', $this->User->read(null, $id)); $this->set('foo', $foo); $this->set('bar', $bar); $this->set('baz', $baz); ~~~ S

  • CakePHP mysqlのfulltext使うよー - てきとう

    ヒダカさんお誕生日エンダァご結婚おめでとうございマシータ。 なぜかわたくしがデコメールもらいました。おめでとうって。僕じゃないぞ。 $result = $this->Hoge->find('all', array('conditions' => "MATCH ( hogehoge ) AGAINST ('BEAT CRUSADERS')")); //複数条件でも無理矢理 $result = $this->Hoge->find('all', array( 'conditions' => array('type'=>'mogemoge', "MATCH ( hogehoge ) AGAINST ('BEAT CRUSADERS')" ) )); //AND検索の場合 $result = $this->Hoge->find('all', array( 'conditions' => array(

    CakePHP mysqlのfulltext使うよー - てきとう
  • CakePHP 1.3のキャッシュやスラッグ(Inflector::slug)に要注意 - (DxD)∞

    事例 例えば、以下のような場面を想定してみます。 ビューから「element」というエレメントを複数箇所で呼び出す(あるいは、複数のビューから同じエレメントを呼び出す)。 一方では「$vars1」を渡し、もう一方では「$vars2」を渡す(呼び出し箇所ごとに異なる値を渡す)。 エレメントの出力をそれぞれ別々にキャッシュする。 このような場合、エレメントの呼び出し時に、キャッシュのキーとしてそれぞれにユニークな文字列を指定することになっています。 <?php e($this->element('element', array('cache' => array('time' => '+1 hour', 'key' => 'element_1', 'vars' => $vars1))); ?> <?php e($this->element('element', array('cache' =>

  • https://www.multiburst.net/sometime-php/2010/01/cakephp-using-cache-on-models/

  • blog.katsuma.tv

    Cakeでキャッシュ周りの調査をしていたら、モデルのメソッドの実行結果をキャッシュさせるbehaviorがあるのを見つけました。 CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う これが相当いい感じなので、その利点や導入方法についてまとめておきたいと思います。 コントローラのスリム化 MVCモデルでキャッシュを利用しようという話になると、大抵Controllerでキャッシュヒットの有無を確認して、ヒットしない場合キャッシュをリセットする、というロジックがまず頭に浮かぶと思います。 if (($posts = Cache::read('posts')) === false) { $posts = $this->Post->find('all'); Cache::write('posts', $posts); } ただ、コントローラで毎回このようなキャッシュヒットを確認

  • CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う : エクスギア Blog

    CakePHP1.2から新たにBehavior(振る舞い)クラスが実装され、モデルに共通の処理を定義することが可能になりました。 今回はBehaviorを使ってモデルの各メソッドの結果を自動的にキャッシュするクラス(CacheBehavior)を検討してみました。 CakePHPでは標準でビューキャッシュをサポートしていますが、Cacheクラスを利用することで簡単にキャッシュ機能を組み込むことができます。 ソースコードは少し長いので、一番最後に記述することにします。 CacheBehaviorの目的 CakePHPでの開発では、 ・まず動作するアプリケーションを構築する ・パフォーマンス上ボトルネックになっている部分のチューニングを行う という手法が一般的だと思います。 そこで、CacheBehaviorはチューニング時に実装していくことを想定し、構築時のソースコードになるべく

  • CakePHP(1.2)でJOIN先のテーブルの条件をコントローラー側で変更する - めも帖

    CakePHP(1.2)を利用していてmodelでhasManyなど複数のテーブルをJOINしている時に、JOINしたテーブルについて、limitや、orderを決めたい時があります。 例えば表示のときに、ユーザー(ユーザーテーブル)一覧があり、そこにユーザーの最新のコメント(コメントテーブル)を1つだけ表示したいとか。 CakePHPでコントローラからfindでデータを取り出すときに、 <?php $this->[モデル名]->find('all', 条件の配列) ?> とできるのですが、条件の配列でJOINしたテーブルの条件を決めることができません。どうやったらできるんだろう?と調べてみました。 たとえば、JOIN先のモデルを1つだけ取り出したい場合は、下記のように書きます。 <?php $this->[モデル名]->hasMany['JOINしたモデル名']['limit'] = 1

    CakePHP(1.2)でJOIN先のテーブルの条件をコントローラー側で変更する - めも帖
  • 1.2・検索結果をpaginateする方法 - せとっちの備忘録(技術系)

    cakePHPのpaginationは確かに便利。 あのインデックスを作ったりは当にめんどうなので助かるのですが、 それをちょっと複雑に使おうとすると一苦労。 ていうか検索した結果をpaginateしたいと思うのは普通だと 思うんですけど、その割には使いにくい…。 しかもcakePHPのバージョンでまるで動作が異なるようで、 Webの情報がばらんばらんなんですね。 ということで、自分なりにまとめて書いてみようと思います。 (cakePHP1.2.4.8284) インデックス paginateは二つからなる(コントローラ側・ビュー側) paginateはSQLを作ってくれるコンポーネントに過ぎない 検索条件は一度渡しただけでは消えてしまうので、保存する必要あり ヘルパーのsortの動作は微妙なので要注意 sortでascとdescを切り替える際の注意 sortした際にページを1ページに戻す

    1.2・検索結果をpaginateする方法 - せとっちの備忘録(技術系)
  • CakePHP1.2 RC2 Paginate で検索条件をURLで引き継ぐ - 忍び歩く男 - SLYWALKER

    今、1.1で作ったものを1.2RC2に変更しています。 その中で気づいた事の覚え書きってことで ページまわりは特に違うので (そもそも1.1にはありませんが・・・) 検索条件なんかは、セッション使ってもいいんだけど、 携帯のことを考えると(てか、ドコモ)URLで次のページに引き継ぎたい。 controllers/users_controller.php <?php class UsersController extends AppController { public $name = 'Users'; function index() { $this->paginate = array( 'recursive' => -1, ); // 基条件 $conditions = array( 'User.hidden' => 0, ); $users = $this->paginate('Us

    CakePHP1.2 RC2 Paginate で検索条件をURLで引き継ぐ - 忍び歩く男 - SLYWALKER
  • 1