2008-06-01から1ヶ月間の記事一覧

CakePHP 1.2 のシェルで標準入力を取得

Shell クラスから見て $this->Dispatch->stdin に標準入力のハンドラがある。 Dispatch->stdin; while (!feof($stdin)) { $buffer = fgets($stdin); // 1行取得 echo $buffer; // 何らかの処理 } } }

CakePHP 1.2 の AuthComponent

そろそろ、ログイン機能を検討してみる。AuthComponent を使うといいみたい。http://blog.ne2ma2.com/archives/160 http://blog.ne2ma2.com/archives/161 http://blog.ne2ma2.com/archives/163・・・初回はどうしたもんかね。ログインしないとユーザも追加で…

CakePHP 1.2 モデルのqueryメソッドでfind、findAllと同等の返り値を得る方法

http://d.hatena.ne.jp/ngtn/20080409/1207747539 より、 $this->User->query("SELECT * FROM users"); のように、SQL文を直接実行した場合、結果のデータの構造が find などと違っている。 同じ形式にするには find メソッドで発行する SQL文と同じものを生…

CakePHP 1.2.0.7296 RC2 released!

http://bakery.cakephp.org/articles/view/release-some-rc2-sweetnessあ、新しいのがあがってる。色々バグフィックスしてるんだって。 最近リリースのペースがいい感じだね。 CakePHP 1.2 RC1 -> RC2 cake ディレクトリと app/webroot/{index,test}.php を…

CakePHP 1.2 でSQLの値をエスケープ

Sanitize::escape() が使えそう(試してない)。CakePHP 1.1 だと Sanitaize::sql() だったけど、 1.2 になってどこに移動したのか分からなかったがようやく見つけた。

CakePHP 1.2 で大量データの処理

Model::findAll() だとすぐにメモリー不足になってしまうような処理も、 DboSource::fetchRow() で逐次読み込めば大丈夫。 $db =& $this->User->getDataSource(); $row = $ds->fetchRow("SELECT * FROM users"); while (!empty($row)) { var_dump($row); // …

CakePHP 1.2 で SQL の Where 句生成

DboSource::conditions() でできた。これで、Model::findAll() のための条件データ($conditions)からSQLが容易に作成できる。DboSource::limit() や DobSource::order() とかもあるので、試してみたい。直にSQL文を書いてもいいんだけど、DB差し替えなんて大…

CakePHP 1.2 でバッチ処理

Shell クラスを継承したファイルを app/vendors/shells の直下におくと、cake コマンドで実行できるらしい。以下が参考になる。 http://www.syuhari.jp/blog/archives/185また、細かいところは、APIを参考にするといいかも。 http://api.cakephp.org/class_s…

CakePHP 1.2 RC1 の非推奨

find -name "*.php" | xargs grep -B 1 -A 10 "@deprecated"とか打って調べたら結構あるね。いつから非推奨なのかは不明なものが多いけど。非推奨の関数一覧は、 http://api.cakephp.org/1.2/deprecated.html にまとめてある。・・・ありゃ、Model::findAll(…

CakePHP ポケットリファレンスの RC1 マイグレートシート

PHP

こちらより、いくつかピックアップ。現状では、ポケットリファレンスで分からないところは、ネットで調べたりソースを読んでいる。やはり、まとまったものがあると助かる。 Configurations ACL クラスの名前が変わりました Beta : Configure::write('Acl.cla…

Berkeley DB Release 4.7

http://www.oracle.com/technology/products/berkeley-db/db/index.htmlう〜む。いつの間にか(5/20?)、新しいバージョンがリリースされてた。こういったニュースって、ネット上には話題に上がってこないものだね。社内のシステムで Berkeley DB 4.6 を利用し…

CakePHP 1.2 で複数チェックボックス(その2)

ビューに関しては動作を確認できた。 モデルについて確認する。コントローラで受け取ったチェックボックスのデータは、配列になっているので、 モデルでは、ちょっと工夫が必要。以下の機能を実装する。 DBに保存する際には、カンマ区切りで保存する事にする…

CakePHP で複数チェックボックス

ビューで以下の様にすると面白いことになった。 checkbox('User.sex.1')?>男性 checkbox('User.sex.2')?>女性 コントローラーでは、$this->data['User']['sex'] が配列になる。var_dump($this->data['User']['sex'] をとると、 array(2) { [1]=> string(1) "…

CakePHP 1.2 のデフォルトのレイアウト

/cake/libs/view/layouts/default.ctp が用意されているので、これを /app/view/layouts 以下にコピーして利用する。

CakePHPの月選択のタグを表示する

FormHelper::month() を利用するのだが、CakePHP 1.2.0.7125 RC1では、英語表記にするかどうかを "monthNames" オプションで指定できる。 month('User.birthday', 'now', array('monthNames' => false)) ?> で、数字表記に変更。・・・もしくは、/cake/libs/…

CakePHP ポケットリファレンス

CakePHP ポケットリファレンスを購入した。 http://gihyo.jp/book/2008/978-4-7741-3503-8開発版なので当たり前なのだが、CakePHP 1.2 は内容がどんどん変わっている様だ。 ポケットリファレンスは、 CakePHP 1.2.0.6311-beta を参照している。

CakePHP で直接 DboSource を呼び出す。

cake/libs/model/datasources/dbo_source.php というファイルがある。 このクラスを利用することで、直接SQLを実行することもできる。http://www.1x1.jp/blog/2008/04/cakephp_php5_dbosource.html より、 useDbConfig); $db->value($hoge); ?> $this->useDB…

CakePHP にハマった点

CakePHPについて情報収集に2日かけた後、利用開始して1日目でハマった点。 環境設定でハマった DocumentRoot 以外にコンテンツを設置した際の設定。 複数の .htaccess に RewriteBase を追加した。 例: http://localhost/~okinaka/cake/ にしたいとき ~/pub…

iPod shuffle との連携時の覚え書

Ubuntu (hardy) に iPod shuffle を接続してみた。 Ubuntu マシンに iPod shuffle を USB 接続すると、すぐに認識された。 Rythmbox の「デバイス」の欄に iPod が表示された。 出荷時の状態では Rythmbox を使って曲を追加できなかった。 曲をドラッグ&ドロ…

ant の jar タスク

スタンドアロンの Java アプリケーションの build.xml を作成するとき、マニフェストに Main-Class を指定しておくとよい。 <jar jarfile="${build.dir}/${name}.jar" basedir="${build.dest}"> <manifest> <attribute name="Main-Class" value="${main.class}"/> </manifest> </jar> 参考: http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/jar/jar.html

magic_quotes_gpc 仕様

PHP

今回、"magic_quotes_gpc = On" の環境で開発することになったので、仕様確認。 GPC(Get/Post/Cookie) 処理に関する magic_quotes の設定を行います。 magic_quotes が on の場合、'(シングルクオート)、" (ダブルクオート)、\(バックスラッシュ) 、NULL に…

vim の設定

http://nanasi.jp/articles/howto/file/modeline.html#id10 オプション オプション(省略) 説明 tabstop ts タブを画面で表示する際の幅。 shiftwidth sw インデント時に使用されるスペースの数。 textwidth tw 0でないなら、このオプションで設定された幅で…

Rails + sqlite3 が動かない (libsqlite3-ruby の不具合?)

Debian (etch) に入っている libsqlite3-ruby の不具合(というか sqlite3 の仕様変更に未対応)が原因で、sqlite3 では Rails がうまく動かない。Debian のパッケージの代わりに、rubygems で最新の sqlite3-ruby を取得すれば問題解消。 gem install sqlite3…

Redmine のインストール

http://redmine.jp/tech_note/install/ より。Redmine は、Ruby on Rails ベースのプロジェクト管理システム。今回は、Rails のデータベースとして sqlite3 を利用する。 必要なパッケージのインストール rubygems と rake をパッケージでインストール aptit…