PHPの最近のブログ記事

symfony the world

昨日、ついにsymfonyの1.4がリリースされましたね。1.0同様、3年間の Long Term Support ということで、今後しばらくは1.4で落ち着くのかなぁ。。。と感じてるところです。

さて、symfonyでフォーム(sfForm)を作っていて常々感じるのは、POSTされたデータをそのままバリデートするのではなく、せめてmb_convert_kanaでフィルタ(正規化)した後にバリデートしたい、ということです。PEARのHTML_QuickFormでいうところのapplyFilter()の機能ですね。

ただしsfFormには上記のようなフィルタ機能がありません。そのため、私は既存のsfValidatorStringを継承して以下のカスタムバリデータを使ってます。symfony 1.2 で動作確認していますが、コードを見る限りでは1.3, 1.4でも問題なく使えるはずです。

php5.2.8-warning.png

PHP5.2.8 にバージョンアップしたら、 Mojavi3 で警告が出るようになりました。

Warning: fclose() [function.fclose]: 37 is not a valid stream resource in \path\to\mojavi\config\ConfigCache.class.php on line 408

今回はこれを抑制する方法。

そろそろ本格的に symfony を...と勉強を始めて2日目。情報を漁っていくうちにメール周りがだいぶ面倒くさいことを知ったので、勉強がてらおやぢ組さんの jpMailPlugin に手を入れてみました。

mantis1.0.7から送られてくるメールが一部文字化けしてたり文字コードがUTF-8で端末によっては読めなかったりしてイヤだったので対策した。動作環境はPHP5.1.6 / UTF-8で、core/email_api.phpを以下のように無理やり修正。

$ diff core/email_api.bak.php core/email_api.php
678,679c678,680
<               $mail->CharSet = lang_get( 'charset', lang_get_current() );
<               $mail->Host     = config_get( 'smtp_host' );
---
>         $mail->CharSet  = 'ISO-2022-JP';
>         $mail->Encoding = '7bit';
>         $mail->Host     = config_get( 'smtp_host' );
730a732,735
>         mb_language('Japanese');
>         $t_subject = mb_encode_mimeheader( $t_subject, 'ISO-2022-JP', 'B', "\r\n", strlen('Subject: '));
>         $t_message = mb_convert_encoding( $t_message, 'ISO-2022-JP' );
>

mb_encode_mimeheader()の第5引数はPHP5からしか使えないとマニュアルに書いてあるけどホントか?PHP4.4.2からなら使えそうだけど...。

参考:

国際結婚を題材としたほのぼのマンガ「ダーリンは外国人」のダーリン(トニー・ラズロ氏)が主催するNGO「一緒企画」のサイトが、高機能CMS「drupal」でリニューアルされつつあるようだ。

