Home > アーカイブ > 2006-11

2006-11

CakePHP cakeError()は値を返さない

この記事の所要時間: 150

cakeError()は値を返さない、という話です。

Well, this solution would work fine as long as it is only used internally (even though it is not very elegant). But the framework allows you to write a custom error handler, and so if you want to handle a “missing helper file” error yourself, you get PHP errors when you don’t use an exit.

cakebaker » Don’t rely on side effects in your code

はじめてこの箇所のコードを追っかけた時にちょっと頭が「?」になりました。エントリでも言及されていますが、自分でエラーハンドラを作る際はこれを意識しておかないとまずい事になりますね。

どうせErrorHandlerでexitするなら、単純にcakeError()は値を返さず、メソッド内でexitすれば良いような気もします。コードで書くとこんな感じですね。

エラー呼び出し元

< ?php
...
//return $this->cakeError(...);
$this->cakeError(...); // returnしない
...
?>

Object#cakeError()

function cakeError($method, $messages) {
...
  if (class_exists('AppError')) {
    $error = new AppError($method, $messages);
  } else {
    $error = new ErrorHandler($method, $messages);
  }

  exit;
}

CakePHP1.1.10.3825リリース

この記事の所要時間: 059

CakePHP1.1.10.3825がリリースされました。(1.1.9がリリースされたのですがバグがあったようで、すぐに1.1.10がリリースされています。)

バグフィックスが主なですが、ACLに大きな変更がなされたようです。(ACL使ってます?)

1.1.8とのdiffを見てみると以前あった「Controllerのメソッドが外部から呼べる」(CakePHP Controller小話)の対策がなされていました。Controllerクラスにあるメソッドは直接外部からは呼べなくなっていますね。(Missing Methodが表示されます。)あとはAppControllerや各コントローラでアクション以外のメソッドを書かないようにすれば、ひとまず外から任意のメソッドを呼ばれる心配は無くなりました。

あとbakeにも色々と改良が加えられています。近頃はフレームワーク自体の出来もそうですが開発をサポートするツールの存在が大きいのでこれは嬉しいですね。

 

移行の方法ですが、ACLを使っていなければ1.1.10のcake/を既存のcake/にコピーすればokです。

PHP5.2.0リリース

  • 2006-11-07 (火)
  • PHP
この記事の所要時間: 116

PHP5.2.0がリリースされましたね。

The PHP development team is proud to announce the immediate release of PHP 5.2.0. This release is a major improvement in the 5.X series, which includes a large number of new features, bug fixes and security enhancements.

PHP: PHP 5.2.0 Release Announcement

バージョンNoからも分かるとおり大きな修正が行われています。このリリースでPHP5.1系はもうリリースされなくなるようです。リリースノートの和訳はPHPの次期バージョン、PHP 5.2.0 リリース – PHPプロ!ニュースにあります。

PHP5もどんどんバージョンが上がっていますが、私の周りではまだまだPHP4がバリバリ動いてたりします。;-)

既に問題が見つかっているようなのでご注意を。

WIMP?WISP?WAPP?

  • 2006-11-01 (水)
  • PHP
この記事の所要時間: 124

ZendとMicrosoftが手を組んだようです。

Zendの共同創設者兼技術担当バイスプレジデントであるAndi Gutmans氏は、31日に開催のZend/PHPカンファレンスにおいて、PHPソフトウェアの信頼性を向上させ、Windowsサーバ上での速度を 2~3倍加速させる改良内容を発表すると述べていた。同氏によると、PHPの稼動プラットフォームとしてより一般的な「Linuxとほぼ同レベルの性能を達成することができた」という。

MSとゼンド、オープンソースPHPソフトのWindowsサーバ対応で提携 – CNET Japan (2006-11-01)

LAMP(LAPP)構成がデファクトとなりつつあるのになぜWindows?MicrosoftにはASP.NETがあるのになぜPHP?と双方ともに疑問はありますが、お互いの領域を広げていきたい(言語・プラットフォーム)のが狙いなのでしょう。

通常のインターネットに出るサーバはLA(M|P)Pで構築するのがほとんどですが、イントラネットでWAPP(Windows/Apache/PostgreSQL/PHP)で構築したことがあります。短時間に集中して負荷がかかるシステムなのですが、安定して稼働しているようです。

さらにこのプロジェクトではWAPPサーバとLAPPサーバのデータ連携もあったりしてプラットフォームを選ばず同じ言語で開発できたのは有り難かったですね。

ちなみにWIMPは[Windows/IIS/MySQL/PHP]、WISPは[WINDOWS/IIS/SQLServer/PHP]らしいです。呪文ですね。:-)

Home > アーカイブ > 2006-11

検索
フィード
メタ情報

Return to page top