タグ

cakephpに関するmatsuoshiのブックマーク (118)

  • CakePHP における Mass Assignment 脆弱性対策

    Rails 界隈で話題の Mass Assignment 脆弱性を CakePHP で防ぐ方法です。 Github に Mass Assignment 脆弱性が発見されて、Rails 界隈で話題になっています。この問題自体は目新しいものではなく、Rails 自体の問題というより、Rails アプリケーションの作り方の問題ということで、以前から作る側が注意を払う必要がありました。 この Mass Assignment 脆弱性は、Rails を手に発展してきた CakePHP アプリケーションでも同様の問題が発生する可能性があります。知っている人には常識なのですが、まだ知らない人もいるかと思うので、CakePHPにおける対策方法を書いてみます。下記コードはCakePHP2系を想定していますが、考え方はCakePHP1系でも同じです。 Mass Assignment 脆弱性 CakePHP

  • フォーム入力画面と確認画面で共通で使えるXFormヘルパーをCakePHP2.0対応しました - cakephperの日記(CakePHP, Laravel, PHP)

    Cake1用に作っていたXformヘルパーをCake2.0対応しました。(CakePHP2.1.1でも問題なく動きました) https://github.com/ichikaway/xformHelper/tree/2.0 ※現在、PHP5.2ではエラーがでますので、PHP5.3以上が動作条件になります(2012/4/18) Xformヘルパーは、まったく同じ記述で、フォーム入力画面ではinputタグを出力、確認画面ではPostデータを表示するヘルパーです。これにより、確認画面のViewファイルが入力画面と同じものが使えるようになり工数削減できます。 Cake2に対応した際にプラグイン化しています。 インストール方法 git cloneか、zipファイルをダウンロードし、 app/Plugin/Xformに設置。(Xform以下にはViewフォルダが入るはずです) app/Config/b

    フォーム入力画面と確認画面で共通で使えるXFormヘルパーをCakePHP2.0対応しました - cakephperの日記(CakePHP, Laravel, PHP)
  • [CakePHP] SoftDeletable Behavior で論理削除 | Sun Limited Mt.

    先日の第4回 CakePHP 勉強会で発表した内容でもあるのですが、簡単に SoftDeletable Behavior の使い方をまとめました。(少しだけ発表ないようにない追加情報もあります) SoftDeletable Behavior はソフトデリート(論理削除)を簡単に実現してくれる大変便利なビヘイビアです。論理削除とは DB から DELETE するのではなく削除フラグを設けて DELETE する変わりに削除フラグを立てて削除したことにすることです。 一番参考になるのはやはり Bakery です。英語が苦にならない方は私の説明よりも下記エントリを見る方がいいです。 Soft Deletable Behavior (Articles) | The Bakery, Everything CakePHP 勉強会で発表した資料は下記にありますので、よろしければこちらもご覧下さい。 Cak

  • Google検索のように『GET送信+ページング』をCakePHPで実現するには - すたら日記

    【CakePHP 1.3系】 最終更新:2011年12月07日 結論以下のようなURLを生成すればよい。 【通常】 1ページ目 http://example.com/posts/search?keyword=hoge 2ページ目以降 http://example.com/posts/search/page:2/keyword:hoge 【検索文字列にスラッシュが含まれる場合】 1ページ目 http://example.com/posts/search?keyword=hoge/fuga/piyo 2ページ目以降(スラッシュを独自にエスケープしている) http://example.com/posts/search/page:2/keyword:hoge~!fuga~!piyo 解説はじめは悩む必要はありません。 【ビュー】 echo $form->create('Post', array(

    Google検索のように『GET送信+ページング』をCakePHPで実現するには - すたら日記
  • CakePHP開発者が知るべき10のこと

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

  • CkaePHPプラグインのまとめ – 総括編

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

  • 付録 - 2.x

    This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release!

    matsuoshi
    matsuoshi 2011/10/31
    2.0移行ガイド
  • 色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)

    PHPフレームワークの速度比較では、HelloWorldを表示するのみの単純なアプリを用いた計測を元に比較表が作られることが多いです。特に後発のフレームワークは分かりやすい特徴付けとして速度をアピールする傾向にあるため、その比較表を元に N倍速いというアピールをしています。 PHPフレームワークを使うということは、DBまで絡めたWebアプリを作ることがほとんどなため、HelloWorldアプリの比較よりは、DBからレコード取得して表示するまでの処理速度を比較したほうがより現実に近い指標になると思います。特にCakePHP1系ではDBのデータ取得も独自ドライバになっていますし、モデルの処理も重いのでそこまで含めて他と比較したほうが良いと思ってます。 今回はDBから1レコード取得して表示するという簡単なアプリで各フレームワークの速度を評価しました。フレームワークに備わっているViewキャッシュ

    色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)
  • CakePHPの超便利なファイルアップロードプラグイン、FileBinderプラグインの使い方をまとめてみた。

    INSPIRE TECH > その他 > CakePHPの超便利なファイルアップロードプラグイン、FileBinderプラグインの使い方をまとめてみた。 CakePHPを利用している上で、一番悩むのがファイルのアップロードとその管理です。 MediaPluginという有名なファイルアップロードプラグインがありますが、高機能・多機能との引き替えに、インストール方法やその利用方法が非常にわかりづらく、さらにプラグインをバージョンアップしただけでエラーを吐いて動かなくなったりと、常時メンテナンス、するプロジェクトに導入するには少々の抵抗があります。 そこで、もっとシンプルで使いやすいファイルアップロードプラグインである、FileBinderプラグインを紹介したいと思います。 FileBinderプラグインの特徴 FileBinderプラグインは、ファイルアップロードに関して下記のような機能を持っ

    CakePHPの超便利なファイルアップロードプラグイン、FileBinderプラグインの使い方をまとめてみた。
  • Datasourceを使い倒す - kaz29

    CakePHP Advent Calendar2010 も折り返し点を過ぎました。CakePHP Advent Calendar2010は、ネタの調整などはしていないのですが(してないよね(^^;?)、参考になる話ばかりだし、まだネタがかぶったという話は聞かないので正に「君の当たり前に僕らは感嘆させられるんだ」ですね(^^;。 では、13日目の担当と言う事で...。 *この記事の内容はCakePHP1.3での話になります。 CakePHP1.2までは、Datasourceは app/models/datasources/ 以下に配置しないと動作させることが出来ませんでしたが、CakePHP1.3からはプラグイン配下のDatasouceを使用することが可能になりました。 これは個人的にとても嬉しい修正だったのですが、このあたりの情報をWeb上にあまり見かけないのでまとめてみました。 Cake

    Datasourceを使い倒す - kaz29
  • 【PHP/CakePHP】phpadvent2010 Day21「ピュアPHPでも便利なCakePHPを使おう」 | ECWorks Blog

    PHP Advent Calendar jp 2010 21日目担当のMASA-Pです。 CakePHP界隈ではいろいろとやらせていただいていますが、PHPコミュニティの方はなかなか日程等があわない関係もあって不参加状態ですので、もしかしたら初めましての方もいらっしゃるかもしれません。一応こんなものなんかを公開させていただいております。またこんなとかこんななんかを執筆させていただだいておりますので、もし興味がありましたら是非よろしくお願いします。できれば買って!(笑) さて、今回はPHP Tipsという事なのですが、非常にお恥ずかしい話ですが当方は既にCakePHPがないと生きていけない体になっております(笑)。当方としましてもそういう道連れ的な方を一人でも多く製造したい次第ですので(笑)、布教活動がてら「CakePHPに存在している超便利な機能をライブラリとして使ってしまおう!」とい

  • Gitと一緒にCakePHPを楽しむ – CakePHP Advent Calendar 2010 6日目

    これはCakePHP Advent Calendar 2010の6日目の記事です。 CakePHP Advent Calendarって何?という方はこちらへ。 CakePHP Advent Calendar 2010を開催! CakePHPに関するtipsを1日1つ、順番に紹介するということなので、私はGitとCakePHPの活用について書きます。 恐らく、これはCakePHPに限らずあらゆるフレームワークで有効なtipsです。 CakePHPを初めとするフレームワークを長く使っていると、色々と面倒なことが起きてきます。 フレームワークのバージョンアップ 外部ライブラリのバージョンアップ 複数プロジェクトにおけるコードの共通化 “フレームワークのバージョンアップ“は重要です。 先日、こんなバグも発見されましたしね。 CakePHPPHPコード実行の脆弱性を使ってCakePHPを焦が

  • How to setup and use CakePHP with Komodo | ActiveState Community Site

  • CakePHPでコントローラーを複数のディレクトリに整理する方法 - yandod's blog

    大規模な開発に向いているといわれているsymfonyはディレクトリ構造が最初から3階層に分類されています。アプリケーションの規模が大きくなるにつれて増えていくファイルを整理する為のルールが最初から定められている形です。 project/ +-apps/ +-backend/ +-frontend/ +-modules/ +-HogeModule +-FugaModule +-MogeModule +-actions/ ←実際のコントローラー(アクション)はここに追加する 対するCakePHPはこういった階層は無く、コントローラーは controllersディレクトリにフラットに配置されています。ディレクトリがシンプルな分、把握しやすいとも言えますが規模が大きいアプリケーションの場合にコントローラーの数が増えすぎると扱い辛いという問題が起こります。 しかし実は簡単な設定を行う事でコントローラ

    CakePHPでコントローラーを複数のディレクトリに整理する方法 - yandod's blog
  • VitualFieldsを使おう! - 24時間CakePHP

    CakePHP1.3からは、VirtualFieldsが利用できる。 これはSQL でいったら sql_function(hoge) as aliasといったcolmunをそのままフィールドとして利用できる機能だ。 それでは実例を追いながら順次説明していこう。 要求: グループの一覧を表示したい。 また、グループには何人参加しているかを集計して同時に表示する。 関係 Group hasAndBelongsToMany User Model <?php class Group extends AppModel { var $name = 'Group'; var $virtualFields = array( 'user_count' => 'count(GroupsUser.user_id)', ); var $hasAndBelongsToMany = array( 'User', );

    VitualFieldsを使おう! - 24時間CakePHP
  • 独自namedパラメータを使って逆ルーティング - kaz29

    結構な忙しさなのですが、id:cakephperさんのTweetをみて妙に納得してしまったので、昨日はまってた事をまとめました。 CakePHP 1.2.5で開発中です。 namedパラメータはなかなかに便利なのですが、独自のnamedパラメータを使っているURLの逆ルーティングではまったのでちょっと調べてみました。 通常の以下の様なルーティングであれば、独自のnamedパラメータも問題なく使えます。 <?php Router::connect('/:controller/:action/*'); $url = Router::url(array('controller' => 'posts', 'action' => 'index', 'mode' => 'test')) ; // 正しく変換できます // $url = "/posts/index/mode:test" ところがpref

    独自namedパラメータを使って逆ルーティング - kaz29
  • routes.phpを書いた時の逆ルーティングとnamed paramterの挙動 - UNIX的なアレ

    routes.phpで書いたルーティングを、$html->linkなんかで逆ルーティングできるのはなかなか便利ですよね。サービスで使いたいURLを後から決めようってときも、routes.phpを変更するだけで簡単に対応できてしまいます。 しかし、named parameterを使った時にちょっと動作が上手くいかないことがあったのでメモ。 routes.php <?php Router::connect('/show/*', array('controller'=>'posts','action'=>'show')); view/post/show.ctp 逆ルーティングがきかないパターン <?= $html->link('link',array('controller'=>'posts','action'=>'show','param'=>$value)) ?> 逆ルーティングがきくパター

    routes.phpを書いた時の逆ルーティングとnamed paramterの挙動 - UNIX的なアレ
  • CakePHP routes.phpの確認はユニットテストで

    routes.phpを仕様に合わせて設定しておきます。 <?php // Router::connect('/:user_id/edit', array('controller' => 'user', 'action' => 'edit')); Router::connect('/', array('controller' => 'top', 'action' => 'index')); Router::connect('/:user_id/*', array('controller' => 'user', 'action' => 'index')); // Nothing Router::connect('*', array('controller' => 'nothing')); ?> 最後はシステムが取るべきURL以外ならNot Foundを出すように設定しています。これにより想定外

  • 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 - Build fast, grow solid | PHPフレームワーク

    New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x

    CakePHP - Build fast, grow solid | PHPフレームワーク