タグ

ブックマーク / www.ryuzee.com (16)

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

    最近めっきりブログ更新頻度が減っててすいませんすいません。 ということでタイトルの通りなのですが、このたび9月19日に「CakePHPで学ぶ継続的インテグレーション」(インプレス)が発売になりますのでお知らせいたします。 の表紙はこんな感じになります。発売までまだ2週間くらいありますが、既にAmazonで予約を開始しています。 今回は、CakePHPのコミュニティで積極的に活動されている渡辺さんにお誘いいただき2月くらいに着手を開始しました。確か2012年に福岡で行われたPHPMatsuriが渡辺さんにお会いした最初だと思うのですが、そのときに話をした、CakePHP+Jenkinsによるアジャイル開発があったのでお誘い頂いたのかなーと思っています。こういうのって何がキッカケになるか分かりませんねー。 で2月に開始はしたのですが、Chef実践入門を抱えてたりしてすごく後手を踏んでしまい5

    【発売のお知らせ】CakePHPで学ぶ継続的インテグレーション(9/19)
    yandod
    yandod 2014/09/08
    おつかれさまです。“全部オンラインでの作業でした。次に会うのは打ち上げの寿司の席のはずです。”
  • 【発売のお知らせ】Chef実践入門

    全国1000万人のInfrastructure as Code職人とImmutable Infrastructure芸人のみなさんこんばんは! ということでタイトルの通りなのですが、このたび5月22日に「Chef実践入門 コードによるインフラ構成の自動化」(技術評論社)が発売になりますのでお知らせいたします。 の表紙はこんな感じになります(カバーの色やデザインは変更の可能性があります)。 ご予約は、こちらで受付中です!昨年前半に着手していたので随分時間がかかってしまいましたが、なんとか出すことができました。 今回はCakePHP界隈でもおなじみの安藤祐介さん、イケメン寿司&ドラクエ好きでおなじみの伊藤直也さん、Ruby使いの菅井さん、インフラのスペシャリスト並河さんという凄い人たちとの共著になります。 の内容ですが、Vagrantを使って簡単なクックブックをChef Soloを使って実

    【発売のお知らせ】Chef実践入門
    yandod
    yandod 2014/05/02
    アジャイルモンスター先輩さすがっす。
  • CakePHP RailsのようなMigrationを行う方法

    CakePHP標準だとRailsのような差分情報を含めたスキーマの管理ができず、不特定多数に配布するアプリケーションでの更新が困難だったり、開発現場でも人によってスキーマが異なってしまったり、といった問題が起こりやすかった。 このような問題を解決するのがCakePHP Migrations Pluginだ。 CakePHP Migrations Pluginは、CakeDCがMITライセンスで配布するオープンソースのCakePHPのプラグインで、これを利用するとRailsのMigrationと同じことが出来る! 詳細については http://cakedc.com/downloads/view/cakephp_migrations_plugin 入手は最新版をgithubから。 http://github.com/CakeDC/Migrations なお、動作検証はCakePHP1.3で行っ

    CakePHP RailsのようなMigrationを行う方法
    yandod
    yandod 2012/10/10
  • Doctrine1でDBのマイグレーションを行う

    みなさんこんにちは。@ryuzeeです。 アジャイルな開発を行って頻繁にデータベースのスキーマを変更したり頻繁にプロダクション環境にリリースしたりCIサーバで継続的にテストをしようとすると、データベース回りの変更をきちんと管理していくというのが非常に重要になります。 アマチュア的なアプローチだと毎回差分のsql文を書いて手でデータベースにわせていくのですが、以下のような問題があります。 複数のsqlを書いたファイルがあったとして、データベースの状態は実行順序に依存する可能性があるSQLRDBMSの仕様に依存する複数人で開発していると変更点を開発メンバーが認識して追随しているか判別しにくいCREATEやALTERコマンドは書いていても、もとに戻すことは想定していないことが多いので、前バージョンに戻しにくい似た話で、あるリリースの時点でデータベースがどういうスキーマだったのかを再現するのが

    Doctrine1でDBのマイグレーションを行う
    yandod
    yandod 2012/10/10
  • 資料公開 Chefの下準備 (#DevLove Chef de DevOps)

    2012年7月21日に大崎のフューチャーアーキテクトさんで行われたChef de DevOpsで話してきましたのでその際の資料を公開しておきます。 なお、内容については2011年12月くらいに行ったワンクリックデプロイ勉強会の資料とほとんど同じですので、以前にご覧になっている方にとっては目新しいものは何もありません。 新作作りたかったのですがごめんなさい。 言いたかったことは色々あったりしますが、道具としてのツールを使いこなすのはプロとしてとても重要であるのは前提とした上で、それでも単にツール単体の話をする前に、もうちょっと大きな全体像をとらえる必要があるということです(仕事じゃないなら好きにすれば良いですがね) 目先の効率化ももちろん重要ですが、それがプロダクト全体に対してどう作用するのかというのを理解せずに進めてしまうと、周りの理解も得られませんし、長期的に物事をよりよくするという流れ

    資料公開 Chefの下準備 (#DevLove Chef de DevOps)
    yandod
    yandod 2012/10/05
  • CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法

    みなさんこんにちは。@ryuzeeです。 CakePHP2.0になってテスティングフレームワークがSimpleTestからPHPUnitに変わったことで、以前に比べると大分簡単にはなっていますが、まとまった情報が少ないので整理しておきます。 事前準備JenkinsのインストールおよびCIサーバへのPHPのインストールは済ませておいてください。 CakePHP2.0でCIを行う場合は、以前のようにStagehand_TestRunnerを使ったりPhingを使う必要はありません(Phingは以前も使わない手もあった)が、PHPUnit、Xdebugのインストールは行なっておきます。 また今後利用するであろう、PMDやCPD等も導入しておくと良いでしょう。 なお、今回の作業はCentOS5.7上でPHP5.3.8を利用して行いました。 PHP関連のパッケージ導入 pecl install xd

    CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
    yandod
    yandod 2012/05/25
    Jenkins+Cake2ならこうしておけば安心
  • CakePHP1.3でテストのカバレージを取得する方法

    以前CakePHP1.2についての手順を書いたが、基的な流れは変わらない。 今回の環境はCentOS5.5。 必要なものをインストール xdebugのインストール 最新は2.1.0で、以前はバージョン指定してモジュール取ってきて自前コンパイルしないと動作しなかったが、現在のバージョンは問題ない。 pecl install xdebug SimpleTestの拡張機能のインストール 僕の環境だけかもしれないが、SimpleTestまるごとをチェックアウトして、CakePHPに突っ込んだところエラーが出て動作しなかったので、拡張機能のみ別途インストールする。 svn co https://simpletest.svn.sourceforge.net/svnroot/simpletest/simpletest/trunk/extensions/coverage 取得したらcoverageフォル

    CakePHP1.3でテストのカバレージを取得する方法
    yandod
    yandod 2011/06/20
  • CakePHP 一括でカバレージを取得する方法!!

    7/8にcoverage_reporter.phpの修正について若干追記 前提 XAMPP1.6.6 CakePHP1.2 環境準備 SimpleTestの開発レポジトリにあるカバレージ測定ツールを使う。 標準のアーカイブには含まれていないので、svnから取得する。 svn co https://simpletest.svn.sourceforge.net/svnroot/simpletest/simpletest/trunk 取得したモジュールを適当な場所に配置する。今回はC:/dev/simpletestに配置した。 次に、php.iniを修正する。 上記で取得したモジュールの中にある、extensions/coverageをincludepathに追加する。 autoprepend_fileにautocoverage.phpを指定する ※この設定が難しければPHPのコマンドラインパラ

    CakePHP 一括でカバレージを取得する方法!!
    yandod
    yandod 2011/06/20
  • PHPUnitのアンチパターンとベストプラクティス

    みなさんこんにちは。@ryuzeeです。 SlideShareを徘徊していたらPHPUnitのアンチパターン・ベストプラクティスに関する素晴らしいスライドを見つけたので内容を抜粋で紹介します。 1. テストの中で何もテストしていない class FooTest extends PHPUnit_Framework_TestCase { public function testSomething() { $foo = new Foo; $foo->doSomething(new Bar); } } こういうテスト。どこにもアサーションがなくて何もチェックしていません。 $foo->doSomethingの戻り値を検証しないならなんの意味もありません。 純粋にTDDをしていれば、テストコード作成→テスト実行でRed→プロダクションコード作成→テスト実行でGreenなのでこういうテストは登場しませ

    PHPUnitのアンチパターンとベストプラクティス
    yandod
    yandod 2011/05/05
  • CakePHPアプリをHudsonで継続的インテグレーションする方法

    この記事はCakePHP1.2系またら1.3系を対象としており、CakePHP2.0系では別のアプローチになります。 不思議なことにCakePHPアプリの開発でHudson使って継続的インテグレーションしている事例をほとんど見たことがないんだけど、個人的にはPHPアプリだって全部HudsonでCIすべきと思っているのでやってみた。 (ちなみに最近までphpUnderControlでCIしていた) 概略 CakePHPアプリでCIやろうとして問題になるのは、 CakePHPでのテストライブラリがSimpleTestでありJUnit互換のテスト結果を出力できないこと さらにSimpleTestでは一応XMLでの結果出力ができるのに、CakePHPreporterにcake_xml_reporterとかが無くて、html出力かテキスト出力しかできない という2点にあるので、この2点をクリアする

    CakePHPアプリをHudsonで継続的インテグレーションする方法
    yandod
    yandod 2010/11/22
  • cakephp AlphaNumericを環境非依存にする

    以前にも書いたんだけど、CentOS5系を利用していると、バリデーションのAlphaNumericが動作してくれない。その回答としては、環境に問題あるので、PCREをバージョンアップして、という風に書いたが、これだと、納品後どのサーバに配置するかによって、アプリケーションの動作に差が出てしまう。環境差によって差があるのであれば、それを検証するテスト書かなきゃいけなくなるので、今回は体を修正して、環境非依存な状態にする方法を紹介する。 libsディレクトリの中にあるvalidation.phpを修正する。 修正前 function alphaNumeric($check) { $_this =& Validation::getInstance(); $_this->__reset(); $_this->check = $check; if (is_array($check)) { $_th

    cakephp AlphaNumericを環境非依存にする
    yandod
    yandod 2009/08/17
    チケットの種
  • PHP 最近やったプロジェクトのまとめ

    4月から開発してきた案件が終わるのでちょっくら振り返りするぞ。 アーキテクチャ CentOS5 (開発はXAMPP) PHP5.1.6 CakePHP1.2 MySQL5 案件規模 コントローラー13(AppController含む) モデル14 ビュー80 コンポーネント4 PHPのソースで約1万行。テストコードで4000行。開発者は僕だけ。 ツール系 XAMPP 開発環境 Subversion ソースコード管理、ドキュメント管理に最初から利用。接続にはTortoiseSVNを利用。 Trac 課題管理、バグ管理、要件管理に利用 A5:SQL Mk-2 データベース関連の作業に利用。 Eclipse PHP開発用のIDE。Pleiadesを利用 Poedit i18nの言語ファイルの編集用 Lingoes 無償の辞書ツール。モジュール名や関数の命名に利用。 SimpleTest 

    PHP 最近やったプロジェクトのまとめ
  • CakePHPでコードカバレージを測定する

    タイトルに深い意味は無いんだけど、CakePHPSimpleTestでコードカバレージを真面目に取得してみたので、そのメモとか。 使っている環境 XAMPP1.7.0 PHP5.2.8 MySQL 5.1.30 Apache 2.2.10 Xdebugの入手 このバージョンのXAMPPに含まれているXdebug2.0.3ではカバレージが取得できず、Apacheごと死んでしまう問題があるので、Xdebug2.0.0を利用する。 http://www.xdebug.org/download.phpにアクセスして、環境にあったモジュールを取得する。 僕の環境の場合は、XAMPPのPHP5.2.8だから、図の赤枠で囲んだリンクをクリックしてファイルを保存する。 phpxdebug-2.0.0-5.2.2.dllをphpxdebug.dllにリネームしてphp\ext\の中に上書き保存する。 Xd

    CakePHPでコードカバレージを測定する
    yandod
    yandod 2009/06/22
    テストしたくなる記事
  • CakePHP トランザクションを使う

    4/23 19:16にちょっと更新。app_modelに定義しないで、いきなりモデル->commit()やモデル->rollback()は偶然動いているような気がしている点について追記。 久々にトランザクションを使うよ。環境はCakePHP1.2とMySQL4.1。 事前準備 MySQLのデータベースもしくは処理対象テーブルが、MyISAMではなく、InnoDBである必要がある。 MyISAMのままで、トランザクションのコマンドを発行しても、ロールバックできない。 今どのような形式になっているかは show table status; を実行すれば分かる。ここでMyISAMと表示されている場合は alter table hoge type=InnoDB として形式を変更することができる。 もちろんテーブル作成時にInnoDBを指定することもできる。 create table foobar

    CakePHP トランザクションを使う
  • CakePHP1.2RC3でalphaNumericが動かない | Ryuzee.com

    また嵌ったよ。 CakePHP1.2RC3を使って開発しているんだけど、XAMPPならうまく動作するのに、CentOS5.2だとvalidationのalphaNumericが動作しない。 色々調べているが、pcre周りが怪しい。 利用しているCentOSでは、phpをyum経由でインストールしていて、 php-common-5.1.6-20.el5_2.1 php-mbstring-5.1.6-20.el5_2.1 php-5.1.6-20.el5_2.1 php-pdo-5.1.6-20.el5_2.1 php-xml-5.1.6-20.el5_2.1 php-mysql-5.1.6-20.el5_2.1 php-cli-5.1.6-20.el5_2.1 php-pgsql-5.1.6-20.el5_2.1 php-pear-1.4.9-4.el5.1 が導入されている。pcreは、

  • (続々)PHP5でmojavi2を動かす | Ryuzee.com

    前回のエントリでは、海外でmojavi2をPHP5で動作させるプロジェクトをやっていた人にメールして、残念な結果に終わったところだったのだが、最終的になんとか動作するようにもっていけたので、そのメモ。 手順は以下の通りだ。 yumaプロジェクトの最新アーカイブである、yuma-snapshot-2005.4.26を入手する。 現在はwebarchiveでしか入手できないので、こちらに転載した。 アーカイブを解凍して出てくるmojavi-all-classes.phpを以下の通り修正する。場所は1249行目からのsetAttribute関数とsetAttributeByRef関数で以下のようになる。 function setAttribute ($name, $value, $namespace = 'org.mojavi') { $org_namespace = $namespace;

    yandod
    yandod 2008/11/11
  • 1