タグ

CakePHPに関するyajamonのブックマーク (17)

  • 【CakePHP3】テーブルオブジェクトからスキーマ情報を参照する | バシャログ。

    梅雨のジメジメにめっぽう弱い kagata です。 今回は表題のとおり CakePHP3 のテーブルオブジェクトからスキーマ情報を参照していろいろやる方法をご紹介します。Cake3 のモデル周辺は、べんりな道具が当に充実していますよね。 例題1:入力データの null を空文字列に置き換える 例えば、データベースに次のようなテーブルがあるとします。 CREATE TABLE `posts` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `subject` varchar(255) NOT NULL, `body` text NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`) ) null を撲滅するため、どのカラムにも n

    【CakePHP3】テーブルオブジェクトからスキーマ情報を参照する | バシャログ。
    yajamon
    yajamon 2017/07/05
    最終的にNonNull制約と初期値を参照
  • CakePHP2でModel->find()でjoinsを使ってみた

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    CakePHP2でModel->find()でjoinsを使ってみた
  • 勉強会を楽しむなら発表しよう!

    せっかく勉強会に参加するなら発表してみましょう!という話です。 Photo by Kiryu Tsukimiya 演台に立って、プロジェクタに資料を写しながら発表をする。 勉強会に良くある発表の風景ですね。あなたもこの登場人物になってみませんか? 発表のメリット 勉強会で発表するとこんな良いことがあります。 1. より深くテーマを学ぶことができる 発表するとなると、内容を考え、資料を作るでしょう。となると発表内容について、調べ、考え、まとめるわけです。この過程でより深く学ぶことができるわけです。特に初めての発表なら、失敗したくはないでしょうから(失敗しても良いんですけどね)、必死のぱっちでやるでしょう。明確な目的を持った学習は効果が高いのはあなたも経験済みだと思います。 2. 勉強会への予習ができる 1.のおまけですが、そうやって勉強会のテーマについて少しでも学習して行くと、他の方の発表も

    勉強会を楽しむなら発表しよう!
  • CakePHP Modelとの付き合い方(CakePHP Advent Calendar 2010 3日目)

    CakePHPのModelに悩む人が多いようなので、自分なりの付き合い方(考え方)をご紹介します。 CakePHP Advent Calendar 2010の3日目です。 前日の k1LoW さんのエントリ、参考になりますね。GETのフォームをdata[]でやるとURLがすんごいことになるので、ウチでは別途対応できるライブラリを作ったりしてます。 さて、3日目の今日は書きたいネタは幾つかあったのですが、「君の当たり前に僕らは感嘆させられるんだ」の精神に従って、自分なりのModelの使い方、考え方を書いてみます。 1. 適正なインターフェイスを用意して処理をカプセル化 まず基的な考え方。 Model(に限らずですが)では、処理単位でインターフェイス(メソッド)を用意して、実装はカプセル化しておきます。 こうすることによって、Modelを利用する側(Controllerや他のModel等)は

  • 「CakePHP 3.0」リリース、ORMを刷新 | OSDN Magazine

    PHP向けWebアプリケーションフレームワーク「CakePHP」の開発チームは3月22日、最新版となる「CakePHP 3.0」をリリースした。新しいORM(オブジェクト関係マッピング)の導入をはじめ、多数の機能が加わっている。 CakePHPはMVCアーキテクチャを採用するPHP向けのWebアプリケーションフレームワーク。データベースアクセス、キャッシュ、認証などの機能を統合しており、高速な開発ができるのが特徴。容易な設定、安全性などの特徴も備える。ライセンスはMIT License。 CakePHP 3.0は、2011年に公開されたバージョン2系からのメジャーアップグレードとなる。PHPはバージョン5.4.16以上が必須となり、mbstring、intlの両拡張モジュールも必要となる。 最大の特徴は新しいORM(オブジェクト関係マッピング)の導入。Modelを大きく変更し、Tavleク

    「CakePHP 3.0」リリース、ORMを刷新 | OSDN Magazine
    yajamon
    yajamon 2015/03/26
    cakephp 3.0 来てるじゃないですか
  • CakePHP3.0への移行の準備メモ | X->A->O

    CakePHP2系の最新版を利用しながら、3系への以降を少しでもスムーズにさせるためのメモです。 実際には非常に多くの作業を伴うことが予想されますが、可能な部分だけでも対応しておきたいところです。 このエントリは随時更新中です。気づいた時&暇な時に追加・更新していきます。 PSR-4 に準拠した名前空間の導入 CakePHP3.0 から namespase が導入され、同時に PSR-4 準拠となります。それに関連してディレクトリ構造やクラス名、ファイル名が変更されます。 これに備えたアプリケーションコードの変更は2系では基的に不可能と思われますが、準備のために整理しておきます。 APIの廃止、変更、代替案 クラス、メソッド、変数の廃止、メソッド引数の扱いの変更、推奨されている代替案などをまとめていきます。 中には 2.x のかなり初期の段階で移行を促しているものなど、あえて書くまでもな

    yajamon
    yajamon 2015/01/30
    これは控えておかないと
  • CakePHP 3.0.0-RC1 がリリースされました – The Bakery, なんでもCakePHP!

    CakePHPコアチームはCakePHP 3.0.0の最初のリリース候補版が入手可能になったことをお知らせいたします。ベータリリース以降懸命に改善してきました。コミュニティの皆さんの助力にも感謝しています。 改善のための奔走により、ベータ3からいくらかAPIを変更しました。先のバージョンで多くの欠点が見つかったバリデーションのサブシステム関連で特に多くの変更があります。3.0.0-rc1での変更点の概要は以下のとおりです: バリデーションの改善 バリデーションプロセスは2つの段階に分かれています。最初の段階はユーザーが対面するタイプのバリデーションで、いつ、どこで実行するかという点を除けば先のリリース以降変更はありません。 先のバージョンでは、以下のように実行しました。 $article = $this->Articles->newEntity($this->request->data);

    yajamon
    yajamon 2015/01/21
    phpunit4 も使えるようになるらしいし、そろそろ触っていかんとなぁ
  • CakePHP 2.3

  • cakephpやRailsのMVCデザインパターンに関して - 田舎の技術者が奮闘中

    私は開発する際に、cakephpなどのフレームワークを必ずと言っていいほど使用しています。便利だし、クラスなどの役割が明確になるので、誰が触っても似たような感じになります。 フレームワークを使わない場合でも、いつもいつもMVCで開発するべきだと、会社の後輩にも口を酸っぱくしていっているが・・・私の考えているMVCは実はMVC2と呼ばれているものでした。 私の無知さを教えてくたのが、以下の記事である。 PHPerのMVCの一体どこが間違っていたのか - MugeSoの日記 この記事を読んだ時に、理解が出来ませんでした。 何故ModelからViewを参照しているか?CakephpにModelを監視するクラスやメソッドが無いし、そもそもModelクラス自体呼び出す事が出来ません。(例外はあるけど、標準ではない) 全然納得が出来ませんでした。 でも、このままでは間違った認識で、後輩たちに情報を発信

    cakephpやRailsのMVCデザインパターンに関して - 田舎の技術者が奮闘中
  • PHPerのMVCの一体どこが間違っていたのか - MugeSoの日記

    メリークリスマス! PHP Advent Calendarもいよいよ24日目に突入です。 昨日はxhprofについてでしたね。僕もパフォーマンスチューニングの際に使っています。手軽に利用できるのでお勧めです。 さて、このエントリーでは表題の通りMVCについて書かせていただきます。これは、PHPカンファレンス2012&WordCamp Tokyo2012合同LT大会で発表した「やはりお前らのMVCは間違っている」で煽るだけだったこの問題をきちんと解説するものです。 この発表資料を公開するとPHPの枠を超えて広く閲覧いただき*1、また多くの方から突っ込みを戴きました。「LTだから」と言って逃げていた回答をして、気持ち新たに新年を迎えようと思います。 MVCとはなんなのか 間違いを指摘する前にMVCがそもそもどういうアーキテクチャであるのかを確認しなければいけません。 MVCは1970年代にパロ

    PHPerのMVCの一体どこが間違っていたのか - MugeSoの日記
  • CakePHPでUPDATE - 不思議なサービスをつくる新人プログラマーの日記

    CakePHPでデータベースのテーブルにデータを保存するには、save()を使います。 $data = array('User', array('name' => 'hoge', 'birth' => '1988-01-01', 'b_type' => 'A')); $this->User->save($data); この命令により以下のSQLが実行されます。 INSERT INTO users ('name', 'birth', 'b-type') value ('hoge', '1988-01-01', 'A'); SELECT * FROM users; id name birth b_type 1 hoge 1988-01-01 A 作られたデータをUPDATEしたい場合には、主キーの「id」を指定してsaveすればUPDATEできます。 $data = array('User',

  • updateAllで一気に複数レコードのUpdate - cakephperの日記(CakePHP, Laravel, PHP)

    CakePHP1.2 RC3の環境です。 CakePHPは、saveメソッドでデータを保存する際に、データの配列のキーにidがあればUpdate,なければInsertしますが、これだと複数レコードを一気にUpdateするのは大変そうです。 例えば、年齢カラムがあり、年齢が20才以上の人の飲酒可能フラグカラムにOKという文字をセットするなんていう場合、SQLとしては update hoge set inshu='OK' where age >= 20;みたいにしたいのですが、これをCakeでやろうとした場合、まずSelectで20才以上の人のidを取得して、それからforeachでsaveを繰り返す、、、、なんて考えたのですが、これじゃ非効率だよなと思ってAPIを探したら、updateAllが見つかりました。 http://api.cakephp.org/class_model.html#6

    updateAllで一気に複数レコードのUpdate - cakephperの日記(CakePHP, Laravel, PHP)
  • Eclipse PDTでCakePHP開発、まず設定すべきこと - Writing Some Code

    Eclipse PDTを使う理由の1つは、その強力なコード補完機能です。 CakePHPを使った開発でもそれを最大限に活かさないのはもったいない!ということで、各所で既出な情報ではありますが、自分の備忘録を兼ねて書きます。 知らない人は今すぐ設定することをオススメします。この設定をすると開発効率は格段にあがると思います。 Viewファイルのコンテンツタイプの設定 Viewファイル(1.1系だと.thtml、1.2系だと.ctpが拡張子のファイル)は、デフォルトではただのテキストファイルとして扱われ、phpコードの補完機能が使えません。 これらはコンテンツタイプの設定をすることで、phpコンテンツとしてEclipseでは認識され、コードの補完もできるようになります。 その設定方法はというと、以下の通り。 メニューバーの「ウィンドウ」⇒「設定」を選択 設定画面の左側の「一般」⇒「コンテンツ・タ

    Eclipse PDTでCakePHP開発、まず設定すべきこと - Writing Some Code
  • CakePHPで GROUP BY や SUM,COUNT とかを取る場合のバーチャルフィールド(virtual fields)利用

    $result = $this->Model->find('all', array( 'fields'=> array('id', 'count(id) as cnt'), 'conditions' => array('id >=',100), 'group' => array('id'), )); Array ( [0] => Array ( [Model] => Array ( [id] => 1 ) [0] => Array ( [cnt] => 1 // ココに追加されてしまう。[0]は使いづらい。 ) ) [1] => Array ( [Model] => Array ( [id] => 2 ) [0] => Array ( [cnt] => 1 ) ) [2] => Array ( [Model] => Array ( [id] => 3 ) [0] => Array ( [c

    CakePHPで GROUP BY や SUM,COUNT とかを取る場合のバーチャルフィールド(virtual fields)利用
  • [疑問][CakePHP]findのfieldsにconcat(文字結合)を使う

    findのfieldsにconcatを使う際の疑問 今日はちょっとした疑問から。 例えば「ユーザ」というモデルがあって、フィールドが id name_l name_f のように苗字と名前が分かれていた場合に、「User->find(“list”)」で取得するリストを「array(id => name_l.name_f」にするにはどうしたらいいか?ということなんですけれども、こういう場合プレーンなSQLならconcat()*1 を使って、 select id, concat(name_l, name_f) as name from users とやればidと結合されたnameのフィールドが取得されますよね。 じゃあCakeでやってみましょう。 fieldsにconcatを入れてみる $fields = array( "id", "concat(name_l, name_f) as name"

    [疑問][CakePHP]findのfieldsにconcat(文字結合)を使う
  • Welcome - 2.x

    CakePHP クックブックは、オープンに開発されている、コミュニティで編集可能なドキュメントのプロジェクトです。 ドキュメンテーションの品質、正当性、正確性の高さを維持することを期待しています。 右上の "Improve this Doc" (この文書を改善する) ボタンに注目してください。 このボタンは、あなたがドキュメンテーションの追加・削除・修正などの貢献が簡単にできるように、 該当ページの GitHub のオンラインエディタへ誘導します。 入門¶ ブログの作成¶ ブログチュートリアル を使用した入門。 基的なブログの構築の過程を通して、CakePHP の基を学びます。 規約¶ CakePHP の動力となっている、典型的な CakePHP のリクエスト と、 規約 を学びましょう。 コントローラ¶ コントローラはリクエストを取り扱い、調和の手助けとクライアントへのレスポンスの準

  • マニュアル - 1.3

    This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release! マニュアル¶ CakePHP のドキュメント Cookbook にようこそ。Cookbook は、一般ユーザーでも貢献できる wiki ライクなシステムです。このシステムを公開する事で、高品質で妥当で正確な CakePHP のドキュメントを維持することを望みます。また、Cookbook で、誰でも簡単に貢献できるようになります。 AD7six には*非常に* 感謝したいと思います。彼は Cookbook の発起人でもあり、多くの時間をかけて、このアプリケーションの開発、テスト、改良にあたっています。 手伝う方法:¶ サイト上で何かのエラーや、不完全な部分、まったく触れられていない部

  • 1