気軽な気持ちで記事を載せます。タイトルだけ載せたりします。そして忘れ去ります。コメントをROMったりします。内容が適当過ぎて危険臭満載かもしれません。貴方を歓迎しています(といえば全て済まされると思っている)。
気軽な気持ちで記事を載せます。タイトルだけ載せたりします。そして忘れ去ります。コメントをROMったりします。内容が適当過ぎて危険臭満載かもしれません。貴方を歓迎しています(といえば全て済まされると思っている)。
CakePHP勉強会を開催しました! & 発表資料です 2007-12-08 12/7 に都内でCakePHP勉強会を開催しました。 まずは、参加された皆様、発表されたyandoさん、Shinbaraさん、本当にありがとうございました! 目次 発表資料 発表資料をPDFとSlideShareでアップしました。SlideShareがちょっと重いかもしれないので、快適に読むならPDFがお薦めです :) » [Download PDF] CakePHPをさらにDRYにする、ドライケーキレシピ | View | Upload your own 今回の発表の感想 今回、初めて外の勉強会でスピーカーとしてプレゼンをさせていただきました。発表の感想を一言で言うと、緊張でした。緊張しすぎて声が小さくなってしまったところがあったみたいで、後ろのほうの席の方には申し訳なかったです。 しかし意外だったのが、Ca
@deprecated この情報はCakePHP1.2RC1までのものです。2008/06/26現在のリポジトリではチケットが反映され修正が完了しています。 CakePHP+PostgreSQLでModel#getInsertID()を使う場合、別セッションのシーケンス値が取得される問題があります。 問題点 ユーザ情報とその付加情報や、注文情報と明細情報などINSERT後にそのレコードに関連する情報としてid値を活用する場合、本来とは異なるレコードに結びつく可能性があります。 ex) 別の注文情報に明細が登録される等 ただ、これはほぼ同時にINSERT文が発行された際に起こる現象ですので、それほど登録処理が行われないサイトではあまり遭遇するものではありません。(ですので、これまであまり表面化しなかったかと。) CakePHP1.2RC1/1.2-beta/1.1.19でこの問題があります。
先日、こんな記事が上がっていました。 Android開発者が知るべき10のこと この記事でまとまっているのは、Android開発において必要な10の項目です。 インターフェースの設計から、データの取り扱いまで。 AndroidはモバイルデバイスのOSで、CakePHPは単なるWebフレームワーク。 しかし、予め用意されたルールやAPIを活用する点は同じです。 つまり、フレームワーク全般において、開発者が知るべきことをまとめることが出来るはずです。 ここでは、私が良く利用するCakePHPフレームワークについて、開発者が知るべき10のことをまとめます。 1. CakePHPで良いのか CakePHPを使う際に、知るべきことその1。 それは、あなたは本当にCakePHPを使うべきなのかということです。 現在、あらゆるフレームワークが溢れ返っています。 Ruby Ruby On Rail
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
春はまだこないのでしょうか?ichikawaです。 本日はCakePHPで簡単に認証機能を実現する、「Authコンポーネント」について軽くご紹介いたします。 Authコンポーネントを使用するための準備 とりあえずAuthコンポーネントを使う準備をしましょう。 class HogeController extends AppController { var $components = array('Auth'); 全てのコントローラで認証コンポーネントを利用するのなら、 AppController に追加でもいいですね。 そして、認証に使うテーブルを用意します。 デフォルトの認証に使われるテーブルとカラム、そしてその変更方法 デフォルトでは、認証のために「username」と「password」というフィールドを持つ「users」テーブルを使おうとします。 それを変更したい時は以下のようにし
CakePHPで携帯サイトを作る - ログインページ(1)の続きです。 ログイン処理のサンプルです。 Index ログイン用ビュー作成 ログイン用コントローラー作成 携帯から接続しているユーザーの端末IDチェック セキュリティに関して ブラウザ表示サンプル ダウンロード リンク(携帯サイトのセキュリティ関連) ログイン用ビュー作成 PCサイト用のログイン画面のビュー(app/views/login/index.ctp)を作成します。 app/views/login/index.ctp 抜粋 PLAIN TEXT PHP: <?php echo $form->create('User',array('url'=>$this->webroot . 'login/index')); echo $form->input('username',array('label'=>'ユーザーID','div
今回は、ユーザー名とパスワードの代わりにユーザーを特定するキー(パスポートと呼びます)をクッキーとデータベースに記録します。ログインしていないユーザーがパスポートを持っていればデータベースからユーザーを特定し、自動でログインさせます。この例では、Authコンポーネントが使うセッションの有効期限とパスポートが使うクッキーの有効期限が異なります。 データベースにPassportsテーブルを作成します。 CREATE TABLE `passports` ( `id` int(11) NOT NULL auto_increment, `user_id` int(11) NOT NULL default '0', `passport` varchar(60) NOT NULL default '', `updated` datetime NOT NULL default '0000-00-00 0
イントロダクション CakePHPの使い方は多種多様で、もちろん一つのやり方が正解ということはありません。 しかし、CakePHPはフレームワークであるわけで、想定された使い方以外ではその真価をなかなか発揮できません。 CakePHPにおけるモデルは、ビジネスロジックを置くレイヤとして想定されています。 そして、バリデーションを用いることによって保存のロジックを構築するということも想定されています。 これは、何故Cookbookで紹介されるコードが、ほとんどバリデーションとModel::save()の組み合わせであるかということかの答えにもなっています。 悪い例 あなたはModel::save()の代わりとして、以下のようなadd()メソッドをモデルに定義しているかもしれません: <?php class Post extends AppModel { var $validate = arr
ブラウザを閉じた後でも自動的にログインできるようにログイン・フォームに「次回から自動的にログイン」「次回からログインを省略」「Remember me」などのチェックボックスが備わっているケースを良く見かけます。AuthComponentとCookieComponentを使って実装してみます。AuthComponentのページで説明した例の続きとして説明いたします。 その1では、Authenticationにある方法を紹介します。 自動ログイン機能とは 自動ログイン機能とは、ログインが必要なページにもユーザー名やパスワードの入力なしでアクセスできる便利な機能です。ログイン時に「次回から自動的にログイン」にチェックしてログインすると自動ログインが有効になります。クッキーが使えるブラウザのみ対応。 自動ログインの仕組み 「次回から自動的にログイン」にチェックしてログインしたユーザーのブラウ
CakePHPのModelはActiveRecordライクなDBアクセス方法を提供しており、さらにアソシエーションを設定することにより複数テーブルの値を同時に操作できるなど、DB操作に対するインターフェイスが数多くあります。 ただ「手軽にDB操作ができる」という印象が先行しているゆえ誤解を招くことがあるようです。 1. クラス名に対応したテーブルしか操作できない Modelのクラス名とテーブルを自動でマッピングするのはフレームワークのいわば便利機能です。デフォルトでそのような動作をするだけで、容易に変更することができます。 Model#$useTableにテーブル名を指定すれば任意のテーブルを操作できます。 <?php class Foo extends AppModel { public $useTable = 't_user'; // t_userテーブル } ?> 2. DBを使わな
すでにご存知の方も多いと思うのですが、CakePHPに深刻なセキュリティホールが見つかりました。 SecurityComponentの実装に問題があり、結果、外部から任意のコードを実行させることができるという深刻な内容です。 セキュリティホールの概要や攻撃手順については以下のエントリが詳しいですので、ご一読を。 CakePHP の PHP コード実行の脆弱性を使って CakePHP を焦がす なお、今回の問題はSecurityComponentを利用していない場合は発生しません。 もしSecurityComponentを利用している場合は、以下のいずれかの方法で早急に対策してください。 1. CakePHP1.2.9 or 1.3.6にアップグレードする。 この脆弱性を受けて修正バージョンが出ています。 CakePHP 1.3.6 and 1.2.9 released | The Bake
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コアチームはCakePHP2.0.5*1と1.3.14*2を素早くリリースできたことを誇りに思います。 2.0.4から合計で、90以上のコミットがあり、40以上の問題が解決されました。変更の完全なリストは変更ログページ*3で見ることができますが、以下に2.0.5で成された変更の簡単なまとめを挙げます: Cacheにおける返り値が正しく直されました。ドキュメントにあるように、falseが常に失敗を指し示します。 foreignKeyのないhasOneアソシエーションによる連鎖削除(cascading deletes)が正しく動作するようになりました。 SQLiteのために、キャッシュファイルのファイル名に「"」*4を含まないようになりました。 テーマのアセットファイルのファイル名が空白文字を含む場合でも、ディスパッチャーを通して正しく配信されるようになりました。 ViewT
スパイスラボ神部です。 CakePHP でちょっと考え込んでしまいがちなサイトルートのテンプレートでもある home.ctp のレイアウト変更。どうやって指定してあげたらいいか、ここではちょっと自分の経験則について書いてみます。 CakePHPが好きだ! - Favorites! CakePHP 1.2 RC3 の場合 あくまで CakePHP 1.2 RC3 の場合ですが、サイトルートの表示にはいくつかの(とりあえず初心者には目に見えない)手順を踏んで表示されているようです。 たとえば http://cakephp.example.com/ という URL が CakePHP のインストールディレクトリをサイトルートとしてマップしていたとします。このとき、CakePHP は /app/config/routes.php に従って、/cake/libs/controller/pages_c
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く