彼の個人サイト(http://www.talking.to/tony/)は別のCMS「Xaraya」で構築されてることからも、各種CMSに明るい人なんだろうなあと推測。

ラズロ氏のように多言語を自在に扱えたら、俺ももっと人の役に立てるんだろうなァ…(反実仮想)

本日、とってもステキなサイトがオープンしましたよ!

Drupal-jBox.net オープンのお知らせ | Drupal-jBox.net

Drupal-jBox.net オープンのお知らせ
投稿者:info 日付:水, 2006-03-01 00:00

2006/03/01より、Drupal国内ユーザのための情報交換/集約サイト「Drupal-jBox.net」をオープンしました。

当サイトは、国内に散在するDrupalの日本語翻訳や利用ノウハウを効率的に利用できるよう、集約・整理して提供することを目的としたサイトで、国内Drupalユーザの有志により立ち上げられました。

Drupalを調べる上でお世話になったサイト管理者の方が多数いらっしゃるみたいなので、国内でメジャーなCMSになるための大きな前進となるのではないでしょうか?さあ隠れDrupalユーザは早速登録だ!

ああ夢が広がりんぐ…

PHP Skills Test で12問中11問正解だったのは、よかったとしてもだな。

CMS大好きっ子な僕としては、各種CMSの普及とウェブの重要度とが類似曲線を描いていくと見込んでいたりする。で、今はtailupと二人で洋モノCMSであるところのdrupalをコッソリいじりはじめているのだけれど、これやばすぎるよ。いじって「楽しい!」と思ったCMSは初めてだ。

PHP-MLでも議論されていたけど、バウンスメール処理をPHPでやる場合、どうやったらできるのか考えてみた。

考えてみたらもそっといじれそうだったので、またいじってみました。前回以上にお気軽かつ確実な二重送信・多重送信の防止が期待できそうなヨカーン。

セッションを使ったPHP用の簡単なチケット(トークン?)管理クラスを作ってみました

フナエさんから「最近更新してないねー。忙しい?」といわれたので更新します。

たぶん、国内でも2人くらいしか欲してなさそうなSmarty Tips。

ぢぢらぶろぐさんとこで紹介されていた“音相”解析エンジンOnsonic体験版


新しい一人ジェンガの遊び方を知ってしまったくらいにヤバい。


ということで、今回はぢぢらぶろぐさんの遊び方インスパイアされつつ、音相でPHPフレームワークを選んでみようと思います。

  1. eclipseの[設定→一般→エディター]から「テキスト・ファイル・エンコード」を「EUC-JP」に設定
  2. eclipse上で「~」(全角チルダ)を含むテキストファイルを保存
  3. 「~」の箇所だけが文字化け

という現象に困っています。

smartyカスタム関数のhtml_optionsを使うと、htmlのドロップダウンリスト(プルダウンメニュー)を作成することができる。じゃあこれを拡張して、リストボックス表示や複数選択を可能にするにはどうするか。

ここ1ヶ月、外界との交信を絶って没頭してたこと。

Eclipse+phpEclipse+各種プラグインでのPHP開発環境構築
EclipseをCVSクライアントとして使い倒す
サーバの設定ファイルをまとめてCVSで管理する
FreeBSDのCVSを最新版ソースでビルド(RapidSiteのVPS上にて動作OK)
Eclipse+PHP+DBGでPHPデバッグ
puttyごった煮版でiniファイルに設定保存させる
●●●可能な●●●●●●●に上記全てを入れて開発環境を●●●●→面白い試みだったが調整中

Eclipse自体が初めてだったり途中でEclipseのバージョンが上がったり慣れない作業が多かったりで、結局1ヶ月近く環境構築に勤しんでしまった。おかげでEmEditor+WinCVSで開発してた以前よりは格段に効率がよくなった。上記は是非まとめて書きたいのだけどぉぉぉおおあああああああいうえお

先日までブログツールであるところのNucleusをいじってましたが、イロイロあって昨日からWordPressをいじり始めています。まだ数時間しかいじってないですが、率直な感想としては

すごくいい。

tDiaryMovable TypeNucleusWordPressと使ってみましたが、総合的にランク分けするとこんな感じ。

Movable Type(神)

WordPress(スーパーマン)

tDiary / Nucleus(コボちゃん)

だったらMovable Typeだけ使ってりゃいーじゃんてことにもなりますが、WordPressはいい意味でクセ(特徴)が強く、使っていて楽しいツールになりそうです。Movable Typeと比較してみると...

先週土曜日、PHPのテンプレートシステムSmartyの勉強会で講師をしてきました。どうもお疲れ様でした。


皆様、ピザ3枚とも美味しゅうございました。発泡酒、ビールもおいしゅうございました。

資料4枚目くらいで笑いがとれたのは美味しゅうございました。PCが遅くてキャッシュのベンチマーク結果がすごいことになったのも美味しゅうございました。

でも30分以上迷って遅れたのは美味しゅうございませんでした。ボウズが被りまくってたのも美味しゅうございませんでした。男性率100%だったのはとても美味しゅうございませんでした。長尾様、何度もナビ代わりになって戴き有難うございました。


ということで、当日の発表資料とかを放流します。家庭円満によく効きます。

(08/23 修正)
全部zipで固めないでpdfだけは別に分けました。単なる検索エンジン対策です。

社内の情報共有を目的として、PHPベースでフリーのグループウェアを試しはじめた。最低限抑えておきたいのは、日本語化されていることとカレンダー機能がちゃんと動作する&使いやすいこと。

手始めにphpGroupWareをインストールしてみたけれど、管理しにくい、使いにくい、直感的にわかりづらい、ドキュメントが少ない、バグが多いと、全体的にいい印象を受けなかった。決定的だったのが、admin管理機能(環境設定機能)を間違って全ユーザから削除してしまい、一時管理不可能な状態になってしまったことだ。ウワァァァァン!!!!!

ひょんなことからWindows XPにLAMP環境ならぬWAMP環境を入れなきゃいけなくなったので、PHP4.4.0のインストールメモを残しておくことにする。実はPHPよりも先にインストールしたMySQL4.0.25の方で大きく躓いていたのだけど…(随分前にインストールした環境に上書きインストールしてしまったみたいで、手動でサービス削除&再登録しなきゃいけなかった)。

ちなみにMySQLを再度インストールするにはコマンドラインから

# sc.exe delete mysql

でサービスを削除し、

# /path/to/mysqld.exe --install

でサービスを再登録しないといけなかった。以前のインストールパスと異なる場所へインストールした場合は、上記の設定をしないと、いくらWinMySQLAdmin.exeから起動しようとしても失敗してしまうみたいだ。同じインストールパスの場合はどうなのかはわからんけれど。

セッションについて書いてみたらどうでもいいネタばかりになっちゃったけど、まあいいや。誰かのお役に立てれば。

セッションは、基本的に

session.gc_maxlifetime
session.gc_probability
session.gc_divisor

の3つをこねくりまわせば有効期限を制御することができる。この中で一番大切なのはsession.gc_maxlifetimeで、ここにセッションの有効期限を秒数で設定すればいい。

このサイトについて

自分用リンク

Powered by Movable Type 4.22-ja

PR

このアーカイブについて

このページには、過去に書かれたブログ記事のうちPHPカテゴリに属しているものが含まれています。

前のカテゴリはLinuxサーバです。

次のカテゴリはずんこ語録です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アイテム

  • swfobject.png
  • symfony.png
  • doclean.png
  • clean.png
  • twitterui.png
  • php5.2.8-warning.png
  • pagesaver.png
  • analytics.png
  • Munsell Hue Test.png
  • Munsell Hue Test0.png