PHP 5.4 – Begin your love affair with traits View more presentations from Graham Weldon CakePHPの開発者の一人であるGraham Weldonさんが公開したPHP5.4についてのスライドがまとまっていてとてもわかりやすいです。”begin your love affair with traits”(traitsと恋に落ちよう!)と題されているとおりPHP5.4といえばtraitsなわけですが簡潔なサンプルが付いているのでまだtraitsわからないよという人は必ず目を通しておきましょう。 まだまだPHPの中心は5.2といったところのようです。(CakePHP2はボリュームゾーンである5.2を対象にしているわけですね) これがtraitsを用いたログ処理の実装の例ですね。 スライドには他にも様々
CakePHP用のSmartyプラグインを書いてみました。 以前からいくつかあるのですが、バージョンが古かったりViewの全ての機能が使えなかったり、最新版から見ると機能として足りてない部分が見受けられたので、新たに用意してみました。GitHubにおいてあります。MITライセンスっす。 GitHub - kanshin/CakeSmarty: Smarty 3 plugin for CakePHP 1.3 ポイントは 1. ThemeViewに対応 2. デフォルトのctpと共存可能 3. Helperに対応したSmartyプラグインをバンドル 4. Smartyのconfigに対応 2番目、結構重要です。Scaffoldで作られたビューや、デフォルトのレイアウトはそのまま.ctpのままにしておいて、メインコンテンツのみSmartyで記述ということも簡単にできます。.ctpのエレメントも使
CakePHPの「OrderedBehavior」と「TreeBehavior」はマジで使うべき 2011-12-20 あまり知られてなさそうだけど、マジで便利に使えるCakePHPのビヘイビアを2つ紹介します。 OrderedBehavior http://bakery.cakephp.org/articles/alkemann/2008/09/21/orderedbehavior-2-1 順序を管理するビヘイビアです。Webアプリケーションを作っていると、多くの局面で、 「順序を自由に入れ替えたいんだけど...」 という機能要望が上がります。DBの仕様としては順序を振ってソートするだけでよいのですが、愚直にDBを操作しようとするとすごくめんどくさいです。順序番号の振りなおしとか、うわーやってらんねー、ってなります。 そんなめんどくさい実装も、OrderedBehaviorを使えば、超簡
This behavior lets you implement soft delete for your records in your models by introducing a flag to an existing table which indicates that a row has been deleted, instead of deleting the record. Using this behavior you can implement soft deletion in your CakePHP models so no real data is lost when you issue a delete on a specific record. Instead, a field of your choosing is used to indicate that
先日の第4回 CakePHP 勉強会で発表した内容でもあるのですが、簡単に SoftDeletable Behavior の使い方をまとめました。(少しだけ発表ないようにない追加情報もあります) SoftDeletable Behavior はソフトデリート(論理削除)を簡単に実現してくれる大変便利なビヘイビアです。論理削除とは DB から DELETE するのではなく削除フラグを設けて DELETE する変わりに削除フラグを立てて削除したことにすることです。 一番参考になるのはやはり Bakery です。英語が苦にならない方は私の説明よりも下記エントリを見る方がいいです。 Soft Deletable Behavior (Articles) | The Bakery, Everything CakePHP 勉強会で発表した資料は下記にありますので、よろしければこちらもご覧下さい。 Cak
The original text for this section has changed since it was translated. Please help resolve this difference. You can: See what has changed Compare the current text to the original More information about translations 多くの場合モデルの find 呼び出しをする際に、様々な方法で検索条件のセットを渡すことになります。最も簡単な方法は、SQL の WHERE 句の抜粋を使用することです。もっと細かく制御する必要がある場合、配列を使用します。 配列を使用すると、すっきりと読みやすくなり、クエリーを作成しやすくなります。この構文はクエリーの要素(fields, values, oper
検索フォームは昔から method="get" と決まってる(独断と偏見) CakePHP の場合ページングには PaginatorHelper を使って行います。 GETパラメータをうまく引き継ぐ方法がわからないので、 一応こうやってみたというもの。 うまい方法あれば教えていただきたい。 CakePHP は 1.3.9 です。 検索フォーム <form action="/index/index/" method="get"> <div> <input type="text" name="q" value="<?php echo h($q)?>"> <input type="submit" value="検索"> </div> </form> IndexController::index() class IndexController extends AppController { var
イントロダクション 標準のfindの種類(first, all, count, threaded, neighbor, list)だけでは、ビジネスロジックに対応できないことがあります。 これに対するひとつのプラクティスとしては、カスタムfindタイプを定義することです。 この記事では、実際の開発を想定したリファクタリングの過程を通してカスタムfindタイプの定義の仕方と活用方法、その意義をご紹介します。 「次」の記事 例えば、カレントのレコードの「次*1」のレコードを取得したい場合、それに纏わる複雑な処理は、単純なqueryの発行だけでは済まないことがあります。 この「次」のレコードを探索するロジックを例に、ボブ*2がこれを実装していくお話をしましょう。 要件の定義 ボブの上司のサム*3は、クライアントの会社のサイトにブログモジュールを追加するプロジェクトの打ち合わせで、次の要件を定義し
ドコモがガンとしてCookieに対応しないため、携帯でセッションを引き継ぐには、パラメータの中にセッションIDを(できれば自動で)入れる仕組みが必須なわけです。 しかし、セッションID付きのURL。 これは外部に漏れると不正アクセスされる危険なもの。 「どうせ全てのURLになんらかのパラメータ入れる必要あるなら、?guid=ONをいれればいいじゃん。 そして携帯IDでセッションひきつげばいいじゃん」 携帯で ?guid=ONがURLに入ってて、セッションIDらしきものがないサイトは、上の設計でセッションを引き継いでるものと思われます(多分) が。 フレームワークだと、自動でリンクやリダイレクトが発行されるので、「全てのURLに付加」が早々カンタンには行きません・・・ そんなこんなの試行錯誤。 っていうか、ドコモが「?guid=ONというパラメータが必須」なんて言わなければこんな苦労ないんで
Apache,PHP5,PEAR,MySQL,XAMPP,cakePHPを使ったWebサイト構築のTips レンタルサーバー「エックスサーバー(xserver)」に、cakePHPを導入する手順。 1.cakePHPライブラリの設置 cakePHPを公開用としてレンタルサーバに設置する場合、webroot以外のファイルはwebからアクセスできない場所に設置するのが望ましい。 参考: ■3.4.3. 高度なセットアップ:その他のインストール方法 cakePHPプログラマーズ リファレンスガイド ■「cakePHPガイドブック」p.298 "公開(Linux)サーバへの設置" xserverの場合、/home/ユーザID/ドメイン名/の下がユーザが利用できる領域となる。 web公開ディレクトリは、/home/ユーザID/ドメイン名/public_htmlとなる。 このため、cakePHPは、/
私が初めてPEARの本家サイトを見た時に、使用出来るライブラリの数に驚きました。 しかし、PEARは基本的にTelnetなどでサーバーに接続してインストールする方法が主流の為、レンタルサーバーでは使用出来ないことが多いです。最近のレンタルサーバーでは最初から付いてることもありますが、メジャーなものしか使えないのでマニアック?なライブラリが使えない等の問題が発生します。 まあ、早い話がPEARが使えるかどうかは環境に依存するってことです。 今回は、PEARがインストールされてない共用サーバーでこのライブラリを使う方法をご紹介します。 方法は2つあります。1つは「.htaccess」を使用する方法。2つ目は「ini_set」関数を使用する方法の2つです。 ただし、このやり方はPEAR本家サイトでも推奨されていないので、出来る限りインストールするようにしましょう。 PEAR本家サイト
参考:北青山通信 - from aoyama − CakePHPでPEARを使う 1.pearライブラリをapp/vendorsへコピー app/vendors へ PEAR.phpをコピー。 app/vendors/Net/UserAgent へ PEAR::Net_UserAgent_Mobileをコピー (app/vendors/Net/UserAgent/Mobile.php app/vendors/Net/UserAgent/Mobile/色々という、配置 ) 2.include_pathにapp/vendorsのパスを追加 参考:北青山通信 - from aoyama − CakePHPでPEARを使うでは、 [app/vendors/pear_init.php] <?php ini_set('include_path', ini_get('include_path'). PA
Pear は PHP で利用できる便利なライブラリです。今回は Services_Twitter というものを CakePHP で利用しようとしたところで、ちょぴーり躓いたので、メモしておきます。 今回は簡単に Twitter API を操作できる PEAR パッケージ Services_Twitter を導入することを仮定して話を進めていきます。 Services_Twitter をダウンロードする こちらから Services_Twitter をダウンロードできます。 Windows でダウンロードすると Services_Twitter-0.4.0.tgz.tar というアーカイブファイルになってしまいまして、解凍しても中身空で、なんか解凍できなかったので Linux を起動してそこから作業をするという荒業に出ました。 PAER を配置する /app/vendors にファイルを置き
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く