タグ

CakePHPに関するdeeekiのブックマーク (161)

  • 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にユーザー登録すれ

  • ベンダブランチの管理方法 - miauのブログ

    サードパーティ製のコード(たとえば CakePHP)をプロジェクトのリポジトリに取り込んで使うような場合、バージョンアップが結構手間になります。バージョンアップの度に増減したファイルを svn add や svn delete するのは面倒ですし、ファイル名の変更をちゃんとトレースしたいなら svn rename もやりたくなるでしょう。また、CakePHP のソース自体に手を加えたいような場合、マージ作業も面倒になります。 こういう場合ベンダブランチや svn_load_dirs.pl というスクリプトを使うと、比較的楽に管理できます。svnbook でも ベンダブランチ - 第4章 ブランチとマージ - Subversion によるバージョン管理 という感じで軽く触れられているのですが、どうも利用している方が少ない気がするので、CakePHP を例にシナリオベースで利用方法を書いてみま

    ベンダブランチの管理方法 - miauのブログ
  • 【CakePHP】お手軽便利なCakeSchema | ECWorks Blog

    DBのテーブル設定は非常に面倒な作業の一つです。 特に、開発時は仕様変更などでテーブル内のフィールドが頻繁に増減することもあるかもしれません。 テーブルを作成したり、更新したりするのに、皆さんはどのような手順を踏まれるでしょうか?まずSQLを書いて、アップロードして、mysqlやpsqlのコンソールを使って実行していますでしょうか?それとも、mysqladminとかのguiツールを使っていますでしょうか? CakePHPには、schemaシェルが付属されていて、これを用いることで簡単にテーブルを初期化することができます。コマンドラインからコマンド一発で(実際には確認メッセージがあるのでy/n選択がありますが)、書き換わるので大変に便利です。 ただ、ドキュメントや情報が公開されているブログなどが少ないため、どのように記述して良いか分からない方も多いかと思います。そこで、簡単に使い方を解説し、

  • CakeFest Berlin 最終日のまとめ - yandod's blog

    飛行機でまとめを書くタイミングになってしまったので少し間が空きました。 色々な出来事がありすぎてまとめづらいですが、セッションの概要を中心に簡単に。 Keynote: The Future of CakePHP(Nate Abele) おそらく今回のCakeFestでもっとも盛り上がったセッションでした。直前の告知だったにもかかわらずustreamでも延べ80人以上がリアルタイムで見守っていました。 まずは「CakePHPの嫌いなところを教えてくれ」という切り出しで始まり、モデルの機能(オブジェクト化、複合キー、サブクエリ)やクラス名の競合などなど様々なトピックが。そして「Cake3」がnateから発表されて以降は会場からは度々歓声と拍手が! PHP5.3以降 すべてのコードを0からスクラッチ クラス階層をnamespaceで整理 パフォーマンスも向上 依存関係は少なく、Cake3をライブ

    CakeFest Berlin 最終日のまとめ - yandod's blog
  • PHP 最近やったプロジェクトのまとめ

    4月から開発してきた案件が終わるのでちょっくら振り返りするぞ。 アーキテクチャ CentOS5 (開発はXAMPP) PHP5.1.6 CakePHP1.2 MySQL5 案件規模 コントローラー13(AppController含む) モデル14 ビュー80 コンポーネント4 PHPのソースで約1万行。テストコードで4000行。開発者は僕だけ。 ツール系 XAMPP 開発環境 Subversion ソースコード管理、ドキュメント管理に最初から利用。接続にはTortoiseSVNを利用。 Trac 課題管理、バグ管理、要件管理に利用 A5:SQL Mk-2 データベース関連の作業に利用。 Eclipse PHP開発用のIDE。Pleiadesを利用 Poedit i18nの言語ファイルの編集用 Lingoes 無償の辞書ツール。モジュール名や関数の命名に利用。 SimpleTest 

    PHP 最近やったプロジェクトのまとめ
  • CakePHPでユニットテストする際に気をつけること

    今やっている案件ではCakePHPを使ったアジャイル開発で、当然テストも自動化している。 テストの自動化を徹底的にやったので楽なんだけど、次回の案件のためにどういう観点でテストを組んでおくと良いか、またどこに嵌りがあるかメモとして残しておく。 CakePHPに限らない話 テストしやすい実装にする。例えばメソッドに複数の異なる役割を持たせない。引数と戻り値が明確。適切な行数など MVCの複数レイヤーにまたがる処理を書かない。例えばコントローラの中でSQLじゃぶじゃぶ投げたり、バリデーションチェックをぐちゃぐちゃやったりしない 自動でテスト実行できる仕掛け作り。例えばPHPならphpUnderControl。JAVAならCruiseControlとかHudson。 基に返って、テストを先に書くという意識付け テストがいっぱいありすぎたら今度はテストのリファクタリング。似たようなテストがコピペ

    CakePHPでユニットテストする際に気をつけること
  • CakePHP内の処理を理解する

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    CakePHP内の処理を理解する
  • 第2回CakePHP関西勉強会で発表してきました - 忍び歩く男 - SLYWALKER

    第2回CakePHP関西勉強会出発表してきました。 以下、発表資料と感想です。 究極のコントローラを目指すView more PDF documents from slywalker. フックメソッドを極める - shin1×1さん プレッシャーの前説発言! デモの表示は非常にわかりやすかった。 onError()って使ってないので、今度試しにつかってみよう。 究極のコントローラを目指す - slywalker コードが非常に多くて、自分自身が混乱^^; ちゃんと伝わったかかがちょっと心配。 あくまでも手法の紹介なので、やりすぎ注意!w RubyOnRailsからCakePHPへ - yabumaruさん Railsはスパルタ! Cakeはスイーツ! 結構、CakePHPで動いている案件がありびっくり。 CakePHPでこんなの作ってみました - msngさん すごくまとまった発表! 自分

    第2回CakePHP関西勉強会で発表してきました - 忍び歩く男 - SLYWALKER
  • リファクタリングを考える時期の記事紹介 - cakephperの日記(CakePHP, Laravel, PHP)

    自分の英語力アップと、技術力アップを兼ねて、好きな開発者の書いた記事をある程度翻訳して載せていこうと思います。今までMarkとかMcurryとかの興味深い記事をざっとは読んでたけど、自分が読むだけだと流し読みになりやすくて、読んだつもりになっただけで何も残らず、いかんなぁと思ってました。 全訳ではなく、自分が記事を理解して、ざっくりと翻訳して発信していくようにすれば、まず記事の内容を理解し、それを分かりやすく短く書くようになるので、良いのではないかと思いました。一人勉強会みたいなもんです。 これを続けていき、ある程度の段階になったら自分も英語で定期的に発信していきたい。 mark-storyの記事 5 signals that can indicate its time to re-factor リファクタリングすべき時期はいつごろか?その指標となる5項目を挙げています。 1. メソッドの

    リファクタリングを考える時期の記事紹介 - cakephperの日記(CakePHP, Laravel, PHP)
  • GoogleChartHelper - cake bake diary

    あ…ありのまま 今 起こった事を話すぜ! 『PHPのグラフ描画ライブラリを探していたと思ったら いつのまにかGoogle Chart API のヘルパーを作っていた』 な… 何を言ってるのか わからねーと思うが(ry というわけで Google Chart APIが便利すぎたのでヘルパーにしてみた。 こういうのもありますがそこは華麗にスルー。 使用例*1 折れ線グラフ <?php echo $googleChart->line( // データセット array('男性' => array(20, 23, 26, 21, 42, 26, 32, 36, 53, 42, 36, 16, 45, 12, 36), '女性' => array(15, 18, 16, 16, 22, 21, 24, 12, 46, 49, 41, 33, 29, 20, 23)), // 軸ラベル array('x

    GoogleChartHelper - cake bake diary
  • 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を出すように設定しています。これにより想定外

  • 意外と知られていない? queryメソッドで値をbindできるってこと - cakephperの日記(CakePHP, Laravel, PHP)

    CakePHP 1.2.2を利用してます。この話は1.2だったらどれでも適用できると思います(cake1.1は分かりません) ーーーーーーーーーーーーーーーーー CakePHP2であれば、Model::query()が、擬似bindではなくPrepared StatementでSQL発行するので安心です http://d.hatena.ne.jp/cakephper/20120204/1328324327 ーーーーーーーーーーーーーーーーー 集計用SQLなど、SQLが複雑になったりする場合や、SQL文を直接書いたほうが開発効率が上がる個所に関しては、Model::query()を利用して、下記のように直接SQL文を発行してます。 $this->Model->query("SELECT `Post`.`id` FROM `posts` AS `Post` WHERE `Post`.`id`

    意外と知られていない? queryメソッドで値をbindできるってこと - cakephperの日記(CakePHP, Laravel, PHP)
  • 極める routes.php (CakePHP 1.2) : akiyan.com

    極める routes.php (CakePHP 1.2) 2009-05-24 5/22に開催された第4回CakePHP勉強会@Tokyoにて、routes.phpの書き方と逆ルーティングについて発表させて頂きました。勉強会での発表は2回目です。 以下発表資料です。 極める routes.php View more Microsoft Word documents from akiyan. 「CakePHPでmod_rewriteを使わずに大抵のURLを作れる自信がある人ー?」 という質問でほとんど挙手が無かったので、テンション高めで発表できました。あと、1回目の発表では緊張しすぎて声が出なかったので、今回ははっきり喋るように心がけてみました。(それでも焦った箇所では声が小さくなっていたかも...)お聞きくださった皆様、どうもありがとうございました! ちなみに極めるといいつつも、named

  • CakePHP Note

    CakePHPに関する情報をまとめてゆきたいと思います。 CakePHPとは? CakePHP(ケーク・ピーエイチピー)は、PHPを使ってWebアプリケーションを効率よく作成するためのフレームワークです。オープンソースです。 免責事項 現在のCakePHPのバージョン1.2は、RC版です。バグが存在したり、仕様変更が行われる可能性がありますこのノートの内容やコードについては著者の力不足や誤植等、不正確な部分もあるかと思いますがご了承ください。家マニュアルやAPIもご覧頂ければと思います。サイトやコードの使用に関しての一切の責任を負いかねます。ご了承下さい。 そのほか ご意見・ご感想は、max [at] garacter [dot] com まで。

  • RedmineをCakePHPに移植する「candycane」プロジェクトの開発合宿に参加してきました : akiyan.com

    RedmineをCakePHPに移植する「candycane」プロジェクトの開発合宿に参加してきました 2009-04-14 安藤さん主導の「RedmineをCakePHPに移植する」というプロジェクト「candycane」が立ち上がり、2泊3日で8人で同時に開発を開始するという合宿に行ってきました。(厳密な開始は先に安藤さん他数名が開発の下地を整えてました) Redmineとは、日で急速に利用者が増えている、サーバーインストール型のBTS(バグトラッキングシステム)です。Redmine自体については以下をどうぞ。 Redmine.JP Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!:第1回 プロジェクト管理ツールの必要性/Tracとの違い/redMineがオススメな理由|gihyo.jp … 技術評論社 目次 candycaneプロジェクトの概

    RedmineをCakePHPに移植する「candycane」プロジェクトの開発合宿に参加してきました : akiyan.com
  • CakePHP findAll で INNER JOIN する方法 | Sun Limited Mt.

    開発中の CakePHP の案件でどうしても INNER JOIN する必要があり、かといって SQL を直接書くのは他のコンポーネントとの兼ね合いでできるだけ避けたい(というより無理)な状況だったので、絶対何か方法があるだろうと思いソースを調べたのでメモしておきます。 /cake/libs/model/model_php5.php の findAll メソッドに $queryData = array('conditions' => $conditions, 'fields' => $fields, 'joins' => array(), 'limit' => $limit, 'offset' => $offset, 'order' => $order ); というのがあり、’joins’ に 空の配列を入れている。 この ‘joins’ の使い方を調べたら、 array( "type"

  • CakePHPハンズオン@Tokyo - おぎろぐはてブロ

    [2009/05/06] このハンズオンの改訂版の新しい動画を以下で公開しています。CakePHPもバージョン1.2に対応しています。ご利用ください。 http://d.hatena.ne.jp/i_ogi/20090418/1240044385 id:yandod さんによるCakePHPハンズオン@Tokyoが開催されました。 8/23 CakePHPハンズオン@Tokyo無事終了 - yandodの日記 CakePHPハンズオン@Tokyo - events.php.gr.jp 当日は、Ustream中継を実施しました。 ムービー公開 ということでムービーを公開します。休憩や先生の巡回のタイミングで動画を切っており、6だてになっています。 別でカメラ回してたんだけど今回は失敗 Ustreamでは、どうしても画質が悪く、コードを含むスライドでは文字が小さくなることもあり、読み取りにく

    CakePHPハンズオン@Tokyo - おぎろぐはてブロ
  • CakePHP で複数のデータベースを使用する - mallowlabsの備忘録

    機会があって CakePHP を触ってみた。 PHPわず嫌いで触ってなかったけど CakePHPRails のおいしいところを多く持っているので意外に好印象だった。 何より動作が軽快で FastCGI 等を使わなくても十分に実用可能なのが嬉しい。 アプリケーションを開発していて、デフォルトのデータベースとは別に ユーザ情報だけ別の(既存の)データベースを使いたいと思った。 こんな時でもフレームワークのソースコードを変更することなく 実現可能な CakePHP に感心した。 以下に方法をメモしておく。 CakePHP のバージョンは 1.1.18.5850。 方法 app/config/database.php に使用したいデータベースの設定を追加する。 <?php class DATABASE_CONFIG { var $default = array('driver' =>

    CakePHP で複数のデータベースを使用する - mallowlabsの備忘録
  • Scaffoldとdbdesigner2cake.php (PHP学習日記)

    PHP学習日記 DelphiでC/Sプログラムを書いていたSunvisorがPHPに挑戦する課程を綴るブログ。はたしてWebアプリを作れるようになるのでしょうか。 DBDesigner 4 と連携してER図から半自動でアプリ生成のエントリを見てDBDesigner4を知り,前のエントリで作成したER図からコードを生成してみます。 Scaffoldって Scaffoldとは何か調べようとYahoo!辞書を見たら「処刑台」とあってびっくり。しかし「(一時的な)組立て舞台」という意味もあるとか。そうこの意味でしょうね当然。Scaffoldを使うと簡単に入力画面を作ってしまえるようです。用途としては開発初期段階でのデータエントリやデータの確認に使えますよという感じでしょうか。コントローラに$scaffoldという変数を用意するだけです。実際にやってみます。利用するテーブルは次の図のものです。 この

  • javascrpit で ヴァリデート(いまさら) ← Neo Inspiration

    今やってる作業は基のヴァリデートを全部JSでやってみようという 勝手な企画をしていてそこでできたメモ。 数字のチェック(数字以外が入ってたら false) //形式があってたら true function isNumeric(str){ return /~[0-9]+$/.test(str); } これだけでできた! ついでにメールアドレスのチェック //形式があってたら true function isMailAddress(str){ return /^[0-9A-Za-z._]+@[0-9A-Za-z.]+[.]+[0-9A-Za-z.]+$/.test(str); } 正規表現はすばらしいですね~ Perlあんまり触ったこと無いので 正規表現に疎かったのですがこれからはジャンジャン使おう。