CakePHP

swaggerでAPIドキュメントを書いたらめっちゃはかどった話

Swaggerは、REST APIの仕様とそれに関連するツール群の総称です。REST APIの仕様を定義したJSONファイル(Swagger Spec)を軸に以下のようなツールから構成されています。 Swagger UI - Swagger Spec から動的にAPIドキュメントを生成するツール Swagger Edito…

CakePHPでもChatOps

ここ2週間ほど、追い込みで自宅に引きこもっていたわたなべです。 ChatOps 去年の夏ころから弊社でもSlackを使っていて、いま開発中の案件でも開発中の様々なイベントがSlackに流れてくるようになっています。いま連携してるのはこんな感じ。 Github Pivota…

「CakePHPで学ぶ継続的インテグレーション」- CakePHPを使って継続的インテグレーションを実践するながれを解説した書籍が出版されます

一部の方には事前にお話していましたが、わたしも共著で執筆に参加した「CakePHPで学ぶ継続的インテグレーション」という、CakePHPを使って継続的インテグレーションを実践するながれを解説した書籍が9/19にインプレスから出版されます!CakePHPで学ぶ継続的…

FileFixture Plugin for CakePHPを作りました

皆さんテスト書いてますか?という事で、必要に迫られて「FileFixture Plugin for CakePHP」を作りました。 Fixtureのデータを外部ファイルから読込む プロジェクトの規模が大きくなってくると、整合性の取れたテストデータを手動でFixture形式にするのは結…

「CakePHP2+Jenkinsで継続的インテグレーション」について話してきました

