takeda-soft.jp 2024 著作権. 不許複製 プライバシーポリシー
今やっている案件ではCakePHPを使ったアジャイル開発で、当然テストも自動化している。 テストの自動化を徹底的にやったので楽なんだけど、次回の案件のためにどういう観点でテストを組んでおくと良いか、またどこに嵌りがあるかメモとして残しておく。 CakePHPに限らない話 テストしやすい実装にする。例えばメソッドに複数の異なる役割を持たせない。引数と戻り値が明確。適切な行数など MVCの複数レイヤーにまたがる処理を書かない。例えばコントローラの中でSQLじゃぶじゃぶ投げたり、バリデーションチェックをぐちゃぐちゃやったりしない 自動でテスト実行できる仕掛け作り。例えばPHPならphpUnderControl。JAVAならCruiseControlとかHudson。 基本に返って、テストを先に書くという意識付け テストがいっぱいありすぎたら今度はテストのリファクタリング。似たようなテストがコピペ
By now you already know or should know about CakeTestCase::testAction() and the wondrous things it can do. However, testAction has a few shortcomings. It can’t handle redirects, it doesn’t let you use the power of Mocks, and its impossible to make assertions on object state changes. Sometimes you need to do things the hard way, stick your fingers in the mud and work it out. However, knowing how to
by 赤がすき Published 7 月 22nd, 2008 in 1.2, PHP, SimpleTest, cakephp, テスト, 開発環境 | (0) (0) (0) (0) Total: 0 このエントリーでは、bakeで自動的に作成されたモデルのテストケースを改造して、次のようなことをやってみたいと思います 本番用のテーブルからテスト用のテーブルにデータをコピーする バリデーションテスト モデルに作ったロジックのテスト 注意点からいうと、現時点(CakePHP RC2)では、1.を行うためには、 自動的にテーブルを作成してくれないので、自分で作成する。 テーブルの削除は律儀にやってくれるので、削除されないようにする(もしくは毎回テーブルを作る)。 といった対応が必要なようです 本番用のテーブルからテスト用のテーブルにデータをコピーする テーブルの作成 今のと
最近、テスト廚ぎみなわたなべです(^^; ビジネスロジックは出来るだけModelやComponentに書く様にしているのでModelやComponenntなどのテストはそれなりに書いていたのですが、Controllerのテストは全く書いていませんでした。とはいえ、Controllerにも処理があるので、テストを書いてみようと試したときにはまった点と私なりの解決方法をまとめてみました。 Controllerをbakeすると自動で作られるControllerのTestCodeは以下のような感じです。 <?php /* SVN FILE: $Id$ */ /* ExampleController Test cases generated on: 2009-12-04 19:56:41 : 1259924201*/ App::import('Controller', 'Examples'); cl
New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x
小ネタ。 Cake1.2.6 HogeConpornentがHogeモデルを使ってる場合、認証画面をそのままHoge::login()って作るとうまく行かない。デフォルトで、Userモデルを見てしまうから。アクセスしても/users/loginに飛ばされるし。 beforeFileterなどで、下記の設定が必要 $this->Auth->userModel = $this->modelClass;モデル名を直接指定したければ、modelClassを固定の文字列にすればOK ということで、よく設定する内容はこんな感じ。 //認証エラーメッセージ $this->Auth->loginError = 'ログインエラー。IDもしくはパスワードが違います。'; //アクセス権がない場合のエラーメッセージ 非表示 $this->Auth->authError = ' '; //認証するフィールド名 $
スパイスラボ神部です。 前回のブックマークレットのエントリ とも関係あるのですが、Web サービスに1度ログインさせて、そこから長期にわたってログインさせておくためのノウハウというのは結構無いような気がします。とりあえず目の前の会員認証のところを解決する部分について言及しているものはたくさんあるのですが、それらを長期的に運用するにあたっては、あとからわかる問題でもあり、対応が難しかったりもします。 自分は CakePHP を使って実装していることもあり、そのあたりの情報を探したのですがそちらもあまり見あたりません。そうなるとソースコードをあたるしかないのですが、せっかくフレームワークを使っているのにできればソースコードを直接あたりたくはない!というちょっと後ろ向きな姿勢で、ブックマークレットと長期ログインしっぱなしなサービスの設計について考えてみたいと思います。 -ブックマークレットが好き
cakephp 1.2.2を利用してます。 AuthComponentを使っている場合、ログイン後の遷移先を指定する場合、 UsersコントローラのbeforeFilterなどで $this->Auth->loginRedirect = array('controller' => 'hoge', 'action' => 'view');と指定しますが、セッション情報の中に、Authのリファラ情報が記録されている場合は、このリファラ情報が優先されてしまうため、ログイン後の遷移先を固定したい場合には不向きです。 (CakeBookにはこのことが書いてありませんが、authコンポーネントのソースコードのコメントに下記内容が書いてありましたorz) If this session value is not set, the user will be redirected to the page s
以前、phpmailer を使った CakePHP 用の EmailComponent を作ったが、 Qdmail というメールライブラリも CakePHP 1.2 に対応していて簡単に使えそうだったので、試してみた。 PHPの高機能日本語メールライブラリ - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte http://hal456.net/qdmail/ まず、QdmailComponent を継承した EmailComponent を作って、省略可能なものは省略してみた。 <?php require_once('controllers' . DS . 'components' . DS . 'qdmail.php'); class EmailComponent extends QdmailComponent
hal456トップページ 注意! 本業が忙しいため、私は開発・更新には関わっていませんし、ご質問にも対応しておりません。 下記のURLの方々が、引き継いでいただいているので、どうぞそちらをご利用ください。 ライセンスに従えば改変は自由ですが、本ホームページでのダウンロードは停止いたします。使い方などについては、参考にされる方もいるかも知れませんので、当面の間、残しておきます。 長らくのご愛顧、誠にありがとうございました。 自分が作成したプログラムが、多くの方に便利に使われたことは、とてもうれしかったです。 2018/1/28 深謝 QdmailをPHP7.0に対応させる Qdmailシリーズのgithub版です。PHP5.4対応 qdmailを新しめのPHPでも動くようにした Qdmailとは Qdmailとは、PHPのマルチバイト環境(特に日本語)にて、「文字化けしない」「簡単に"デコメ
Collaborate effortlessly on projects. Whether you’re a team of 5 or studio of 50, Lighthouse will help you keep track of your project development with ease. Less Fuss, More Function Cut the fat out of your workflow and stay focused on what’s important. Lighthouse will simplify your workflow so you can do the job you were hired to do. Try it for free. No credit card required. Try Lighthouse For Fre
はじめまして。Fusicでエンジニアをしている小山です。 普段はPHP(主にCakePHP)とJavaScriptを使って開発を行っています。 皆さんは開発を行う時エディタは何を使っていますか? Fusicではエディタについて特に指定はなく、みんなそれぞれ好きなものを使用しています。 NetBeansにはじまりEclipseやTextMate、Emacs、Vim。Visual Studioを使うメンバもいます。 そして自分はEmacsを愛用しています。ちなみに社内のEmacsユーザはマイノリティです。 個人的にはプログラマにとってエディタは料理人にとっての包丁、大工にとってのノミと同じものと思っています。 そういう意味でEmacsは、Emacs Lispを利用してかなり自由度をもったカスタマイズができる特徴をもっており、自分にあった環境を作ることができます。 ただ、逆にいうと初期設定のEm
LTで発表がグタグタになってしまい、凹みまくりのnojimageです。こんにちは。 グダグダの敗因はアレですね。LTのクセに詰め込みすぎた。 もうちょっとシンプルに行けば良かったです。はい。 というわけで、7月3日に開催された第2回CakePHP勉強会@福岡のLT発表資料を公開させていただきます。 TwitterKitは、現在のところまだ正式版というわけではありません。ドキュメントも不足していますし、結構バギーな部分もあると思いますので使っていただいてフィードバッグをいただけると喜びます。 また、LTでお見せできなかったサンプルサイトも公開しています。 トッイツ http://tiwt.php-tips.com/ こちらのソースについては、準備が出来次第Githubあたりで公開します。公開しました。http://github.com/nojimage/tiwt (ほとんど、資料に書いてある
Ruby on Rails には SSLRequirement というプラグインがある。これはあるコントローラにおける各アクションが、http または https のいずれでアクセスするべきか指定できる便利なプラグインである。CakePHP にも同様のプラグインがあるかもしれないが、勉強をかねて、自力で同様のコンポーネントを実装してみた。名付けて SslRequirementComponent。 使い方 このエントリの最後にあるソースコードを ssl_requirement.php という名前で app/controllers/components に保存する。(ssl_requirement_component.php という名前じゃないからね!!)そして、コントローラの中から <?php class UsersController extends AppController { var
CakePHP で管理画面を作成する方法です。 管理画面も CakePHP では簡単に作成することができます。 設定 /app/config/core.php の下記のコメントアウトをはずします。 define('CAKE_ADMIN', 'admin'); これで http://www.example.com/admin/controller/action という URL でアクセスできるようになります。 CAKE_ADMIN の値を変更すれば URL の /admin/ の値が変わります。 コントローラ 管理画面で使用するコントローラに管理画面用のアクションを追加します。 管理画面用のアクション名は admin_index のように admin_ が付きます。 この ‘admin’ の部分も CAKE_ADMIN によって変わります。 ビュー 管理画面用のアクションで表示するデフォルト
Authコンポーネントを利用して、ユーザグループごとに利用できるアクションを割り当てる方法をご紹介します。 ※簡易ACLって感じで。 できること ユーザグループごとに各アクションの利用可否を設定 アクションの認可情報は、コントローラ内に記述 認証ユーザごとにログイン後の遷移先を変更(おまけ2) (この方法、どこかの記事を参考にさせていただいたのですが参考元がわからなくなりました。。) ここで紹介したソースをまとめたものはこちら GroupテーブルとUserテーブルはいたって普通にこんな感じ。 CREATE TABLE IF NOT EXISTS `groups` ( `id` CHAR(36) NOT NULL , `created` DATETIME NULL , `modified` DATETIME NULL , `name` VARCHAR(255) NULL , PRIMARY
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く