Php

 2014/09/04

【発売のお知らせ】CakePHPで学ぶ継続的インテグレーション(9/19)

最近めっきりブログ更新頻度が減っててすいませんすいません。 ということでタイトルの通りなのですが、このたび9月19日に「CakePHPで学ぶ継続的インテグレーション」(インプレス)が発売になりますのでお知らせいたします。 本の表紙はこんな感じになります。発売までまだ2週間くらいありますが、既にAmazonで予約を開始し (続きを読む)

 2013/03/12

opscodeのphpのcookbookを解説してみる

みなさんお料理頑張ってますか?僕は毎日cookbookのrecipeみながらkitchenでknife使ってChef気分です(意味不明)。 今日はopscodeが提供しているphpのcookbookをみて中身を解説したいと思います。 コードはここです。https://github.com/opscode-cookboo (続きを読む)

 2012/11/30

CakePHP2のbakeコマンドを拡張する方法

CakePHPの良いところの1つに、bakeコマンドでどんどん自動生成していける点があります。簡単なcrudなんかはbakeしてちょっとデザイン変えたりすれば、すぐにでも使えるレベルです。とはいえ、標準のbakeでは以下のような問題があります。 標準ではcrudだけで、index()、add()、 edit()、vi (続きを読む)

 2012/11/21

LB(SSL)→サーバ(非SSL)環境でCakePHP2のリダイレクトを正しく行う方法

今日は超短いTipsです。 CakePHP2で作ったアプリケーションを以下のような構成に配置した場合の話です。 そのままでは、CakePHPのredirect関数が呼ばれた場合に、直接Webサーバ側に転送しようとしてしまい大変なことになってしまいます。 これを防ぐためには、以下のような定義を app/Config/bo (続きを読む)

 2012/11/12

CakePHP2アプリケーションをCapistranoでデプロイする

アプリケーションのデプロイを自動化すべきなのは言うまでもないことです。 一応手動でデプロイを行う場合の問題点について整理しておくと以下になります。 プロジェクトの期間中そして運用に入ってからも何度も手でデプロイするということはとてつもなく多くの時間を手作業に費やすことになる デプロイ先の環境の数が多くなればなるほど作 (続きを読む)

 2012/11/08

CakePHP2系でマイグレーションを利用する方法

マイグレーションを使わないで、データベースのスキーマ構成を変更したりすると、特に複数人で開発しているような場合にこんなことが起こったりします。 自分の開発マシンとテストサーバ等でスキーマ構成が違っている さらには他人の開発マシンともスキーマ構成が異なっている しかもどっちがあっているか分からない 例えば、みんな (続きを読む)

 2012/11/04

【資料公開】CakePHP+Jenkinsによるアジャイル開発

みなさんこんにちは。@ryuzeeです。 2012年11月3日,4日の二日間にかけて行われたPHPMatsuri 2012で、登壇させていただきました。 その際の資料を公開しておきます。 内容は過去にやったワンクリックデプロイ勉強会の内容にCakePHPっぽい内容を追加した感じです。 大分前からこのあたりの話はして (続きを読む)

 2012/10/31

CakePHPのアプリのコーディング規約チェックを自動で行う方法

みなさんこんにちは。@ryuzeeです。 PHPで書かれたソースコードがコーディング規約に準拠しているかどうか確認するには、PHP_CodeSnifferというツールを使うのはよくご存知だと思いますが、今回はCakePHPを使って書いたソースコードの規約をチェックする方法を紹介します。 なお、このような規約チェックはロ (続きを読む)

 2012/06/02

PHPの外部ライブラリの管理にComposerを使う

みなさんこんにちは。@ryuzeeです。 ComposerはRubyでいうところのBundlerのようなもので、アプリケーションが必要とする外部ライブラリを、そのアプリケーション固有の状態で一元的に管理してくれるツールです。 PHPではPearのようなコマンドを使ってライブラリをインストールすることが一般的ですが、アプ (続きを読む)

 2012/05/25

CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法

みなさんこんにちは。@ryuzeeです。 CakePHP2.0になってテスティングフレームワークがSimpleTestからPHPUnitに変わったことで、以前に比べると大分簡単にはなっていますが、まとまった情報が少ないので整理しておきます。 事前準備 JenkinsのインストールおよびCIサーバへのPHPのインストール (続きを読む)

 2011/10/19

Doctrine1でDBのマイグレーションを行う

みなさんこんにちは。@ryuzeeです。 アジャイルな開発を行って頻繁にデータベースのスキーマを変更したり頻繁にプロダクション環境にリリースしたりCIサーバで継続的にテストをしようとすると、データベース回りの変更をきちんと管理していくというのが非常に重要になります。 アマチュア的なアプローチだと毎回差分のsql文を書い (続きを読む)

 2011/02/12

BehatとSeleniumを組み合わせ受け入れテストを自動化する

みなさんこんにちは。@ryuzeeです。 Behatは良さそうなので引き続き検証しています。 今回は、BehatとSeleniumを組み合わせて、受け入れテスト型のテストを自動化してみたので、その方法について説明しましょう。 なお、前回の記事を読まれていない場合はまずそちらを参照してください。 PHPでBDD(Beha (続きを読む)

 2011/02/12

BehatとSeleniumを組み合わせ受け入れテストを自動化する

みなさんこんにちは。@ryuzeeです。 Behatは良さそうなので引き続き検証しています。 今回は、BehatとSeleniumを組み合わせて、受け入れテスト型のテストを自動化してみたので、その方法について説明しましょう。 なお、前回の記事を読まれていない場合はまずそちらを参照してください。 PHPでBDD(Beha (続きを読む)

 2011/02/10

PHPでBDD(Behavior Driven Development)する方法

みなさんこんにちは。@ryuzeeです。 RubyであればRSpecやCucumberとか使って、むしろBDDしているケースの方が多いようですが、PHPでやっている事例はあまり聞きません。 とりあえずPHPでもBDDできることは確認できたので、その方法をご紹介します。 ※実戦投入にはもうちょっと検証は必要かもしれません (続きを読む)

 2010/11/14

CakePHPでファイル出力機能のテストをする

みなさんこんにちは。@ryuzeeです。 CakePHPでファイル出力系の機能のテストを行う場合のTipsをご紹介します。 例えばコントローラーの中でこんなファイル出力系の機能があったとします。 function output() { $this->lauout = null; $filename = " (続きを読む)

 2010/10/23

Hudson+phpmdでPHPコードの問題を自動検出する方法

Hudson+PHPシリーズです(Javaとか他の言語でもいけるはずです)。 phpmdって何? phpmdはPHP Mess Ditectorの略で、PHPコードの潜在的なバグになりそうな箇所や実装上の問題を検出してくれるツールです。 例えば未使用の変数の指摘、多数のpublicメソッドのある巨大クラスの検出、一文字 (続きを読む)

 2010/09/27

Hudson+phpcpdで継続的に重複コードをチェックする

Hudson等を使った継続的インテグレーションでは、テストの自動実行の他にも、ドキュメントの自動作成、コーディング規約の自動チェック、重複コードのチェック(DRY原則のチェック)等を行うことができるし、実行するべきである。 今回は、PHP+Hudsonの環境でコードの重複を継続的にチェックできるようにしてみた。 php (続きを読む)

 2010/04/07

PHPのSMTP接続ライブラリQdsmtpのエラー処理

みなさんこんにちは。@ryuzeeです。 QdsmtpはオープンソースSMTP用ライブラリで、こちらから入手できます。 僕はCakePHPでQdmailとQdsmtpの組み合わせでメールを送信することが多いのですが、今回真面目にエラー処理をする必要があったので調べてみました。 以下が僕の実装ですが、たぶんQdmailで (続きを読む)