週末に行われた「(CakePHPとか)PHPのテストについての勉強会」@Co-Edoで、「CakePHP2+Jenkinsで継続的インテグレーション」について話してきました。今回は、CIの概念とかメリットに関してはこことか、ここなど先人のすばらしい資料に丸投げし(^^;、実際に…

ACL PluginでACL再入門

CakePHP Advent Calendar 2012 18日目の記事です。 昨日は、@msngさんのCakePHP の Configure クラスで最も悩ましい点を解決する方法 でした。確かにConfigureはちと長いですよね(^^;。当初、BDD Pluginについて何か書こうと思っていたのですが、なかなか時…

今時なCakePHPでの開発環境!?

前職を退職してもう半年以上経ってしまいました。おかげさまで、レガシーなコードとのバトル等色々お仕事しています。さて、先日のPHP Matsuri2012での@ryuzeeさんの発表を聞いて、開発環境や手法を改善するべく、今月から始まったプロジェクト用の環境を構…

CakePHP2実践入門がでました

9/29にわたしも共著で執筆に参加した「CakePHP2 実践入門」が発売されました。 安藤さんを筆頭に錚々たるメンバーです。CakePHPを使っている方であれば、ブログや書籍などでほぼ100%お世話になったことがあるのではないかと思います。 執筆環境 今回の執筆環…

CakePHP2+PostgreSQLでGeoデータを簡単に扱う!?

@tkengoさんから引き続き CakePHP Advent Calendar 14日目の記事です。深く考えず参加申し込みをしたらダブルヘッダーになってしまいヒーヒー言っているわたなべです(^^;この記事はCakePHP2系の記事です。 明日にはこんなイベントも開催されるようで、最近…

PHP Matsuriに参加しよう!

色々ばったばったしているわたなべです。 このエントリーは、10/15-16に大阪で開催されるPHP Matsuriのリレーブログエントリーです!http://2011.phpmatsuri.net/:image=http://img.f.hatena.ne.jp/images/fotolife/k/kaz_29/20111002/20111002173256.gifま…

candycaneをPostgreSQLにも対応させたい!

昨日の夜に社内用 redmine をアップデートしていたのですが、まだCakePHPもgitも覚えたての頃に、CakePHP開発合宿に参加して開発したのを思いだしたのか、急に candycane が気になったので、ちょっといじってみる事にしました。まずは手始めに、手持ちのMac…

Datasourceを使い倒す

CakePHP Advent Calendar2010 も折り返し点を過ぎました。CakePHP Advent Calendar2010は、ネタの調整などはしていないのですが(してないよね(^^;?)、参考になる話ばかりだし、まだネタがかぶったという話は聞かないので正に「君の当たり前に僕らは感嘆させ…

PHPMatsuriは熱かった!

大分たってしまいましたが、今回も昨年と同じく、スタッフとして参加したPHPMatsuriがなんとか無事終了しました。ブログを書かないとPHP Matsuriが終わらないので(^^; 私のみたPHP Matsuriについて少し書きたいと思います。 準備 当日 @yando さんも話してい…

独自namedパラメータを使って逆ルーティング

結構な忙しさなのですが、id:cakephperさんのTweetをみて妙に納得してしまったので、昨日はまってた事をまとめました。CakePHP 1.2.5で開発中です。namedパラメータはなかなかに便利なのですが、独自のnamedパラメータを使っているURLの逆ルーティングではま…

csv_sourceにfind,paginate対応を追加しました

先日のPHP勉強会の発表で取り上げた、csv Datasourceはcsvが非常に馴染み深いフォーマットなので Datasourceの挙動を理解するのにはとても良い教材だと思います。しかし、findやpaginateには対応していない簡易なものなので発表した勢いで簡単なfindとpagina…

第49回PHP勉強会@関東で発表してきました

第49回PHP勉強会@関東で、久々の参加&発表してきました。第49回PHP勉強会@関東 http://events.php.gr.jp/events/show/88発表資料 サンプルコードはこちらから発表は相変わらず...でしたが、なんとかDatasourceの面白さは伝えられたかなぁと思います。lithiu…

Schema ShellでDB設定を切り替える方法

忘れそうなのでメモ。今開発中の案件では、DBのスキーマ情報をCakeSchemaで管理しています。 本番環境に反映時する際、DB設定の切り替え方がわからなかったので調べてみました。connectionというパラメータを指定すると切り替えられます。以下の例だと「prod…

CakeLogをスマートにカスタマイズする方法

CakePHPのログ出力処理は結構簡易なもので今ひとつ使いにくいです。また、「内部的に flock してるからアクセスが多いと遅いので実運用では使わない方が良いよ!」という話も聞いていたので、うちではカスタマイズしたものを使っています。ROOT/cake/libs/ca…

sfMobileIPPluginをCakePHPに移植してみた

btoさんが作られたSymfony用のプラグインsfMobileIPPluginをCakePHPに移植しました。 IPアドレスから携帯のキャリアを高速に判定するsymfonyプラグインを作った [blog.bz2.jp] sfMobileIPPlugin [openpear.org] 以前から移植したものを利用していたのですが…

AuthComponentで軽くはまりました...

最近いろんなところではまってます...orzid:cakephperさんのブログでTwitterでのつぶやきが取り上げられていたので、ちょっとまとめてみます。現在、あるアプリの基盤部分を実装中なのですが、Authコンポーネントを使って管理ページの機能を作っています。 …

ContollerのTestのはまりどころ(redirect)

最近、テスト廚ぎみなわたなべです(^^;ビジネスロジックは出来るだけModelやComponentに書く様にしているのでModelやComponenntなどのテストはそれなりに書いていたのですが、Controllerのテストは全く書いていませんでした。とはいえ、Controllerにも処理が…

Cake Matsuri TOKYO 2009が終りました。

10/30〜31の二日にわたって開催された、CakeMatsuri TOKYO 2009が盛況のうちに終了しました。 今回は、参加者ではなく中の人として関わらせていただきました。 感想 初の試みが盛りだくさんで、色々と至らない部分もあったと思いますが、概ね満足頂けたよう…

ぼくとわたしのCakePHP

http://matsuri.cakephp.jp/:image=http://matsuri.cakephp.jp/themed/tokyo09/img/badges/matsurired.pngCakeMatsuri応援企画 "リレーブログ「ぼくとわたしのCakePHP」" のバトンをid:cakephperさんから受けましたので、そうそうたるメンバの中、CakePHP暦…

smatyview pluginを公開しました

先日の、CakePHPオフ会でMASA-Pさんに了承頂いたので、smartviewをplugin化して若干手を入れたものを公開しました。 まだドキュメント等もあまり整備されていませんが、ひとまずという事で...下記からどうぞ。http://github.com/kaz29/smartyview/tree/maste…

第1回 CakePHPオフ会@関東が開催されます!

id:cakephperさんの所でも既に告知がありますが、 第1回 CakePHPオフ会@関東が開催されます。 前回のirc集会のあとに色々話をしていて、「いきなり懇親会みたいな集まりをやりたいねー」みたいな話になりついに開催する運びとなりました。 http://atnd.org/e…

CakePHP 1.2.3.8166リリース

CakePHP 1.2.3.8166がリリースされましたよー。 http://bakery.cakephp.org/articles/view/release-cakephp-1-2-3-8166先日書いたpagenatorのバグが修正されている様です。セキュリティーフィックスも含まれている様なので、サクッっとアップデートしました。

CakePHPでテンプレートにDBを使用する方法

現在進行している案件では、リリース後はクライアントさんの運用担当者にtemplate修正をしてもらう流れになるので、CMS的な物を作成中です。そこで問題になるのは、templateエンジンどうするか! CakePHP1.2では、拡張子 ctpのphpファイルがデフォルトのテン…

CakePHP 1.2.2.8120 paginatorでの問題

ここの所CakePHP漬けです(^^。 業務への適用をもくろみ色々とテストをしていたのですが、一点問題が発覚。 paginatorでリストをソートしようとすると descになりませんでした。色々調べていたのですが、何らかの条件でソートキーが「モデル名.キー」になって…

CakePHP開発合宿に参加してきた。

合宿は明日まで続きますが、諸事情により(予定通り)早退しました(;_;。今回は、CakePHP初心者という事で簡単めな機能を割り振ってもらったのですが、結局半分もこなせませんでした(;_;。 この種の開発合宿自体始めてだったのですが、かなりハードですがな…