タグ

CakePHPに関するsabotemのブックマーク (22)

  • Web アプリの MVC 設計まとめ - もやし日記

    MVC 設計について考えていたときに、ちょうどその辺りの話をされている方々が居たので、今の考えをまとめてみました。 目次 前提 肥大化するコントローラを避ける ビジネスロジックをどこに書けば良いのか コントローラとモデルの間にもう一つの層があるとうまくいく? まとめ 前提対象は Web アプリケーションで、画面数(ビューの数)は数個〜100個程度の規模です。WordPressTwitter、37signals のサービスのようなものを作ろうとするとき、どういう MVC 設計をしていくかについて考えます。巨大なシステム、金融系システム、基幹系システムなどを作る場合とは異なる考え方もあると思います(そもそも MVC を使わない、など)。 肥大化するコントローラを避ける例えば、八百屋さんで「60円で仕入れたリンゴ1つを100円で売った」こと(Sales Transaction)を記録する場合を

  • [CakePHP]windowsの開発環境で気持ちよくbakeする方法メモ

    昨日も書きましたがCakePHPを使ってショッピングサイトのリニュアル中です。 今回の僕は、かなり気です。 今まではbakeなど使わずにすべて手作業でコントローラ、モデル、ビューを作っていましたが、そろそろそれも限界だろうと。おまえもいい歳なんだからと。そんな声が聞こえたような気がしたので、今回はbakeやらユニットテストやらを使ってなるべくプロっぽく楽に仕事をしようと決意しました。 予約してまで買ったCakePHPによる実践Webアプリケーション開発 と言うに、コンソールを使った開発方法が書かれているのですが、あまりに難しそうでほとんど読まずにおいておいたのですが、今回ようやく陽の目を見ることになりそうです。 僕の環境 Windows XP Pro SP3 Xampp 1.7.0 Windwosの環境変数のPathにphp.exeを追加 まずはコマンドプロンプトから気持ちよくphp

  • CakePHP 目で見るフックメソッド

    第2回CakePHP関西勉強会でやったデモをこちらでも。 CakePHPには色々なフックメソッドがあるのですが、それらがどのタイミングで呼ばれるかを一覧できるようにデモを行いました。懇親会やアンケートでも良かったよ、と意見を頂いたので、簡単に画面のキャプチャを並べます。 1. Controllerのフックメソッド Controllerのフックメソッドを並べています。index()はアクションメソッドなので、ここで表示されているフックメソッドは3つです。 ソース <?php class DemoController extends AppController { public $uses = array(); public function index() { } } ?> フックメソッドの並び 2. Componentのフックメソッド Controllerの$componentsを設定して

  • 第2回CakePHP関西勉強会も盛り上がりました&発表資料

    第2回CakePHP関西勉強会が終了しました。 photo by zatsu 前回からは半年程経っているのですが、関西もまだまだアツいです。主催ということで、司会もやりつつ発表もしつつとなったのですが、開始からopening、自己紹介、自分の発表と初めの1時間ほどは喋りっぱなしになって、ちょいバテました:-D 他の勉強会でも主催の方はこういう状況になりがちなので、次回以降は順番等を練りたいですね。 今回の発表ではフックメソッドについて話しました。内容はフックメソッドの紹介と呼び出し順を見える化したデモなのですが、特に最後に触れた認証系のフックメソッドの呼び出し順を気にかけて貰えれば嬉しいです。さらに良い使い方があれば是非教えて下さい。 発表資料をアップしておきます。 以下、いつものようにつらつらとメモ書きです。 1. フックメソッドを極める shin1x1 まあ早い話がslywalkerさ

    第2回CakePHP関西勉強会も盛り上がりました&発表資料
  • CakePHP 隣接するレコードを取得する簡単な方法 : HAPPY*TRAP

    CakePHP 隣接するレコードを取得する簡単な方法です。 Model->find(’neighbors’)を使います。 例: usersテーブル id=57のレコードに隣接するstatus=1のレコードを取得する場合 コード $options['field']='id'; $options['value']=57; $options['conditions']['User.status']=1; pr($neighbors=$this->User->find('neighbors',$options)); 結果: Array ( [prev] => Array ( [User] => Array ( [id] => 56 [name] => 神 [status] => 1 [created] => 2009-06-02 19:23:33 [modi

  • Fresh! » CakePHPで作る会員管理システム

    これまで作ってきたCakePHPによる会員管理ステムのまとめです。 まず最初に、どういうシステムを作るか、要件を箇条書きにします。 会員側 会員登録ができる(ログインIDはメールアドレスで) 登録確認メールが送られる その後はログインできる 会員メニューがある 登録情報の更新ができる 会員種別を登録できる 誕生日を登録できる 好きなべ物をcheckboxで登録できる パスワードは暗号化しないで登録する セッションで認証する 退会できる 画像を複数登録できる 管理者へは画像添付メールで送る 後日実装予定の機能 仮登録メールクリックで登録になる 画像サイズを変更できる 管理側 adminでログインできる 会員を一覧できる・pagingできる 会員を検索できる 会員検索結果をCSVでダウンロードできる 会員情報を詳細表示できる 管理者アカウントを登録できる(一覧・編集・削除できる) バッチ

  • 【戯れ言】symfonyはCakePHPよりは大規模向けです - ぷぎがぽぎ

    例えば、フレームワーク比較で良く目にする違いとして「Symfonyは大規模向け、CakePHPは中小規模向け」というのがある。これはいったい何なのだろう? よく読むと、大抵は「Symfonyはプラグイン機能があるため、大規模向け」という書き方がされている。これは当にそうなのだろうか? まず簡単なツッコミをさせていただくと、CakePHPは、既にプラグイン機能を装備している。Symfonyとほぼ同じように、一連機能を持った仕組みを簡単に入れたり抜いたり出来る。つまり、この定義でいけば、CakePHPは十分に大規模向けだ。 .. (略) .. そしてプラグインは、私はむしろ逆の、中小規模向けのものと考える。何故なら、第三者の制作したものを、手っ取り早く自分のものに出来るというのが実質的なところであり、そういった用途のものは中小規模向けに書かれているものが多いからだ。 まず前提として、プラグイ

    【戯れ言】symfonyはCakePHPよりは大規模向けです - ぷぎがぽぎ
  • Windowsのコンソール上でCakePHPのconsoleを使う

    すごく困ったのが解決して嬉しかったのでメモ。 windowsのコンソール上で、cakephpのcake/console/cake.batを動かそうとしてたんだけど 'php' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません っていわれて全然動かなかった。 phpの環境変数設定すればよいのかなーっと思ってたんだけど、なんか上手くいかない。 xampp上でやってたこともあり、php.exeの場所も良くわからなかった。(普通にxampp/phpにあった) 結局原因としてはWindows Vista上での環境変数の設定方法が間違っていただけ。 そこで確実に環境変数を設定するためにWindowsのコマンドプロンプトでやってみた。 要するにPHPが動けばbake出来るわけだから、xampp/phpのフォルダに移動して C:\xampp\php

  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2024年5月時点の調査。

  • CakePHPのRSSヘルパーの使い方まとめ

    『名前をつけてやる』で RSS を出力するのに CakePHPRSS ヘルパーを使ってみたんだけど、 これが便利便利。 いったん組み込めばあとは簡単に RSS を生成できるし、 ほとんど追加作業なしで複数の RSS を吐くこともできる。 ただ手元に資料があんまりなくて 導入に少し戸惑ったのでやったことメモ。 「使い方まとめ」って書いたけど、 要するに「何をやったか」です。 例として、 通常 http://example.com/posts/index に出しているデータを RSS に吐き出したい。 個別のポストのページは /posts/view/[ID] で見る。 PostsController から index のビューに $posts というデータが渡されている。 トップページは /posts/index にルーティングされている という状況設定で。 とにかく使えるようにする 次

    CakePHPのRSSヘルパーの使い方まとめ
  • 冴えたページングテクニック

    CakePHPは、PHP言語の高速開発用フレームワークです。日々、発展を遂げる各種フレームワークの動向を見極めつつ、日発のCakePHP応援ブログとして、最新情報をお届けします。 ただものではないmarianoのページングテクニックが公開されています。CakePHPユーザなら一度は見るべき。 marianoiglesias Pagination with custom find types in CakePHP protected $_types = array( 'published' => array( 'conditions' => array('Post.published' => 1), 'order' => array('Post.created' => 'desc') ) ); とするだけで、 $posts = $this->Post->find('published');

    冴えたページングテクニック
  • CakePHP のキャッシュでサクサクでござる ( ラボブログ )

    スパイスラボ神部です。 これまで積極的に使ってこなかった CakePHP のキャッシュ。 しかし貧弱なサーバを使うときにサイトルートが10秒出てこなくコレは困った。 みたいなときに、いよいよ出番がやってきました。 -キャッシュが好きだ! - Favorites! Cache を有効にする まずは設定で Cache を有効にします。1.1 と 1.2 で指定方法が違う上に、検索すると 1.1 の方ばかり出てくるので要注意です。 * 1.1系 - define ('CACHE_CHECK', true); * 1.2系 - Configure::write('Cache.check', true); (2008-03-15 - ざ・わーるど.jp@はてな より) 公式マニュアルも、1.1 の設定しか載っていないなぁ・・・ -19.2. 動作の解説 設定方法 コントローラにも設定追加。 -s

  • さくらインターネットで CakePHP+PEAR ( ラボブログ )

    スパイスラボ神部です。 さくらインターネットで CakePHP+PEARする方法についてのかんたんなまとめです。 下記の3つが参考になります。 CakePHP のさくらインターネットへのインストールについて -"さくらインターネットで404エラー" フォーラム - CakePHP Users in Japan PEAR のさくらインターネットへのインストールについて -コマンドプロンプトを使わないで、さくらへPEARをインストール(Go-PEAR使用) (masha.webTechLog) -小山太郎.com » Blog Archive » さくらインターネットでPEARをインストール まとめ 非常にわかりやすくまとまっているので、これだけです(笑) 追加で気になるところがあれば、追記したいと思います。

  • CakePHP グローバル関数 | Sun Limited Mt.

    PHP のネイティブ関数の短縮表記には下記のようなものがあります。 a() => array() e() => echo() low() => strtolower() up => strtoupper() r() => str_replace() am() => array_merge() h() => htmlspecialchars() このような短縮表記の関数を独自に定義して開発に使用されている方も多いと思いますが、CakePHP として定義されていると使用しやすいですね。(特に複数人で開発しているときなど、標準であると助かります。) このほかにも CakePHP には便利な関数が定義されています。 debug($var, $showHtml); DEBUGレベルが0以外のときに、$varが出力される。 print '<pre>'; print_r($var); print '</

  • はてなダイアリーのようなURLの作り方 - Writing Some Code

    今回は、はてなダイアリーのURLのようにドメイン名に続いてユーザー固有のIDで始まるURL(自分のでいうとhttp://d.hatena.ne.jp/ngtn/)をCakePHPでどのように実現するかを考えてみました。 まず仮に app/controllers/diaries_controller.phpファイルに定義された、DiariesControllerクラスのdisplayメソッドがユーザー固有のページを表示するものだと仮定します。 このメソッドは引数$userNameをとり、それがユーザーを識別するはてなIDのようなものだとします。 以降は$userNameの値を仮に'ngtn'として話をします。 <?php class DiariesController extends AppController { function display($userName){ //指定された$u

    はてなダイアリーのようなURLの作り方 - Writing Some Code
  • 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フレームワーク
  • massat.jp - xreaでCakePHPを使う

    Sandboxを開くにあたって、このBlogで利用しているxreaにCakePHPを設置しました。 作業メモ。 http://sandbox.massat.jp でアクセスされるURLで、CakePHPを動作させることにしました。 xreaでは、公開ディレクトリ内に作成したFQDNのディレクトリ内でサブドメインを運用します。 なのでサブドメイン sandbox.massat.jp は以下のディレクトリで運用します。 /virtual/massat/ + public_html/ ← massat.jpの公開ディレクトリ + sandbox.massat.jp/ ← sandbox.massat.jp ここにCakePHPのインストール。 参考にしたのは、こちらのマニュアルです。 以下引用。 Cake のディレクトリをディスクの別の場所に置きたい場合があります。共有サーバの制限のためであった

  • CakePHP IRC集会を開催します! - cakephperの日記(CakePHP, Laravel, PHP)

    突然ですが、CakePHPが好きな人、興味がある人が集まるIRC集会を開きたいなぁと思ってたので、勢いで第一回を開きたいと思います。 第一回は2009/3/26(木) 20:00〜24:00です。 CakePHP実践の発売日です (^^ 接続先サーバやチャンネル名は下記を参照ください。 IRCを使ったことがない人のために、使い方の説明もあります。また、IRCクライアントをインストールしたくない人のためには、ブラウザからチャットが出来る仕組みも用意しておりますので、お気軽に参加ください。 http://trac.codecheck.in/share/wiki/IRC%E9%9B%86%E4%BC%9A どうなるか分からないけど、やってみて考えることにしました。平日が良いのか、休日が良いのか、時間帯とかは何回か開催しながら考えていきます。 休日が良いとか、こうしたほうが良いんじゃない?など、

    CakePHP IRC集会を開催します! - cakephperの日記(CakePHP, Laravel, PHP)
  • CakePHP URLのカスタマイズ - Webプログラマの苦悩

    CakePHPでは、webrootディレクトリ内に設置したファイルは、通常の静的ファイルとしてアクセスできるんですが、グローバルテンプーレートとして、統一されたヘッダーや、フッターを利用したい場合があります。 その場合、pagesディレクトリを利用すると効果的なんですが、URLの見た目がイマイチです。 http://test.test/pages/company/index 等 そこで、以下のようにルールを決めましょう。かなりすっきりするハズ。 ・拡張子 .html のURLへのアクセスは全てpagesディレクトリを参照する ・逆に、拡張子 .html なしURLへのアクセスはプログラムとみなし、独自controllerへアクセスする ・ファイル名を省略した場合は、index.htmlを補完する(独自controllerを利用した場合の自動index補完は無効となります) 具体的には、we

  • http://www.cpa-lab.com/tech2/inflects/