著者の @kaz_29 さんから「CakePHPで学ぶ継続的インテグレーション」を献本して頂きました。日頃から関心のある分野なので、早速読ませて頂きました。 PHP で学ぶ継続的インテグレーション 本書のタイトルは「CakePHPで学ぶ継続的インテグレーション」です。実際、本書の中では、CakePHPアプリケーションを題材に継続的インテグレーションを行う手法が解説されています。 ただ、ここで紹介されている継続的インテグレーションの手法は、CakePHP 固有のものではなく、他のフレームワークでも転用可能なものです。 勝手なお世話ですが、書籍のタイトルとしては、「PHPで学ぶ継続的インテグレーション」の方が、良かったかもしれませんね:D 分散された情報がこの一冊に 継続的インテグレーション(CI)を行うには、あるツールさえ入れておけばできるというものではなく、多くのツールを組み合わせる必要が
クラウドソーシングサービスのランサーズさん主催の勉強会、第4弾 週末ランサーズにて、CakePHP3についての講演を行いました。まだ開発中のCakePHP3を実際に動かしてみたのは初めてでしたが、自分自身でも興味深い変化を見ることができました。 CakePHP3.0はPHP5.4以降とComposerが必須 PHP4対応を捨てたCakePHP2に引き続き、CakePHP3ではPHP5.3以前を廃止し、PHPの最新の構文を取り入れた形に大きく変わります。PSR-0/PSR-1に対応しnamespaceを使った形に全てのクラスが整理されています。また共通のメソッドの実装も基底クラスに持たせるのではなくtraitに移行するなどの合理的な変更が加えられています。例えばControllerクラスの冒頭部分は下記のようになっています。 namespace Cake\Controller; use Ca
Introduction - FriendsOfCake/crud 「FriendOfCake/crud」ってなに? とりあえずこのスライドを見て欲しい。 まぁ要するに、今までのごちゃごちゃしてたControllerがスッキリして、API化させるのもめっちゃ楽になるよ!っていうPluginです。 わたしが注目してるところはココ! 今までは、Controllerでの処理をPlugin化するのは難儀だった。Controllerから呼び出されるViewはApplicationごとに違ってくるし、むりやりComponent化してみたけどしっくりこない感じで、どう実装しようか悩んでいたところこのPluginが登場! Class EditCrudAction | FriendsOfCake/crud (develop) 上のコードを見て欲しいんだけど、Controllerでの処理の流れはCrudAct
2013/8/29からの4日間、CakePHPの公式イベントであるCakeFestがサンフランシスコで開催されました。2年ぶりにアメリカでの開催となった今回は参加者も多くとても賑わっていました。今回のイベントの基調講演でCakePHP3の現状についていくつか情報が出てきましたのでご紹介します。 CakePHP3の気になる新機能 現在はブランチで開発されているCakePHP3ですが、今年のうちにはベータなどのリリースが行われ最終的なリリースは来年になる見込みです。PHP5.3を飛び越えて5.4に対応する形になり名前空間などコードの見た目をぐっと現代的に変える変更が数多く行われています。今回の発表で言及された変更点は下記のとおりです。 PHP5.4以降に対応 namespaceに完全対応 DATABASE_CONFIGが廃止され、Configureに統合 Composerに標準対応 ルーティン
After conducting a security audit on our code we have patched a possible security risk in current CakePHP release. CakePHP 2.3.5 has just been released to fix a critical issue with how the webroot property in CakeRequest is handled that could potentially lead to XSS attacks on certain pages. In the following days we will offer a full description of the vulnerability and how it can be exploited, af
2月に届いた3DプリンターKodama Trinus。身の回りの雑貨を印刷して楽しんでいて、いよいよABSの印刷にもチャレンジしようかとABSのフィラメントを買って印刷をしてみました。 が、印刷が1時間ほど経過したところでACアダプタから異音が発生。アダプタを触ると火傷するほど高熱になっていてこれはマズイと思い印刷を停止しました。。 ネットのフォーラムを見ると同じ悩みを抱えている人がそこそこ居て、ATX電源を利用し解決した方を見かけました。が、なんとなく汎用ACアダプタでなんとかならないかなあと思い、仕様を確認し思い切って買ってみました。 Read More
株式会社うるるで開催された、第1回CakePHP勉強会で発表してきました。 今回のお題は、「エンジニアとデザイナーの協業」でした。 デザイナー向けというのは、実は3回目ぐらいなので何を話そうかなと悩んでました。悩んだ末に、プログラマがどこまでデザイナに優しいCakePHPにカスタマイズできるかやってみようというストーリにしました。 CakePHPのレールの外し方 (CakePHP勉強会@uluru 20130419) from ichikaway 一番言いたかったことは、「ルールは最後に自分たちで決める、決める上で何が正しいかはプロジェクトごとに違うので、世の中で正しいとか、これがCake流だとか、ベストプラクティスとか言ってるのに流されすぎない方が良い」ということでした。 CakePHPでも積極的にヘルパー使わないとか、レイアウトファイル使わないとか、Apache側のmod_rewrit
If you are using CakePHP's PaginatorComponent without whitelisted sort fields you should upgrade as soon as possible to prevent possible SQL injections. CakePHP 1.2.12, 1.3.16, 2.2.8 and 2.3.4 have just been released to fix a critical issue with how pagination & PaginatorComponent handle sort criteria. When paginating without a sort column whitelist it was possible to execute arbitrary SQL by mani
先日告知したCandyCaneの開発会が無事に執り行われました。参加者の皆様にはCandyCaneの特製パーカーと肉たくさんカレーを進呈させていただきました。Hamacoさんの動きっぷりにイベントの盛況さが現れています。 丸一日のTDDは強烈な成果 今回は新しく開発に加わってもらう方を募るという事も兼ねて、ユニットテストを厚くするという作業を中心に丸一日の開発を行いました。よって1日で20以上のプルリクエストをマージしましたが、昨日は何も増えていません。とはいえ実際に稼働するアプリケーションのソースコードにテストを書き、プリリクエストとCIを併用したチーム開発を行うという内容は実にチャレンジでTDD未経験の方にとっても実りある内容になったようです。 Travis CIは最強 コミットがプッシュされる度に自動的にユニットテストを実行して結果をレポートしてくれるTravis CIですがやはり便
久方ぶりにPHPerに戻ってる今日この頃。 RailsのRAILS_ENVで環境に応じた設定でアプリケーションが動作する、みたいなことをCakePHPでもやってみたのでメモ。 これで開発環境でも本番環境でも同じファイルが使えるようになり、リリースの都度手動又はデプロイツールで書き換えるとかそういうめんどくさいことしなくてもよくなる。 ちなみに以下のページを激しく参考にしました。感謝。 CakePHP core.phpの設定をbootstrap.phpに書く | Shin x blog CakePHP 環境に応じてDBの設定を変える | Shin x blog httpd.conf まずCAKE_ENVというのをApacheのSERVER変数に持つ。 これがproductionなら本番環境。 セットされてなかったら開発環境扱いで。 <virtualhost *:80> ServerAdmin
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替える設定 app/Config/bootstrap.phpを以下のように変更もしくは追加して下さい。 // app/Config/bootstrap.php[変更or追加 後] /** * Configures default file logging options */ App::uses( 'CakeLog', 'Log'); CakeLog::config( 'debug', array( 'engine' => 'FileLog', 'types' => array( 'notice', 'info', 'debug'), 'file' => date( 'Ymd') . '_' . '
「CakePHP2 実践入門」で紹介されていたのを見て初めて知ったのですけど、 capcakeというツールがあります。 jadb/capcake · GitHub 本→CakePHP2 実践入門 (WEB+DB PRESS plus) “Capcake extends Capistrano, removing the rails-ism, replacing them by more cake-ish ones.”と書いてあります。 なんと、コレは楽しそうだぞ!!という話です。あらやだ。 現状の話 CakePHPをCapistranoに乗せよーとすると、ベタベタと(FTPで扱うが如くに)やると面倒なのが tmpディレクトリーの中身と所有権 ログの中身と所有権 環境ファイルの切り替え(core.php, database.php) であります。 我々はパパっと作ったケーキをささっとお出しし
CakePHP 2.xで、セッションタイムアウトの時間を指定しようとすると、下記のように書くと思います。 Config/core.php Configure::write('Session', array( 'defaults' => 'php', 'timeout' => 1440, //1days ←単位は分 )); しかし、これだけではダメだったりするのです。 具体的には、1日経たなくてもセッションタイムアウトしてしまいます。 その理由は、PHPでのセッションファイルのガベージコレクションにあります。 PHPでは、セッションを開始すると(session_start())、ふつうはセッションファイルを作成します。 CentOS6.2にyumでPHPを入れた場合は、/var/lib/php/sessionあたりです。 CakePHPのcore.phpで、Session.defaultsを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く