cakephp

CakePHP2.5.5でビューを使ってみる

前回の続き。 今回はCakePHP1.3.6のこちらのログをCakePHP2.5.5でなぞってビューを使ってみる。Cakeのルールでは、 コントローラーのプログラム名(Controllerの前:キャメル記法)で/app/viewsにディレクトリを作成する。ディレクトリ名はキャメル記法になる…

CakePHP2.5.5でコントローラを使ってみる

前回の続き。 今回はCakePHP1.3.6のこちらのログをCakePHP2.5.5でなぞってコントローラだけを使ってみる。CakePHPはCOC(Convention over Configuration)を採用したフレームワークなので、これに準じて確認用コントローラーを作成する。 コントローラーは、…

CakePHP2.5.5でStaticなHTMLを使う

前回の続き。 今回はCakePHP1.3.6のこちらのログをCakePHP2.5.5でなぞってみる。 StaticはHTMLファイルは/app/webrootにおく。 例えば、 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>これはテストです。</title> <…</meta></head></html>

CakePHP2.5.5を使ってみる。

以前、CakePHP1.3.6を一通りレビューした(こちらから一連のログがある)が、訳あってCakePHPをまた使ってみることになった。以前のレビューに沿って、Cake2.5.5をMacOX+XAMPP+Eclipseでレビューする。 実行要件 Cake2.xの要件をCake book 2.xで見ると Apach…

php5.3.6+CakePHP1.3.8でsqlite3を使う

しばらくインフラ仕事が多かったが、コードに復帰。 途中になっていたCakePHPのお勉強に戻ろう。少し離れていたら、Cakeのバージョンが1.3.8に上がっていたので、改めてそれを使うことにする。これまで、MySQLでサンプルを作っていたが、ポータビリティーの…

CakePHP1.3.6:Shellを使う。

CakePHPにはシェル(バッチ)機能がある。 CakeのモデルはORMとして魅力的なので、バッチで使えると重宝だと思う。シェルの使い方については、CookBookの記事(1、2など)が参考になる。cakeコマンドは、 /cake/console にあるので、chmod 755で実行権限を…

CakePHP1.3.6:Qdmailでメイルを送る。

有名なQdmailを使って、CakePHPからメイルを送ってみる。テストは、以前のログで設定したFedora13のbind9.7, postfix2.7, dovecot1.2の環境で行った。 インストール 本家サイトより、Qdmailをダウンロードする。ダウンロードしたのは、バージョン1.2.6b。 リ…

CakePHP1.3.6:トランザクション

個人商店は忙しい。ここのところ、こまごましたことに振り回せれてる。 そういえば、HTML5は素晴らしい!!これも検証しないといけませんね。CakePHPでは、モデルにトランザクション・コントロールが用意されている。テストで使っているMySQL(5.1)のInnoDB…

CakePHP1.3.6:文字化け対応

