タグ

cakephpに関するcelt69cobraのブックマーク (36)

  • Qdmailコンポーネントを使って、GmailのSMTPサーバよりメールを送信する - 積み重ねた日々

    独自にSMTPサーバを用意していない状況下でCakePHPでメール配信プログラムを実装しようと思っています。で、GmailのSMTPサーバを使おうとしたんですが、ハマったのでメモしておきます。 コンポーネント QdmailとQdsmtpのコンポーネントをダウンロードして、app/controllers/components/に配置します。 ダウンロードdownload - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte ダウンロード - Qdsmtp-Simple SMTP Mailer for PHP コントローラ メール送信処理は、複数のコントローラで呼び出す可能性があるので、AppControllerクラスにメール用のパラメータを設定しておきます。 app/app_controller.php <?php c

    Qdmailコンポーネントを使って、GmailのSMTPサーバよりメールを送信する - 積み重ねた日々
  • CakePHPアプリケーションの基本的な設計指針 (3) - カスタムfindタイプ - - 24時間CakePHP

    イントロダクション 標準のfindの種類(first, all, count, threaded, neighbor, list)だけでは、ビジネスロジックに対応できないことがあります。 これに対するひとつのプラクティスとしては、カスタムfindタイプを定義することです。 この記事では、実際の開発を想定したリファクタリングの過程を通してカスタムfindタイプの定義の仕方と活用方法、その意義をご紹介します。 「次」の記事 例えば、カレントのレコードの「次*1」のレコードを取得したい場合、それに纏わる複雑な処理は、単純なqueryの発行だけでは済まないことがあります。 この「次」のレコードを探索するロジックを例に、ボブ*2がこれを実装していくお話をしましょう。 要件の定義 ボブの上司のサム*3は、クライアントの会社のサイトにブログモジュールを追加するプロジェクトの打ち合わせで、次の要件を定義し

    CakePHPアプリケーションの基本的な設計指針 (3) - カスタムfindタイプ - - 24時間CakePHP
  • はてなブログ | 無料ブログを作成しよう

    超絶品!死ぬまでに一度はべてほしい煮込み10選 ああ。いかにもインターネット!みたいなタイトルをつけてしまった。 「超絶品!死ぬまでに一度はべてほしい煮込み10選」て。読んでほしすぎて大仰な形容詞をつけて数字を入れて読み手の注意を引くタイトル、もうネット記事まるだしである。 でも、わかってほしい。…

    はてなブログ | 無料ブログを作成しよう
  • 8時間耐久CakePHP2 勉強会

    8時間耐久CakePHP2勉強会の資料。 http://blog.candycane.jp/archives/1200

    8時間耐久CakePHP2 勉強会
  • Welcome - 2.x

    CakePHP クックブックは、オープンに開発されている、コミュニティで編集可能なドキュメントのプロジェクトです。 ドキュメンテーションの品質、正当性、正確性の高さを維持することを期待しています。 右上の "Improve this Doc" (この文書を改善する) ボタンに注目してください。 このボタンは、あなたがドキュメンテーションの追加・削除・修正などの貢献が簡単にできるように、 該当ページの GitHub のオンラインエディタへ誘導します。 入門¶ ブログの作成¶ ブログチュートリアル を使用した入門。 基的なブログの構築の過程を通して、CakePHP の基を学びます。 規約¶ CakePHP の動力となっている、典型的な CakePHP のリクエスト と、 規約 を学びましょう。 コントローラ¶ コントローラはリクエストを取り扱い、調和の手助けとクライアントへのレスポンスの準

    celt69cobra
    celt69cobra 2012/01/26
    2.0和訳
  • PHP × Ajax = CMS » [CakePHP] Debugkit(デバッグツール)

    CakePHP / CodeIgniter / MySQL / HTL5 / CSS3 / jQuery を活用したWebシステム開発 Debugkitとは 10分程度で設置できる、CakePHPのデバッグツールのプラグイン。 Debugkitの設置方法 下記URLからファイル名の日付が最も新しいZIPファイルをダウンロードする。 http://git2zip.com/thechaw/debugkit/ ZIPファイルを解凍してできたdebug_kitというフォルダを、app/plugins以下に置く。 /app/config/core.phpのデバッグレベルを2に設定する。 Configure::write('debug', 2); 運営中の番環境でデバッグツールを使用する場合は、以下のように記述する。 (***.***.***.**のところに開発者のIPアドレスを入れる。) if

  • 【CakePHP】CakePHP Advent Calendar2010(day 7) : Tips for Routes | ECWorks Blog

    【CakePHP】CakePHP Advent Calendar2010(day 7) : Tips for Routes CakePHP Advent Calendar2010 の当番が回ってきました。 来はもっとかる~い内容でいくつもりでしたが、皆さんがっつりとやられているので、慌てて秘蔵のネタ(?)を引っ張り出すことにしました。まあとはいえ実際はそんなでもないので軽く読んでいただければ(笑)。 さて、Modelにまつわる話が多いようなので今回も違う話題にしましょう。Modelは今までTipsが出にくい仕組みの一つだったのかもしれないのですが、同じくなかなか情報として出回らないRoutes関連でも取り上げてみようと思います。 CakePHPであることを隠蔽する (CakePHP Advent Calendar 2010 2日目) でも取り上げられていましたが、CakeぽくないURLを

  • CakePHPでフィクスチャに惑わされずにテストを書く方法

    前回挙げたチュートリアルはやってみましたか? 快適なテストライフを送ってますか? テストケースをたくさん書いていると気づくのは、フィクスチャがメンテナンスの邪魔をするということ。 フィクスチャに初期データを定義すると、それを気にしながらテストケースを作ることになります。 これがとても面倒くさいんです。 これを解消すべく、今日はモックを使ったテストケースの書き方を紹介します。 モックとは SimpleTestのモックで参考になるのは、以下の書籍です。 Webアプリケーションテスト手法 著者: 水野 貴明 (著), 石井 勇一 (著), 新藤 愛大 (著), 岸田 健一郎 (著), 荻野 淳也 (著), 安井 力 (著), 田中 慎司 (著) 出版社: 毎日コミュニケーションズ 発売日: 2008/7/25 この書籍のp154にモックについて以下のように書いてあります。 モックを使うと

  • 1-byte.jp - CakePHPを使ったテスト駆動開発

    ブログ初ポストはCakePHPを使ったテスト駆動開発です。 CakePHPはユニットテストとしてSimpleTestに対応しています。 SimpleTestをインストールするだけで、モデルやコントローラ、シェル、ルーティングクラスなどのユニットテストが出来るようになります。 今日はこのCakePHPSimpleTestを使ってテスト駆動開発の流れを説明します。 ただ、僕自身テスト駆動開発を学んだのは去年のCake祭りなので、至らない点が多々あります。 もし何かあれば、コメントでご指摘ください。 今更感もありますが、この場を借りてCake祭りでテスト駆動の指導をしてくださった、@sizuhikoさんに感謝します。 開発手順 まずは開発手順を示します。少し細かいですが、テスト駆動では以下のような順で開発していきます。 設計する。 テストケースを書く。 テストケースをデバッグする。 コー

  • CakePHPの「OrderedBehavior」と「TreeBehavior」はマジで使うべき : akiyan.com

    CakePHPの「OrderedBehavior」と「TreeBehavior」はマジで使うべき 2011-12-20 あまり知られてなさそうだけど、マジで便利に使えるCakePHPのビヘイビアを2つ紹介します。 OrderedBehavior http://bakery.cakephp.org/articles/alkemann/2008/09/21/orderedbehavior-2-1 順序を管理するビヘイビアです。Webアプリケーションを作っていると、多くの局面で、 「順序を自由に入れ替えたいんだけど...」 という機能要望が上がります。DBの仕様としては順序を振ってソートするだけでよいのですが、愚直にDBを操作しようとするとすごくめんどくさいです。順序番号の振りなおしとか、うわーやってらんねー、ってなります。 そんなめんどくさい実装も、OrderedBehaviorを使えば、超簡

  • DCWiki

    2013-04-14 cis 2013-04-02 CandyCane|インストール方法 2013-02-17 プライバシーポリシー 2013-01-29 test 2013-01-20 Arduino 2013-01-18 KinoWiki:プラグイン/カタログ/outline 2012-12-08 AppleScript 2012-11-06 ペルソナ2罰 2012-09-04 LVM 2012-08-02 reveal-js &strlen()文字 SimpleTestはPHPUnitと比べてはるかに多くのテスト用メソッドが用意されています。ここではSimpleTestの基となるUnitTestCaseに実装されているテスト用メソッドの判定条件と、そのメソッドを使った実際に動作するテストケースを用意しました。これらのメソッドを利用して、テストの結果が特定の条件を満たしているかどうか

  • DBレプリケーションで負荷分散 - rytich's diary

    MySQLレプリケーションでmaster/slaveサーバをたててCakePHP1.2で振分をしてみます 参考URL: http://bakery.cakephp.org/articles/view/master-slave-support-also-with-multiple-slave-support db設定 まず database.php を編集します SELECT系はslaveサーバに接続するので $default で。レコード更新用に masterサーバを $master として追加設定しました app/config/database.php class DATABASE_CONFIG { var $default = array( // as MySQL slave server 'driver' => 'mysql', 'persistent' => false, 'hos

    DBレプリケーションで負荷分散 - rytich's diary
  • CakePHP Security コンポーネントのまとめ | Sun Limited Mt.

    トークンが一致しないと SecurityComponent の blackHole メソッドが実行されます。このメソッドでは header('HTTP/1.0 404 Not Found'); を出力して exit します。(画面は空白) 任意の処理を実行したい場合は blackHoleCallback でコールバック関数を指定します。 設定できるのは同じコントローラ内のアクションのみになります。 function beforeFilter() { $this->Security->blackHoleCallback = "securityError"; $this->Security->requireAuth('login'); } function securityError() { die("security error!"); } トークンチェックをするアクションを複数指定するとき

  • Think Twice · 検索条件を引き継ぐpaginate

    PHPとか連想とか一致検索の結果ページで次ページを表示する際にハマった。 どうやらCakePHPのpaginateでは、POSTの検索条件を引き継いで次ページへは行ってくれないらしい。 なので、またもや先人の方々の情報を参考にさせていただいた。 フォームから送信された値を、Paginationで引き継ぐ方法 - cakephperの日記(cakePHP1.2RC2ベース) フォームから送信された値をPaginatorに引き継ぐ方法(GET版) - jokiの日記 まずはコントローラでの処理。 最初の検索条件はPOSTでくるが、その後検索結果ページを遷移する際には検索条件をGETで引き継ぐようにするため、下記のように検索条件を受け取る。 /app/controllers/article_controller.php

  • CakePHPのFormHelperのGETメソッドとPOSTメソッドの違いではまった件 - kanonji’s diary

    プルダウンやラジオボタン、チェックボックスと、テキスト入力を組み合わせた、ちょっと複雑な検索画面を作っている時にはまりました。 ほとんど、フォームの入力値をAND検索するだけだったのでpostConditions()を使って作ってました。 検索画面なのでGETメソッドでと思って変更したら、生成されたinput要素のname属性のフォーマットが変わってしまい、postConditions()が使えない形になってしまいました。 確かに"post"Conditions()ってメソッドだけど、FormHelperの方がGETメソッドとPOSTメソッドで動きを変えるとは予想していませんでした。 一応、無理やりな回避策を書いてみましたが、正攻法や良い方法を知ってる人がいたら教えてほしいです。 環境 Mac Mac OS X 10.5.8(Leopard) MAMP 1.7.2 CakePHP 1.3.

    CakePHPのFormHelperのGETメソッドとPOSTメソッドの違いではまった件 - kanonji’s diary
  • Google検索のように『GET送信+ページング』をCakePHPで実現するには - すたら日記

    【CakePHP 1.3系】 最終更新:2011年12月07日 結論以下のようなURLを生成すればよい。 【通常】 1ページ目 http://example.com/posts/search?keyword=hoge 2ページ目以降 http://example.com/posts/search/page:2/keyword:hoge 【検索文字列にスラッシュが含まれる場合】 1ページ目 http://example.com/posts/search?keyword=hoge/fuga/piyo 2ページ目以降(スラッシュを独自にエスケープしている) http://example.com/posts/search/page:2/keyword:hoge~!fuga~!piyo 解説はじめは悩む必要はありません。 【ビュー】 echo $form->create('Post', array(

    Google検索のように『GET送信+ページング』をCakePHPで実現するには - すたら日記
  • CakePHPでコントローラーを複数のディレクトリに整理する方法 - yandod's blog

    大規模な開発に向いているといわれているsymfonyはディレクトリ構造が最初から3階層に分類されています。アプリケーションの規模が大きくなるにつれて増えていくファイルを整理する為のルールが最初から定められている形です。 project/ +-apps/ +-backend/ +-frontend/ +-modules/ +-HogeModule +-FugaModule +-MogeModule +-actions/ ←実際のコントローラー(アクション)はここに追加する 対するCakePHPはこういった階層は無く、コントローラーは controllersディレクトリにフラットに配置されています。ディレクトリがシンプルな分、把握しやすいとも言えますが規模が大きいアプリケーションの場合にコントローラーの数が増えすぎると扱い辛いという問題が起こります。 しかし実は簡単な設定を行う事でコントローラ

    CakePHPでコントローラーを複数のディレクトリに整理する方法 - yandod's blog
  • CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う : エクスギア Blog

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

  • CakePHP1.3系アプリのCakePHP2.0-alphaへの移行という茨の道を俺たちは登り始めたばかりだ - Yamashiro0217の日記

    表題の通りすでに動いている既存のCakePHP1.3系アプリのCakePHP2.0-alphaへの移行を試しにやってみた。他にもこの茨の道を登り始めた人情報くれくれ。 追記: CakePHP2.0へのmigrationツールの作成も行われてるらしいよ。これ動かしただけでは絶対に動かないと思うけどw https://github.com/cakephp/cakephp/blob/2.0/lib/Cake/Console/Command/UpgradeShell.php @cakephperさん情報ありがとうございました。 :追記終了 移行に際してはCakePHPの公式資料である2-0-migration-guideを参考にする。あとはソースを読む。フォースを感じる。などといった手段を取った。 ちなみに、簡単なアプリで試しただけなので、はまりポイントは他にも多々あると思われる。 また、僕のとこ

    CakePHP1.3系アプリのCakePHP2.0-alphaへの移行という茨の道を俺たちは登り始めたばかりだ - Yamashiro0217の日記
    celt69cobra
    celt69cobra 2011/09/11
    CakePHP1.3系アプリのCakePHP2.0-alphaへの移行という茨の道を俺たちは登り始めたばかりだ
  • 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); } ただ、コントローラで毎回このようなキャッシュヒットを確認

    celt69cobra
    celt69cobra 2011/07/27
    CakePHPでモデルキャッシュを利用する