タグ

cakephpに関するkazukichopのブックマーク (23)

  • 誰でもできるサービスレイヤの実装 - 24時間CakePHP

    イントロダクション CakePHPでは標準でサービスレイヤを提供していません。 しかし、CakePHPはフレームワークとしてその基礎部分は十分に提供してると言えます。これはアプリケーション側で実装すべきでしょう。 規模が一定を超えるアプリケーションではサービスレイヤの効能は特筆すべきものがあります。 それは「何をしているか」を端的に表すことができ、開発初期段階において「何が必要か」を明確にし、更にテストを容易にします。 また、トランザクションのサポートもサービス単位で実装することによって、明確に「1サービス1トランザクション」が表現できます。 サービスをモデルとして実装する 上記のサービスモデルは非常に単純化されたサービスモデルの一例です。 これは各モデルのマジックメソッドによる呼び出しを提供します。 saveNewArticleはその例で、使うモデルを一々定義する必要はありません。 コン

    誰でもできるサービスレイヤの実装 - 24時間CakePHP
  • CakePHPでフィクスチャに惑わされずにテストを書く方法

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

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

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

  • CakePHP開発をもっと効率化する為のvimの設定 - さかなチキンぱん。

    ブログを移した為記事を削除しました。 新しいページへどうぞ

    CakePHP開発をもっと効率化する為のvimの設定 - さかなチキンぱん。
  • http://www.cpa-lab.com/tech/081

  • Ktaiライブラリ入門 - cakephperの日記(cakePHP1.2ベース)

    cakephp 1.2.6で開発してます。 Ktaiライブラリを使ってみました。そのメモ お手軽に携帯の対応ができるのでオススメです。ライブラリの公開感謝です! 画面出力はSJIS-winで、Cake側は全てViewファイルも含めてUTF-8です。モバイル用のコントローラは独立させてます。 画面出力の文字コード変換は、ヘルパー側でやるようなので、絵文字使わなくてもヘルパーの設置は必須です。vendorsは/app/vendorsじゃなくて、appと同じ位置にあるvendorsディレクトリなので注意が必要です。 1. ktai libraryをダウンロードして設置 ここからダウンロード。 下記のように設置 /app/app_controller.php ← 既存ファイルがある場合は、redirect()の内容だけをコピー /app/controller/component/ktai.php

    Ktaiライブラリ入門 - cakephperの日記(cakePHP1.2ベース)
  • CakePHP core.phpの設定をbootstrap.phpに書く

    CakePHPでDebug Levelなどの設定を変更する際は、core.phpを修正するのが一般的です。インストール直後にSecurity.saltを変更するのはお馴染みですね。 そんなcore.phpですが、実はこの設定はbootstrap.phpに記述してもokです。例えば以下のようにDebug Levelをbootstrap.phpに記述するとDEBUG=0として動作します。 [app/config/bootstrap.php] Configure::write('debug', 0); coreはそのままで、差分をbootstrapに この方法で何が嬉しいかと言うと、デフォルトの設定をcore.phpに残したまま、変更すべきものだけをbootstrap.phpに書くということができるという点です。 変更したものがはっきり分かりますし、元の設定がどうだったかをすぐに確認することがで

  • CakePHP内の処理を理解する

    はじめに PHPの世界ではフレームワークがさかんに発表され、次から次へと新興勢力が現れてきます。そんな中で大きなコミュニティに発展しているのがCakePHPフレームワークです。一部では、開発環境をいったんCakePHPからRuby on Railsに移行したものの、再びCakePHPに戻ってくるという「CakePHP回帰現象」も起こり始めています。CakePHPは、手軽に利用できるPHP言語にぴったりの「手軽に利用できるフレームワーク」です。フレームワークとは、先人の知恵をまとめ上げたものと言うことができます。その中にはどんなノウハウが蓄積されているでしょうか。PHP4/PHP5で使用できるRails風フレームワークCakePHPを使って、フレームワークの処理の流れを調べてみましょう。 対象読者 この記事は、CakePHPでの開発を始めた方が対象です。CakePHPに関する基的な知識に関

    CakePHP内の処理を理解する
  • よく使う独自バリデーションルールをプラグインのbehaviorにまとめる - cakephperの日記(CakePHP, Laravel, PHP)

    CakePHP1.2.3を利用しています。 今までは「独自のバリデーション関数を追加(日語の文字数チェック)」で書いたように、独自バリデーションルールをapp_modelとかに書いてモデルで使いまわしてたんですが、そろそろ汎用的なものはプラグインでまとめて複数プロジェクトで統一して使えるようにしたいと思い移行しました。 プラグインのbehaviorに独自バリデーションルールをまとめて、モデルから利用するまでのTipsです。 まずは、プラグインに関してはSlywalkerさんのCakePHP勉強会@tokyo #4の発表資料に目を通しておくと理解が早くなります。 http://d.hatena.ne.jp/slywalker/20090523/1243059244 プラグインの場所は、app/plugins以下が基ですが、複数プロジェクトで使いまわすので任意のディレクトリにした方が楽です

    よく使う独自バリデーションルールをプラグインのbehaviorにまとめる - cakephperの日記(CakePHP, Laravel, PHP)
  • 極めたい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!
  • CakePHP私見チュートリアル - 動作の仕組みの概要

    前回、cakePHPのファイル構成について簡単に説明しました。 今回はそれに基づいて、それらがどのように動くかをまとめてみます。 まとめたものが下の図です。 点線の左側がcakePHPで構築されるシステムになります。 まず、前回のファイル構成の説明でも触れたように、全てのリクエストは、.htaccessの制御によって、app/webroot/index.phpへ転送されます。 そして、このindex.phpはDispatcher(cake/dispatcher.php)を呼び出します。 このDispatcherはリクエストURLを元に、config/route.phpの内容を考慮し、呼び出すコントローラを決定します。そして、決定したコントローラを呼び出します。 コントローラでは、アクセスに基づいた処理を行います。 処理の際に永続データ(データベース中のデータ)については、モデルを利用してデ

  • 第4回CakePHP勉強会@TokyoのLTで発表してきました! - 忍び歩く男 - SLYWALKER

    補足 2009-05-28追記 opparaさんのご指摘で プラグイン三段活用 - 呆備録 スライド中、誤解されやすい表記があったので補足。 プラグインの呼び出し例は、 var $components = array('プラグイン名.コンポーネント名'); var $helpers = array('プラグイン名.ヘルパー名'); var $actsAs = array('プラグイン名.ビヘビア名'); の意味です。 具体的には、 /path/to/plugins/tools/controllers/components/hoge.php var $components = array('Tools.Hoge'); /path/to/plugins/tools/views/helpers/hoge.php var $helpers = array('Tools.Hoge'); /path/

    第4回CakePHP勉強会@TokyoのLTで発表してきました! - 忍び歩く男 - SLYWALKER
  • CakePHP routes.phpの確認はユニットテストで

    routes.phpを仕様に合わせて設定しておきます。 <?php // Router::connect('/:user_id/edit', array('controller' => 'user', 'action' => 'edit')); Router::connect('/', array('controller' => 'top', 'action' => 'index')); Router::connect('/:user_id/*', array('controller' => 'user', 'action' => 'index')); // Nothing Router::connect('*', array('controller' => 'nothing')); ?> 最後はシステムが取るべきURL以外ならNot Foundを出すように設定しています。これにより想定外

  • CakePHP でテスト駆動開発 - elm200 の日記(旧はてなダイアリー)

    参考にした情報。 CakePHP1.2 に SimpleTest をインストール CakePHP1.2 SimpleTest でテストケースを作成する が良エントリ。 CakePHP では SimpleTest というテストモジュールを使うらしい。ここからダウンロードして解凍し、app/vendors か vendors に配置する。SimpleTest はテスト結果をウェブベースで表示するようである。app/webroot/test.php がテスト実行のエントリポイントである。 http://(サーバ名)/(CakePHP アプリケーションへのパス)/test.php という感じの URL にブラウザからアクセスする。 テストの書き方。たとえば、post.php というモデルがある場合、app/test/cases/models/post.test.php というテスト用のファイルを作

    CakePHP でテスト駆動開発 - elm200 の日記(旧はてなダイアリー)
  • CakePHP1.2 に SimpleTest をインストール | Sun Limited Mt.

    CakePHP1.2 では SimpleTest を使用したユニットテストが行えます。 テスト実行用スクリプトは app/webroot/test.php です。ブラウザからこのスクリプトへアクセスします。 まだ SimpleTest をインストールしていないと上記のような画面が出ます。 この画面から SimpleTest のダウンロード先へリンクがあるのですが、なぜかリンクが切れています。下記 URL でアクセスできます。 http://simpletest.org/en/download.html ダウンロードして解凍したものを app/vendors か vendors ディレクトリに設置します。 設置後に再度 test.php へアクセスすると下記のような画面になります。 これで SimpleTest の準備は完了です。 試しに「Available Core Test Groups

  • CakePHP1.2 SimpleTest でテストケースを作成する | Sun Limited Mt.

    CakePHP1.2 に SimpleTest をインストール で SimpleTest をインストールするところまでやったので、今度は実際にテストケースを作成してみます。 空のテストケースを作成する app/test/cases/models に user.test.php を作成して以下のコードで保存する。 <?php class UserTest extends User { } ?> test.php にアクセスして「App Test Cases」というリンクをクリックすると作成した user.test.php というリンクが表示されます。 この models/user.test.php をクリックすると作成したテストが実行されます。まだテストケースが何もないので当然テストは正常に終了します。 User モデルのテスト 実際にモデルのテストケースを作成してみます。 app/test

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • 第2回CakePHP勉強会無事終了!&発表資料 - yandod's blog

    events.php.gr.jp 第2回CakePHP勉強会 第2回CakePHP勉強会、参加者や発表者、運営者のみなさまのおかげで盛況のうちに終了しました。 盛況と書けば簡単ですが、50人を超える来場者があり発表の内容も濃く、懇親会も盛況ということで異様に濃い一日になりました。 ばたばたしていたので写真は開始前にしか撮れませんでした。 おそらく他にも撮影した人がいるのでそれで様子がわかればと思います。 当ににぎやかで楽しい時間がすごせました。 from akiyan.com 下記は思いついた事のメモです。 addons.mozilla.org@CakePHP 紹介したい内容が多く、早めの進行になりました。 サイトの事は知っていても、コードを見たことがある方は1人しかいませんでしたね。 実際にキャッシュが有効になって動いている部分をローカルで動作させられたのは良かったです。 発表資料のダ

    第2回CakePHP勉強会無事終了!&発表資料 - yandod's blog
  • 「今度のサイトはCakePHPで構築して」と頼む利点10

    CakePHPは、PHP言語の高速開発用フレームワークです。日々、発展を遂げる各種フレームワークの動向を見極めつつ、日発のCakePHP応援ブログとして、最新情報をお届けします。 「今度のサイトはCakePHPを使って構築してください」と制作会社に頼むと、できあがるサイトは、 1. (少しの修正、またはそのままで)PHP4のサーバでもPHP5のサーバでも動く。既存サーバでも、新規サーバでもOK。多くの顧客に配布するWebアプリケーションであっても、PHPが動くならたいていの客先で動作可能。開発者も「そのサーバはPHP5ですか?」と確認する必要がない。PHP5であればベターです。しかし、確認したらPHP4だった、という場合でもうろたえることはないでしょう。 2. データベースをMySQLで作っておいて、あとからPostgreSQLにしたり、Oracleにしたりできる。 3. 将来的な不可分

    「今度のサイトはCakePHPで構築して」と頼む利点10
    kazukichop
    kazukichop 2007/11/04
    CakePHPのウリ
  • 連載:CakePHPで高速Webアプリ開発|gihyo.jp

    第16回何でもできるようになった1.2のデータバリデーション機能(1/2):基編 秋田真宏 2009-07-17

    連載:CakePHPで高速Webアプリ開発|gihyo.jp