今やっている案件ではCakePHPを使ったアジャイル開発で、当然テストも自動化している。 テストの自動化を徹底的にやったので楽なんだけど、次回の案件のためにどういう観点でテストを組んでおくと良いか、またどこに嵌りがあるかメモとして残しておく。 CakePHPに限らない話 テストしやすい実装にする。例えばメソッドに複数の異なる役割を持たせない。引数と戻り値が明確。適切な行数など MVCの複数レイヤーにまたがる処理を書かない。例えばコントローラの中でSQLじゃぶじゃぶ投げたり、バリデーションチェックをぐちゃぐちゃやったりしない 自動でテスト実行できる仕掛け作り。例えばPHPならphpUnderControl。JAVAならCruiseControlとかHudson。 基本に返って、テストを先に書くという意識付け テストがいっぱいありすぎたら今度はテストのリファクタリング。似たようなテストがコピペ
前回の話はこちらを参照 前回以降もテストしているんだけど、「メモっとかないと忘れちゃうねー」的な話を以下列挙。 それにしても今回は真面目にテストしているぞ(笑 カバレージを測定したかったらテストモジュールの分割方法は、テスト対象モジュール1つにつきテストモジュール1つにするべきだ。 僕が作っているシステムは一般向け画面と管理者向け画面に分かれていて、管理者画面へのアクセスはadmin routingを使っているのだけれど、こういう場合のテストでもコントローラー単位、モデル単位で分割すべきで、利用シーンで分離すべきではない。但し受け入れテスト等、カバレージではなく業務要件への充足確認が中心になる場合は別だけど。 setUp、startTest、startCase等の初期化処理の違いを押さえておくこと。bakeでControllerのテストケースを作るとsetUp()が自動で作成されるが、こ
先の記事で「Media Plugin for CakePHP」のセッションスライドを紹介させていただいたのですが、実際にソースを調べたりして分かったことをまとめてみることにしました。 まずは序章ということで、概要とプラグインの構成を紹介させていただきます。 そして、実際に利用する手順などを後の記事で紹介させていただく予定です。 概要 「Media Plugin for CakePHP」は、画像や動画などのいわゆる「メディアファイル」を始めとした、ファイルアップロード及びそれらの管理を簡単かつ安全にに行うためのプログラム群です。プラグイン形式で提供されているため、プログラム管理がしやすく、またこれらを部品として利用することが出来るため、カスタマイズ性に優れています。 Media Pluginは、大きく分けて次のパートから構成されています。 ■Transfer Behavior ファイルを「外
I make SQL syntax highlight function for sql log panel of Debug_kit. I use GeSHi for syntax highlight. Source code download here. You can see diff code here. バシャログさんの「明日使える!?CakePHP Hack:SQLデバッグ表示をシンタックスハイライト」の記事のアイディアがかなり良かったので、Debug_kitのSQL Logパネル対応版を作りました。ハイライトで使った機能は、GeSHiというものを使いました。 GeSHi入りのzipファイルは、ここに置いています. (GeSHiが入ってないgitのレポジトリは、ここです。) ZIPを解凍して通常のDebug_kitと同じようにプラグインフォルダに置いて、app_controll
Ajax でページ付けられた一覧の項目を Ajax で削除するようにしてみた。コントローラは lists、表示のアクションは index、削除のアクションは delete としよう。 一覧の中で echo $ajax->link( 'Delete', array('controller'=>'lists', 'action'=>'delete',$id), array('update'=>'list','indicator'=>'YourIndicator' );
以前、Ajax通信で結果を出力する際XMLデータだったので、Content-Typeを「application/xml」か「text/xml」にしようと、RequestHandlerのメソッド(setContent)をいろいろ試したのだが、いつも「text/html */*」となり、なかなか思うように出力できなかった。あの時は、クライアント側で支障なく利用できたので、放り出してしまった。 今回、クライアント側のJavaScriptで扱いやすいように、JSONでデータを出力することにしたので、前回クリアできなかったハードルに再挑戦することとなった。と言っても、CakePHPについは世界中で多くの情報が公開されているため、作業は検索と動作チェックだけだったけど(^_^;)。 お題は、「ユーザ番号をAjaxのGETで渡し、DBのユーザ情報をJSONで出力する」という、簡単なお話し。クライアン
タイトル通り。ぐぐってもスマートな方法が見当たらなかったので、PaginatorHelperからModelまでソースを読む羽目になったが、わかってみれば至極簡単だった。 口で説明するよかサンプルのが早いと思われるので、掲示板でも作りましょうか。 CakePHP1.2 /js/prototype.jsを設置 適当なDBを用意 まずモデル。名前はテキトーにThreadに。命名規則にしたがってテーブル名はthreadsね。 <?php /** CREATE TABLE threads ( id SERIAL NOT NULL -- Postgres以外の人は適当に読み替えて , handle VARCHAR(100) DEFAULT '名無しさん' , email VARCHAR(100) , comment TEXT not null , created TIMESTAMP , PRIMARY
数十件単位のデータを表示する際のページ切り替えを簡単に作る事が出来ます。 http://wiki.cakephp.org/tutorials:pagination まず上記ページの「Step 1: Get the files」にある3ファイルをそれぞれ /app/controllers/components/pagination.php /app/views/helpers/pagination.php /app/views/elements/pagination.thtml として保存します。 【Controllerに記述】 var $components = array ('Pagination');var $helpers = array('Pagination'); function paging_list() { list($order,$limit,$page) = $this
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
CakePHPでバリデーションを使う際、標準(CakePHP1.2)のままでも十分開発はできますが、大きめのプロジェクトや複数のプロジェクトでも汎用的かつ効率的に使えるようにできないかと検討しました。 バリデーション改善の目的 エラーメッセージを日本語化し共通化・デフォルト化したい 独自バリデーションメソッドを共通化したい ルール配列を簡単に記述したい(項目が多いとソースが長くなり過ぎて見通しがよくない) バリデーションの前に自動で整形処理をしたい(半角英数変換やカタカナ変換など) 実装にあたって バリデーションメソッドの共通化については、 cakephperさんの日記:よく使う独自バリデーションルールをプラグインのbehaviorにまとめる に記載してありますように、プラグインのbehaviorで管理するほうが良いと思いますが、今回は弊社で過去に実装した通常のbehavior(Bas
log4phpをダウンロード http://www.vxr.it/log4php/download.html log4phpを配置 [cakeインストールディレクトリ]/vendors/log4php/ cake_log.phpを編集 if (!class_exists('File')) { require LIBS . 'file.php'; } if (!defined('LOG_WARNING')) { define('LOG_WARNING', 3); } if (!defined('LOG_NOTICE')) { define('LOG_NOTICE', 4); } if (!defined('LOG_DEBUG')) { define('LOG_DEBUG', 5); } if (!defined('LOG_INFO')) { define('LOG_INFO', 6); }
Well, I’ve been using cakephp for like a year full time ! My boss, a couple of weeks ago, needed a site for his brand. So I used cake to do it. After that, he came to me with that idea of making a blog to post some businesses activities. Well… everyone knows that Wordpress is the best Blog framework ever made ;). So… he wanted the main blog adress to be like : http://www.example.com/blog/ My first
今年も1年があっという間に過ぎてしまいましたね。AIが世間を賑わせていた1年でした。そんな中、相変わらずこれまで通りの仕事を続けられているのは有り難い事です。弊社に関係して下さっている全ての方に御礼申し上げます。 (generated by Midjojurney v6.0) こちらのブログには創業と振り返りぐらいで、年3回ぐらいしか投稿しなくなってしまいました😓 iOSの技術的なことは隔週でこちらに、プライベート色が強めな事はこちらに、それぞれ投稿するようになった…というのもあるのですが。 今回は主に会社や事業のことということで、例年通り本ブログに記録として2023年の振り返りを記したいと思います。 iOS事業 (業務用アプリ支援) 今年はなんといってもiOS事業、特にB2Bのご支援の増加です。業務用アプリはB2Cのアプリとは少し勝手が違うので、そのあたりのノウハウを伝える研修事業を始
cakephpの開発が滞りなくできるようにセットアップする。 まず以下をインストール $ sudo apt-get install php5 $ sudo apt-get install apache2 $ sudo apt-get install mysql-server $ sudo apt-get install phpmyadmin cakephpをインストールする 以下のサイトで1.1系のcakephpをインストールする(理由:持ってる本が1.1系対応だから。そのうち1.2系も勉強したい) http://www.cakephp.org/ ダウンロードしたら解凍しておく cakephpをセットする /home/www以下に置くと権限とかが面倒なので、とりあえずユーザディレクトリを使う。 $ sudo a2enmod userdir $ sudo /etc/init.d/apache
第2回CakePHP関西勉強会出発表してきました。 以下、発表資料と感想です。 究極のコントローラを目指すView more PDF documents from slywalker. フックメソッドを極める - shin1×1さん プレッシャーの前説発言! デモの表示は非常にわかりやすかった。 onError()って使ってないので、今度試しにつかってみよう。 究極のコントローラを目指す - slywalker コードが非常に多くて、自分自身が混乱^^; ちゃんと伝わったかかがちょっと心配。 あくまでも手法の紹介なので、やりすぎ注意!w RubyOnRailsからCakePHPへ - yabumaruさん Railsはスパルタ! Cakeはスイーツ! 結構、CakePHPで動いている案件がありびっくり。 CakePHPでこんなの作ってみました - msngさん すごくまとまった発表! 自分
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く