タグ

cakephpに関するakishin999のブックマーク (64)

  • CakePHPを使ったMVC設計のベストプラクティス - Sooey

    CakePHPを使ったMVC設計のベストプラクティス 個人的にはCakePHPはあまり好きではないのですが、CakePHP開発メンバーによるMVCデザインの記事 (CakePHP のおいしいべ方)で紹介されていたBest Practices in MVC Design with CakePHP (php|architect’s C7Y)はMVCフレームワーク利用者にとってとても有用な情報だったので、訳してみました(php|architectの方には翻訳許可を頂いています)。 この記事を読んでドメインモデルに興味を持った方は、エンタープライズ アプリケーションアーキテクチャパターン(PoEAA)やDomain-Driven Design: Tackling Complexity in the Heart of Softwareに手を出してみるのもいいかも。他に、InfoQにユーザー登録すれ

  • The CandyCane Open Source Project on Open Hub

    Analyzed about 11 hours ago. based on code collected about 17 hours ago. Project Summary candycane is a implementation of redmine on CakePHP. Screenshots are available there. http://www.flickr.com/photos/31771109@N05/sets/72157617898135654/ Tags No tags have been added Badges

  • CakePHPで複数テーブルに対するトランザクションを使う場合 - takami_hiroki’s blog

    CakePHPでトランザクションを使用する必要があったのですが、一般的に用いられている方法だと、複数のテーブルを1つのトランザクションとして更新したい場合、コントローラ内での実装がとても分かりにくくなると感じ、異なる実装方法をとってみたので、ご紹介します。 一般的な実装方法とその課題 一般的な実装方法としては、app/models/app_model.phpに、下記のようなトランザクション管理用のメソッドを追加することが多いと思います。基的に、各モデルクラスは、AppModelクラスを継承しているため、これらのメソッドをどのモデルからも利用可能になります。 function begin() { $db = & ConnectionManager::getDataSource($this->useDbConfig); $db->begin($this); } function commit

    CakePHPで複数テーブルに対するトランザクションを使う場合 - takami_hiroki’s blog
  • CakePHP で Security.level の high 設定について ( ラボブログ ) - ryuzi_kambe の?D

    CakePHP, Securityhttp://blog.spicebox.jp/labs/2009/05/cakephp_security_high.html なんだか CakePHP で認証なりセッションなりで悩まされるとき、原因をたどっていくと結構 core.phpSecurity 設定を high にしていることが原因だったりすることがあるので不思議に思っていたのですが、隙を見て akiyan さんにちらっと聞いてみたらやっぱり『Security.level::high はできない子』らしいので、いい機会だと思ってここにまとめてみます。 セキュリティが好きだ! - Favorites! CakePHPSecurity.levelとセッション - あぁ そうだった Security.levelがhighに設定されていると、セッション「ID」は毎回生成されるのがCakePHP

  • Webアプリケーション向けの自動セキュリティスキャナ「Skipfish」を試してみました

    こんにちは、中川です。 先日、GoogleからWebアプリケーション向けの自動セキュリティスキャナ「Skipfish」が公開されたので、社内で利用しているCakePHPのアプリで試してみました。 Skipfish( http://code.google.com/p/skipfish/ )は、Webアプリケーションの脆弱性、SQLインジェクションやクロスサイトスクリプティング等を自動的に検出してくれるApache License 2.0のライセンスで公開されているオープンソースのツールです。 必要なライブラリは以下とのこと。 * GNU C Compiler * GNU Make * GNU C Library (including development headers) * zlib (including development headers) * OpenSSL (including

    Webアプリケーション向けの自動セキュリティスキャナ「Skipfish」を試してみました
  • CakePHP Authコンポーネントでパスワード・ハッシュをストレッチングするには? - ScriptWorks.JP

    『 体系的に学ぶ 安全なWebアプリケーションの作り方 』で解説されていたパスワード・ハッシュのストレッチングをCakePHPで実装してみました。 ストレッチング処理の肝となる部分は書籍に書いてある内容のままですので(汗)、設定方法を簡単に説明します。 【 注意事項 】 今回実装したStretchAuthコンポーネントの導入にはパスワード( ハッシュ )の再登録が必要です。 また、運用中のシステムへの導入や導入後の設定変更により、ハッシュ方式やストレッチ回数が異なるパスワードがDBへ登録されますので、必ずDB及びシステムのバックアップを行ってからお試しください。 ※ 諸般の事情により、CakePHP-1.2.10 でしか動作確認していませんので 1.3 や 2.0 で動いた方は @scriptwork まで教えて頂けると助かります それではまず bootstrap.php でパラメーターを

  • nginx+php-fpmをyumでインストールして、WordPress/CakePHPを動かす設定

    Home > PHP | Web+DB > nginx+php-fpmをyumでインストールして、WordPress/CakePHPを動かす設定 www.1×1.jpの環境をApache+mod_phpな環境から、nginx+php-fpmな環境へ移行しました。 さくらVPSのCentOS5.5環境にnginx+php-fpmをyumでインストールして、CakePHPWordPressを動かす設定を行いました。 このエントリでは導入ということで、インストールから、とりあえず動作するところまでをご紹介します。 0. 構成 nginx+php-fpm環境にCakePHPWordPressをインストールします。 それぞれ以下のURLでアクセスできるようにします。 http://www.1×1.jp/ -> CakePHP http://www.1×1.jp/blog/ -> WordPres

  • CakePHP で OAuth 認証を使ったログイン認証・保持や会員データの保持・更新をするコード

    CakePHP で OAuth 認証をしてログインなどをしたり、会員データをデータベースに持っておく仕組みを作る際のサンプルを紹介します。CakePHP 1.3 での動作確認をしています。今後出てくる CakePHP 2.x 系では動作確認しておりませんのでご了承ください。 cakephp用OAuth認証ライブラリをつかってみた – メガネ女子(21)のメモブログ TwitterのOauthを使ってCakePHPのAuthコンポーネントにログインさせる – kur.jp CakePHPTwitterマッシュアップを作る#4 – BUENA VISTA SOCIAL BLOG OAuth 認証ライブラリを組み込み 以下のページより OAuth のライブラリを読み込みます。 OAuth consumers for CakePHP – by cakebaker このファイルを vender/

  • CakePHP - バリデーションのエラーメッセージをシンプルに国際化(i18n)する方法 - たきゃはしです

    いま時のWeb開発で「i18n」は基である。どうやら(謎の倒置法 まず、CakePHPでの一般的な国際化(i18n)については 「CakePHP1.2の簡単国際化 」がとても参考になりました。(1.3でも問題なかったです 上記の記事内のステップがすべて完了すれば コントローラ内の"__()"で囲まれた部分はすべて国際化されます。 しかしモデル内、特にバリデーションのエラーメッセージには "__()"が使用できないため"cake i18n"コマンドで抽出できずに英語のままです。 今回はこの部分をシンプルに日語化する方法を書きます。 色々やれば抽出させることも可能ですが、色々やらなくてはなりません。 はじめにapp_model.phpに数行のソースを追加しておきます。 //app_model.php function invalidate($field, $value = true) {

    CakePHP - バリデーションのエラーメッセージをシンプルに国際化(i18n)する方法 - たきゃはしです
  • CakePHP開発者が知るべき10のこと

    先日、こんな記事が上がっていました。 Android開発者が知るべき10のこと この記事でまとまっているのは、Android開発において必要な10の項目です。 インターフェースの設計から、データの取り扱いまで。 AndroidはモバイルデバイスのOSで、CakePHPは単なるWebフレームワーク。 しかし、予め用意されたルールやAPIを活用する点は同じです。 つまり、フレームワーク全般において、開発者が知るべきことをまとめることが出来るはずです。 ここでは、私が良く利用するCakePHPフレームワークについて、開発者が知るべき10のことをまとめます。 1. CakePHPで良いのか CakePHPを使う際に、知るべきことその1。 それは、あなたは当にCakePHPを使うべきなのかということです。 現在、あらゆるフレームワークが溢れ返っています。 Ruby Ruby On Rail

  • CakePHP - CSVダウンロード(エクスポート)機能を実装する『CSV Helper』 まとめ - たきゃはしです

    CakePHP2対応したのCSVヘルパーはこちらです。 FastCSV ヘッダだとか文字化けで取っつき難いCSV関連 最初に言っておきます、CSV Helperはとても易しく使いやすいです。 →CSV Helper (PHP 5) ザッとマニュアルを見てから思い通りの実装・出力まで30分程度でした。 それでは、さっそく使い方を説明します。 1.まず、「app/views/helpers/」に「csv.php」を作成して 以下のソースをそのままコピペしてください。 <?php class CsvHelper extends AppHelper { var $delimiter = ','; var $enclosure = '"'; var $filename = 'Export.csv'; var $line = array(); var $buffer; function CsvHelp

    CakePHP - CSVダウンロード(エクスポート)機能を実装する『CSV Helper』 まとめ - たきゃはしです
  • PHPフレームワークの「codeIgniter」がスゴすぎる | H2O Blog.

    新しいことを勉強して、久々に心底感動しました。 Facebookである方が「もうすぐCodeIgniterカンファレンスが開催される」といったつぶやきをしているのを拝見し、この時初めてその存在を知りました。。 PHPのフレームワークで、習得が早く、動作速度が爆速だということだったので、ちょっと触ってみるかとダウンロードしてドキュメントを読みながら Hello World!を作ってみる。すると・・・ こ・・これはすごい・・ なにがすごいって、これまで私は「CakePHP」を超愛用していました。CakePHPは、もちろんそのほとんどがすごくいいのですが、若干だけ不満があったのです。しかし、codeIgniterではCakePHPの好きなところはそのままに、不満が全部吹っ飛んでいたのです。 では、その全貌をご覧入れましょう。 モデル・ビューが不要 CakePHPもcodeIgniterも、MV

  • 1週間でトリビア共有サイト”trivist”を作ってみた

    ここのところ、ブログの更新もツイッターのつぶやきも完全にストップしていました。 集中力のない@tfmagicianにしては珍しいことです。 何をしていたか。 こんなウェブ・サービスを作っていましたよ。 『trivist』おもしろいトリビア・雑学を紹介! 実はこれ、作成期間1週間です。 シンプルなサイトなので、恐らく、開発に慣れた人なら1週間は余裕でしょう。 今日は、まだフレームワークを使った開発、あるいはウェブ・サービスの開発自体に慣れていない人に向けて、高速開発に関するtipsを紹介します。 高速開発とは何か考える まず、高速開発を可能にする”最強最大の魔法“を考えましょう。 それはこれです。 コーディングしない コーディングしないで、システムが出来ればなんと良いことか! これはエンジニアにとって、当たり前のことです。 しかし、これを念頭に置くのと置かないのでは、まるで開発速

  • CakePHPのSecurityComponentの脆弱性で任意のPHPコードが実行できる仕組み - disり用。

    もはや懐かしい感じのあるCakePHPセキュリティトークンから任意のPHPを実行できる脆弱性ですが、なぜこれで任意のPHPコードが実行可能になってしまうのか心配で夜も眠れない方の為に、実行される仕組みを解説してみようと思います。詳細とアドバイザリ、PoCは以下のものを参照しています。 http://co3k.org/diary/12 http://malloc.im/CakePHP-unserialize.txt http://malloc.im/burnedcake.py CakePHPSecurityComponentが提供するCSRF対策のトークンは単一の識別子ではなく、':' でトークンと$lockedという謎の値が繋がれたものになっています。$lockedには配列をシリアライズしたものをROT13で変換したものが入っています。この$lockedに任意の値を入れることで任意のP

    CakePHPのSecurityComponentの脆弱性で任意のPHPコードが実行できる仕組み - disり用。
  • CakePHPで普段使っているpluginをまとめてみた | Web活メモ帳

    2010年を振り返る意味で、自分がCakePHPで開発する際に良く使うプラグインをまとめてみました。 誰かのお役に立てれば幸いです。 1.cakeplus ■ よく使うバリデーションをまとめたBehaviorであるadd_validation_rule モデルでバリデーションする際に当に使います。 var $validate = array( 'hoge' => array( "rule1" => array('rule' => array('katakana_only'), 'message' => 'hogeにカタカナ以外が含まれています' ), ), ); ■ 自動でhiddenタグを生成するヘルパーformhidden 確認画面を挟む際にhiddenに入力情報をまとめて出力してくれます。 echo $formhidden->hiddenVars(); このプラグインを知ってから、

    CakePHPで普段使っているpluginをまとめてみた | Web活メモ帳
  • CakePHP の PHP コード実行の脆弱性を使って CakePHP を焦がす - co3k.org

    2010/11/13 に出たらしい http://bakery.cakephp.org/articles/markstory/2010/11/13/cakephp_1_3_6_and_1_2_9_released を読んでびっくりしたんですが、 Twitter を軽く検索した限りだと CakePHP ユーザでない僕が気づいているのに (日の) CakePHP ユーザさんたちがどうも気づいていないっぽいのでわかりやすくまとめてみることにしました! CakePHP には任意の PHP コードが実行できる致命的な脆弱性があります! 影響のあるサイト結構ありそうですが悪用厳禁です! ※通常リリースの告知のなかにこんな致命的な脆弱性に関する情報を思いっきりわかりにくく書いちゃうのはひどいなあと思うので、ユーザの方は CakePHP に文句を言うといいと思います。僕は CakePHP ユーザじゃない

  • 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で継続的インテグレーションする方法
  • CakePHPで作る携帯サイト·Ktai Library MOONGIFT

    Ktai LibraryはPHP製のオープンソース・ソフトウェア。日の携帯電話はとても優秀であり、携帯電話からのWebアクセスは年々増え続けている。数年後にはPCからのアクセスを抜くとさえ言われている。Webの主役は変わりつつあるのだ。 ファイル構成 そうなれば携帯電話向けサイト開発はごく当たり前に行うべきものになるだろう。PCサイトとは相当にノウハウが異なるので注意が必要だ。だが既にすばらしいライブラリが多数ある。CakePHP開発者ならKtai Libraryを使うといいだろう。 Ktai LibraryはPHP4/PHP5両方に対応したライブラリで、CakePHP用のライブラリになっている。絵文字キャッシュ、IPによるキャリア判定、Google Static Maps APIの利用、インラインスタイルシート支援、セッション対応、リダイレクト対応、uid取得、キャリア判別など多数の機

    CakePHPで作る携帯サイト·Ktai Library MOONGIFT
  • CakePHP 1.3でsessionを使いたくない - pekeqのブログ

    CakePHP 1.3 config/core.phpでConfigure::write('Session.start', true)である 特定のcontrollerだけsessionを使いたくない Sessionは使いたくないが、Securityコンポーネントのように、内部でSessionを読み込んでいるコンポーネントを使いたい Session.startをfalseにすりゃいいかと思っていたら、beforeFilter()に書いてはダメで、constructClasses()をオーバーライドするのがいいようだ。 <?php class HogeController extends AppController { var $components = array('Security'); function constructClasses() { Configure::write('Se

    CakePHP 1.3でsessionを使いたくない - pekeqのブログ
  • CkaePHPプラグインのまとめ – 総括編

    CakePHPはやはり便利ですね。 記事を翻訳したことで、まだまだ知らない世界があったことを知りました。 そしてまた新しい知識欲が湧いてきました。 皆さんはどうですか? 何か使ってみたいプラグインはあったでしょうか。 これまで載せたCakePHPプラグインの記事を一覧にしておきます。 認証編 AuthComponentの代替えになるプラグインやfacebookと連携するプラグインが紹介されています。それに加え、使いにくいACLを使いやすくするツールも。個人的には一番、興味のある記事でした。 検索とページネーション/ファイルアップロード編 CakePHPの使いにくいページネーションを使いやすくするプラグイン、Yahoo! BOSSのプラグインが紹介されています。ファイルアップロードはTransloaditというサービスに対応させるプラグインから、メジャーなメディアプラグインまで。 最適