Monthly Archives: 3月 2008 - Page 2

Zend Framework 1.5リリース

PHP開発基盤「Zend Framework 1.5」が公開,GoogleやYouTubeのAPIに対応:ITpro

お、きましたね。Zend Framework 1.5です。次に何か作るときは使ってみよう。
配布サイトもリニューアルし見た目が2.0な感じに。そして日本語ドキュメントがバグで見れないですw
日本語ドキュメントへのパスがおかしいみたいなので、

http://framework.zend.com/manual//zend.controller.html

jaをいつもの場所に足してあげましょう。

http://framework.zend.com/manual/ja/zend.controller.html

とりあえずはコレで確認を!

ControllerまわりのcamelCasedに変更があったようですので

これは、ViewRenderer がビュースクリプトを解決する際に問題を引き起こします。 ドキュメントに記載されている正式な方法は、 単語の区切りをすべてダッシュに変換して単語は小文字にするというものです。 こうすればアクションとビュースクリプトの関連が明確になり、 小文字への正規化でスクリプトが見つかることが確実となります。 しかし、アクション ‘camelCased’ がコールされて解決された場合は、 単語の区切りはもう存在しません。そして ViewRenderer は ‘camel-cased.phtml’ ではない別のファイル — ‘camelcased.phtml’ を探してしまうのです。

該当するスクリプトを使用する場合は気をつけてください。

count関数の第2引数

count関数に第2引数があることを今更知った [PHP, 開発日記] – Programming Magic

count関数の第2引数$modeにCOUNT_RECURSIVE(または 1)をセットした場合、配列を再帰的にカウントする。

おっと、私も知らなかったです。しかし記事中でも言及されているように、ちょっと使い道が難しい感じはします。とりあえず覚えておけば、いつか使う日がくるかな。。

PHPのロギングいろいろ

ウノウラボ Unoh Labs: PHPによるテキストファイルへのロギング

PHPによるロギングいろいろが紹介されています。最近はZend_Log一本な私ですが。普通にLog取ろうとするだけだと高機能すぎる気もしますが。

セッション使ってると戻るボタンで戻った時にフォームの内容が消えてしまう問題

戻るボタンで戻ったらフォームの内容が消えちゃうPHP (デザネスマガジン)

セッション使ってると戻るボタンで戻った時にフォームの内容が消えてしまう問題ですが、

session.cache_limiter という値に ’none’ を入れます。

htaccessで制御する場合は
php_value session.cache_limiter none
だね。

PHP内で制御する場合は
session_cache_limiter(‘none’);
だね。

noneをprivateにすると、一見うまくいったかに見えるが、今度はキャッシュが残りすぎちゃって、
ブラウザを閉じて開きなおしても前の情報が残ったままになっちゃう。(ただしIEだけ)

ちなみにデフォルトはnocach。キャッシュするなという設定ですな。

noneは余計な制御をせずに普通のページと同じように扱えっちゅうことですわ。

と、セッションのキャッシュ制御でよろしいようです。
時々忘れてて、大量に作ったフォームの内容が消えてしまうスクリプトになったりしてます。

Zend_GdataでYoutube

Zend_Gdata を触ってみた。 – Heavens hell

Zend_GdataでYoutubeの検索を作られています。まだ触ったことはありませんが、なるほど、簡単に作れそうですね。

運用後のエラーをどうするか

運用後のエラーをどうするか – より良い環境を求めて
標準のエラーハンドラを書き換えたり、など。set_error_handlerかー。使ってなかったです。参考になります。

subversionでアップデートできなくなったレア?状況

今、ローカルな開発環境としては、Windows上のcoLinuxでサーバを作り、そこにsambaを立ててWindows側からファイルをいじる、というシステムにしてるのですが、Windows上のTortioseSVN側からの操作がエラーが出て、一切updateなどのコマンドが使用できなくなったという・・そんな症状です。まあ、チェックアウトした作業コピーが壊れるのはよくあることなので、と思って半ば諦めていたのですが、ふと、そういえば変な失敗したな、と思い出したのが、作業コピーのルートでcoLinux側から

[code]
$ sudo svn update
[/code]

などとrootでupdateしていたのでした。(もちろんオペレーションミスです)
ですので結果として、.svnディレクトリなどのsubversionファイルがroot所有になってしまい、sambaからユーザ権限でアクセスできない → svnコマンド通らない、ということになっていたのでした。とほほ。

何か困ったことを解決したらWEBにアップして、どこかの誰かのお役に立てればとは思っていますが、こんなことで悩むのは私ぐらいですかね・・(^_^;)

Apache2、MaxClientsの設定とか。

itb-TECH 【 IT Boost – Apache2 httpd.conf – 】

MaxClientsなどの意味を復習を兼ねて。

# prefork MPM
# StartServers:Apache起動時サーバプロセス数
# MinSpareServers:スペアとして保持されているサーバプロセス数の最小数
# MaxSpareServers:スペアとして保持されているサーバプロセス数の最大数
# MaxClients:起動できるプロセスの最大数。ここで設定する数が処理できる
# 接続数の最大値になります。
# MaxRequestsPerChild:サーバプロセスが処理するリクエストの最大数。
# ここで指定した数の要求を処理すると、自動的にプロセスが消滅します。
# 0は無限に稼動しつづけます。

MaxClientsの値は、apacheの子プロセスの使用メモリなどを見て、よしなに設定してください。
ちなみにいくつかのサーバで子プロセスを見てみたら、1つ26MBぐらいでしたね。モジュールを削ればもっと軽くなりますかね。

ApacheをWorkerで動かす時、PHPに問題が?

ApacheをWorkerモードで動かすとPHPで色々問題が出てくる、という話は検索するとよく出てくる当然の話だったんですね。知らなかったです。

/etc/sysconfig/httpdのコメントにも

The default processing model (MPM) is the process-based
# ‘prefork’ model. A thread-based model, ‘worker’, is also
# available, but does not work with some modules (such as PHP).
# The service must be stopped before changing this variable.

PHPとか、Wokerでは動かないよ、とあります。
今回ApacheをWorkerで動かそうとしたのですが、大人しくpreforkで動かしておきます。

PHP文字出力のパフォーマンス比較

PHPで夢を見るBlog: PHP文字出力のパフォーマンス比較について

シングルクオート<ダブルクオート<ヒアドキュメント<printf関数

速度的には上記らしいです。大量のテキストを出す分にはヒアドキュメントは早いような気がしますが、そうでもないのですかね。パースするのに手間がかかるか。。