« 2007年11月 | メイン | 2008年01月 »
「-l」オプションでPHPの文法をチェックできます。
php -l filename.php
CakePHPのインストールは簡単で、公式サイトからファイルをダウンロードして展開するだけ。
のはずだったのですが、「404 Not Found」と表示されてしまいました。
feedtailor Inc. 大石裕一の開発ブログのCakePHPのチュートリアルで気をつけたいことという記事を発見して無事に解決。
初期設定では、/に設置されることを前提になっているんですね。
ありがとうございます。
以下、メモを残しておきます。
CakePHPをインストールしたディレクトリにある.htaccessに以下の行を追加。
RewriteBase /~yamamoto/cake/
CakePHPをインストールしたディレクトリ/app にある.htaccessに以下の行を追加。
RewriteBase /~yamamoto/cake/app/
CakePHPをインストールしたディレクトリ/app/webroot にある.htaccessに以下の行を追加。
RewriteBase /~yamamoto/cake/app/webroot/
PHPでメールを送信するときなど、半角カタカナを全角カタカナに変換する処理が必要になることがあります。
PHPではこの変換を行う専用の関数 mb_convert_kana が用意されています。
//半角カタカナを全角カタカナに変換する
$zenkaku = mb_convert_kana($hankaku, 'KV', 'UTF-8');
三項演算子は右辺にも書ける。
(a<b?a:b<c?b:c) = val();
「=演算子はどう解釈される?」から。
自己初期化の問題は、『C++プログラミングの処方箋』の鉄則21で取り上げられています。
C++では、初期化子が解釈される前に変数の名前が有効になります。
int var = 12;
{
double var = var;
変数varの値は?
自信のない方は、『C++プログラミングの処方箋』を読んでみてはいかがでしょうか。
鉄則21では、自己初期化の問題で陥りやすい落とし穴について解説されています。
ちなみに、変数varの値は不定値になります。
以下のコードは、C++Builder2007ではコンパイルできました。
time_t now( time( &now ) );
time_t t( time( &t ) );
これから投資信託を始める人にぴったりの入門書。
前半は投資信託の解説。
内容は平易で一般的。
類書を読んだことがある人にとっては、目新しい話はない。
後半は、おすすめの投資信託の商品と販売会社、商品の組み合わせの紹介。
すでに始めている人にとっても参考になる。
とにかく、わかりやすい。
これから投資信託を始める人に一冊だけ薦めるとしたら、本書を薦めたい。
CodeGear RAD Studio 2007、Delphi 2007 for Win32、C++Builder 2007のパッチが公開されたようだ。
CodeGear RAD Studio 2007 December Update
追記。
日本語訳が出ました。
RAD Studio 2007、Delphi 2007 for Win32 および C++Builder 2007 アップデート(December 2007 Update)リリースノート
追記。
RAD Studio 2007 December Updateでは、C++Builder 2007向けに 46件(うち12件はQuality Centralより)の修正が加えられています。
C++Builderの修正は46件とのこと。結構、多いですね。
UnitTestでprivateにアクセスする方法。
#ifdef UNITTEST
#define private public
#endif
なるほど。
friendを使うよりも、この方がスマートかも。
CodeGear RAD Studio 2007 Trialが公開されたようです。
日本語版も選択できるようです。
同一マシンで Delphi 2007 をアンインストールし、再インストールした際に、一部のお客様で"Serial Number が不正" のエラーの問題が発生することがあります。
C++Builderも同じです。はまりました。
単純にインストーラから削除するだけでは不十分なようです。
手作業でいくつかのファイルやディレクトリを削除しなければならない模様。
正しいアンインストールの方法は「RAD Studioのアンインストール」を参照。
Model.generateListのキーとカラムの引数について。
『CakePHPガイドブック』には、「モデル名.フィールド名」のような形で指定すると記載されています。
Bookmark.id
ところがこの方法ではうまくいかず。
調べてみたところ、キーとカラムの指定は、「{n}.モデル名.フィールド名」のような形で指定するようです。
{n}.Bookmark.id
バージョンの違いでしょうか。
『PHP5徹底攻略』は、PHP5の入門書です。
PHPプログラミングの経験のない入門者が対象です。
この本の構成は、ステップアップ編とリファレンス編からなります。
ステップアップ編では、PHPスクリプトをコマンドラインから動かして学んでいきます。
しかし、PHPをこれから学びたいという人はWebアプリを作りたいと思っているはずです。
PHPはWebアプリを簡単に作れるのが特徴であるのに、最初にコマンドラインを使って学ぶことに疑問を感じます。
PHPスクリプトをブラウザでアクセスして、プログラムが動作する感動を体験することで、興味とやる気が出てくると思うのです。
サンプルコードの難易度も疑問です。
ステップアップ編ではほとんど文法についての説明がありませんが、サンプルコードにはさまざまな関数が使用されています。
これから学ぼうとする人にとっては、わからないことばかり。
挫折感を味わうことにならないでしょうか。
リファレンス編は、一般的な内容です。
PHP関数リファレンスは、WebのPHP マニュアルとほとんど同じような印象を受けました。
それから、PHP5で大幅に強化されたオブジェクト指向については、説明がありません。
PHP4を知っていてPHP5をこれから学ぼうと考えている人は、『PHP5徹底攻略』はやめたほうがいいです。
『独習PHP』は、PHP5の入門書です。
PHP5ならPHP5と、ちゃんと書名に書いてもらいたいところです。
解説もわかりやすいですし、構成もわかりやすく、後から読み直す時も使いやすそうに感じました。
『『PHP5徹底攻略』と違い、ちゃんとオブジェクト指向についても解説されています。
PEARやSmaryなどの説明のあり、ちょっとお得な感じです。
PHPの入門書として、お薦めできる本であると思います。
CakePHPのdebugレベルをproductionにすると、「The requested address was not found on this server.」というエラーメッセージが表示され、解決に時間をとられました。
開発中はdebugレベルが1以上でしたので、問題なく動作していました。
define('DEBUG', 1);
debugレベルをproductionに変更して、
define('DEBUG', 0);
運用サーバーに設置すると、「The requested address was not found on this server.」というエラーメッセージが表示されます。
試しにdebugレベルをdevelopmentにすると、問題なく動作します。
問題があったのは、app/tmpフォルダとその下のフォルダのアクセス権でした。
tmpフォルダの下には、cacheフォルダやlogフォルダがあります。
おそらく、ここにファイルを作成できなかったためエラーが発生していたのではないかと思います。
tmpフォルダのアクセス権にはご注意ください。
「C++Builder2007でBoostを使用する」の記事を更新しました。
C++Builder Update 3| + December 2007 Updateに対応しました。