最近めっきりブログ更新頻度が減っててすいませんすいません。 ということでタイトルの通りなのですが、このたび9月19日に「CakePHPで学ぶ継続的インテグレーション」(インプレス)が発売になりますのでお知らせいたします。 本の表紙はこんな感じになります。発売までまだ2週間くらいありますが、既にAmazonで予約を開始し
続きを読むみなさんお料理頑張ってますか?僕は毎日cookbookのrecipeみながらkitchenでknife使ってChef気分です(意味不明)。 今日はopscodeが提供しているphpのcookbookをみて中身を解説したいと思います。 コードはここです。https://github.com/opscode-cookboo
続きを読むCakePHPの良いところの1つに、bakeコマンドでどんどん自動生成していける点があります。簡単なcrudなんかはbakeしてちょっとデザイン変えたりすれば、すぐにでも使えるレベルです。とはいえ、標準のbakeでは以下のような問題があります。 標準ではcrudだけで、index()、add()、 edit()、vi
続きを読む今日は超短いTipsです。 CakePHP2で作ったアプリケーションを以下のような構成に配置した場合の話です。 そのままでは、CakePHPのredirect関数が呼ばれた場合に、直接Webサーバ側に転送しようとしてしまい大変なことになってしまいます。 これを防ぐためには、以下のような定義を app/Config/bo
続きを読むアプリケーションのデプロイを自動化すべきなのは言うまでもないことです。 一応手動でデプロイを行う場合の問題点について整理しておくと以下になります。 プロジェクトの期間中そして運用に入ってからも何度も手でデプロイするということはとてつもなく多くの時間を手作業に費やすことになる デプロイ先の環境の数が多くなればなるほど作
続きを読むマイグレーションを使わないで、データベースのスキーマ構成を変更したりすると、特に複数人で開発しているような場合にこんなことが起こったりします。 自分の開発マシンとテストサーバ等でスキーマ構成が違っている さらには他人の開発マシンともスキーマ構成が異なっている しかもどっちがあっているか分からない 例えば、みんな
続きを読むみなさんこんにちは。@ryuzeeです。 2012年11月3日,4日の二日間にかけて行われたPHPMatsuri 2012で、登壇させていただきました。 その際の資料を公開しておきます。 内容は過去にやったワンクリックデプロイ勉強会の内容にCakePHPっぽい内容を追加した感じです。 大分前からこのあたりの話はしてい
続きを読むみなさんこんにちは。@ryuzeeです。 PHPで書かれたソースコードがコーディング規約に準拠しているかどうか確認するには、PHP_CodeSnifferというツールを使うのはよくご存知だと思いますが、今回はCakePHPを使って書いたソースコードの規約をチェックする方法を紹介します。 なお、このような規約チェックはロ
続きを読むみなさんこんにちは。@ryuzeeです。 ComposerはRubyでいうところのBundlerのようなもので、アプリケーションが必要とする外部ライブラリを、そのアプリケーション固有の状態で一元的に管理してくれるツールです。 PHPではPearのようなコマンドを使ってライブラリをインストールすることが一般的ですが、アプ
続きを読むみなさんこんにちは。@ryuzeeです。 CakePHP2.0になってテスティングフレームワークがSimpleTestからPHPUnitに変わったことで、以前に比べると大分簡単にはなっていますが、まとまった情報が少ないので整理しておきます。 事前準備 JenkinsのインストールおよびCIサーバへのPHPのインストール
続きを読むみなさんこんにちは。@ryuzeeです。 アジャイルな開発を行って頻繁にデータベースのスキーマを変更したり頻繁にプロダクション環境にリリースしたりCIサーバで継続的にテストをしようとすると、データベース回りの変更をきちんと管理していくというのが非常に重要になります。 アマチュア的なアプローチだと毎回差分のsql文を書い
続きを読むみなさんこんにちは。@ryuzeeです。 Behatは良さそうなので引き続き検証しています。 今回は、BehatとSeleniumを組み合わせて、受け入れテスト型のテストを自動化してみたので、その方法について説明しましょう。 なお、前回の記事を読まれていない場合はまずそちらを参照してください。 PHPでBDD(Beha
続きを読むみなさんこんにちは。@ryuzeeです。 RubyであればRSpecやCucumberとか使って、むしろBDDしているケースの方が多いようですが、PHPでやっている事例はあまり聞きません。 とりあえずPHPでもBDDできることは確認できたので、その方法をご紹介します。 ※実戦投入にはもうちょっと検証は必要かもしれません
続きを読むみなさんこんにちは。@ryuzeeです。 CakePHPでファイル出力系の機能のテストを行う場合のTipsをご紹介します。 例えばコントローラーの中でこんなファイル出力系の機能があったとします。 function output() { $this->lauout = null; $filename = "
続きを読むHudson+PHPシリーズです(Javaとか他の言語でもいけるはずです)。 phpmdって何? phpmdはPHP Mess Ditectorの略で、PHPコードの潜在的なバグになりそうな箇所や実装上の問題を検出してくれるツールです。 例えば未使用の変数の指摘、多数のpublicメソッドのある巨大クラスの検出、一文字
続きを読むHudson等を使った継続的インテグレーションでは、テストの自動実行の他にも、ドキュメントの自動作成、コーディング規約の自動チェック、重複コードのチェック(DRY原則のチェック)等を行うことができるし、実行するべきである。 今回は、PHP+Hudsonの環境でコードの重複を継続的にチェックできるようにしてみた。 php
続きを読むみなさんこんにちは。@ryuzeeです。 QdsmtpはオープンソースSMTP用ライブラリで、こちらから入手できます。 僕はCakePHPでQdmailとQdsmtpの組み合わせでメールを送信することが多いのですが、今回真面目にエラー処理をする必要があったので調べてみました。 以下が僕の実装ですが、たぶんQdmailで
続きを読む