自分の開発機は3台。 Sony VAIO X (windows7 32bit) DELL INSPIRON (windows7 64bit) Lenovo X60 (Fedora13 32bit) この中で一番使ってるのが、LenovoのFedora13。とっても軽くて、電池も長持ちする。 (最近、格安のx60と電池パックを買って、Ubuntu10.10…

CakePHP1.3.6:セッション名を変える。

ここのところVPSの設定をしたり、開発機を整理したりといったことをしている。VPSは劇的に安くなっているので、簡単なサーバーならこれを使えば結構使えてしまうのがうれしい。AWSも今一つ価格が落ちないので、VPSが安くなったことで、移行をしている人も多…

CakePHP1.3.6:PHPExcelをつかってみる(簡単なコントローラーを作成する編)。

2009年のマイコミジャーナルの記事を参考にすれば、とっても簡単にExcelを動的に生成して、ダウンロードさせることができる。 Excel2007形式でダウンロード 以下のようなフォーマット(見出しとシート名)をテンプレートとしてよみこんで、簡単な見積書のダ…

CakePHP1.3.6:PHPExcelをつかってみる(インストール編)。

Excelを吐き出したいというニーズは多い。 CSVを吐き出してExcelを起動するなら、ヘッダーにApplication/***と指定してあげればいい。参考はこちら。仲間がExcelReviserを使っているのだが、 メンテナンスが停止していそう。 Excel95-2003形式のみ対応。 Exc…

CakePHP1.3.6:データのメンテナンスパターン

前回は、HABTM(hasAndBelongsToMany)の関係にあるデータの保存について書いた。順番が変ではあるが、データのメンテナンスパターンについて考えてみたい。 データの入れ方は、お客さんの希望で変わってしまうので決めつけることはできないが、自分的にはガイ…

CakePHP1.3.6:HABTMの関係にあるデータを保存する

CakePHPのHABTM(hasAndBelongsTOMany)が面白いので興味本位に見てきたが、さて、データを登録するときにどうしたらいいのだろ、と思った。これまで使ってきたItemとCategoryであれこれやってみた。 下のようなItem登録画面から、Categoryをマルチで選択して…

CakePHP1.3.6:動的アソシエーションを使ってみる

先のログで使ったカテゴリーのメンテナンス画面を作ってみる。モデルCategoryとItemはHABTMの関係にあるが、メンテナンスをする上では、カテゴリーを登録してから商品(Item)を登録する格好にする。なので、カテゴリーをメンテナンスする限りにおいては、It…

CakePHP1.3.6:HABTMでデータを取得する

前回、前々回のログでは、HABTM(hasAndBetongsToMany)の関係にある2つのモデルに関してscaffoldを作ってみた。今回は、このモデルからデータがどう得られるのか確認する。 コントローラーの作成とデータの取得結果 一覧表を作る目的で、$paginateに何が入…

CakePHP1.3.6:HABTM(hasAndBelongsToMany)とscaffold : 中間テーブル

前回、categoriesテーブルとitemsテーブルをHABTMで関係づける際に、category_itemsという中間テーブルを作成した。調子にのって、このテーブルに以下のモデルを定義して、scaffoldでプログラムをジェネレートしてみる。 モデル category_item.php array( '…

CakePHP1.3.6:HABTM(hasAndBelongsToMany)とscaffold

モデルのアソシエーション(リレーション)として、これまで、hasOne、hasMany、belongsTo検証したので、HABTM(hasAndBelongsToMany)、つまり、N:Mの関係を検証してみる。scaffoldをやってびっくり。とっても簡単に定義できる。N:M(複数:複数)のリレーシ…

CakePHP1.3.6:HABTM(hasAndBelongsToMany)とscaffold

モデルのアソシエーション(リレーション)として、これまで、hasOne、hasMany、belongsTo検証したので、HABTM(hasAndBelongsToMany)、つまり、N:Mの関係を検証してみる。scaffoldをやってびっくり。とっても簡単に定義できる。N:M(複数:複数)のリレーシ…

CakePHP1.3.6:AppController.phpをカスタマイズする。

先のログでAuthを使って、全てのコントローラーでログインチェックを行うことにした。 これは、面倒くさい。DRYじゃない。ということで、コントローラーのスーパークラスであるAppController.phpに設定してしまう。AppController.phpは、/cake/libs/controll…

CakePHP1.3.6:Authコンポーネントで認証する(その2)

前回のログに引き続き、usersテーブルをメンテナンスするプログラムを作成する。 今回は、hasOneの関係を試すために、user_attrsテーブルを以下のようなスキーマで作成する。 CREATE TABLE IF NOT EXISTS `user_attrs` ( `id` int(11) NOT NULL AUTO_INCREME…

CakePHP1.3.6:Authコンポーネントで認証する

Authコンポーネントを使って、以下のような認証を実装する。Mainというプログラムを作成し、以下のようなメニュー画面をつくる。 ここにアクセスするためには、以下のようなログイン画面を通すようにする。 また、メニューからログアウトすると以下のような…

CakePHP1.3.6:Invalidateでちょとハマる

画像アップロードを作った際に、モデルのinvalidateが言うことを聞かずにちょっとはまった。 multipartの部分は、あらかじめsaveの前にチェックしてエラーがあったら画面を戻してエラーメッセージを出したい。 invalidateを使うのは、入力値が残るため。これ…

CakePHP1.3.6:Media Plugin1.3RCに挫折して、ファイルアップロードを自作(その2)

前回の続き。 まず、以下のアップロード画面を作る。これがメイン。 プログラム名はDocとするので、/app/controllersにdoc_controller.phpを作成する。 ビュー /app/views/docsにadd.ctpを作る。 ファイルを複数uploadするには、DocImage.0.fileと同じ部分を…

CakePHP1.3.6:Media Plugin1.3RCに挫折して、ファイルアップロードを自作(その2)

前回の続き。 まず、以下のアップロード画面を作る。これがメイン。 プログラム名はDocとするので、/app/controllersにdoc_controller.phpを作成する。 ビュー /app/views/docsにadd.ctpを作る。 ファイルを複数uploadするには、DocImage.0.fileと同じ部分を…

CakePHP1.3.6:Media Plugin1.3RCに挫折して、ファイルアップロードを自作(その2)

前回の続き。 まず、以下のアップロード画面を作る。これがメイン。 プログラム名はDocとするので、/app/controllersにdoc_controller.phpを作成する。 ビュー /app/views/docsにadd.ctpを作る。 ファイルを複数uploadするには、DocImage.0.fileと同じ部分を…

CakePHP1.3.6:Media Plugin1.3RCに挫折して、ファイルアップロードを自作(その1)

ファイルアップロードをやってみようと思い、名高いMedia Pluginを試して、半日がかりでやってみたが、結局挫折。サイトを見て、おやおやと思ったのが、0.x系から飛んで、1.3RCが出てること。こういうのは経験的に危ない。YUI、Strutsなんかもそうですね。ア…

CakePHP1.3.6:任意のSQLを実行する。

CakePHPではモデルを定義するだけで、基本的なSQLは書かなくていい。 だが、それだと困る場面もあると思う。 と思ってググってみると、shinbaraさんのブログにありがたいことが書いてあった(感謝です)。コードを見た方が早いので書いておく。 コントローラ…

CakePHP1.3.6:円マークを使って金額をフォーマットする。

つまらないことで30分もはまったので、覚え書き。 以下のように、円マークをつかって、金額をカンマ区切りで出そうと思い、Numberヘルパーを使った。 円マークを¥とするのは当たり前なんだけど、エスケープされてしまう。あれれ、と思ったら、numberヘルパー…

CakePHP1.3.6:テーブルのジョイン(join)

ORM(Object-Relational Map、もしくは、Object-Relational Mapper) モジュールでは、エンティティー間のリレーションが定義できることができるのが、一般的だ。話が脇にそれるが、先日、会社で教育をやったらエンティティー(Entity)という言葉に違和感を覚…