Zend Framework Preview 0.1.1

興味があるものの発表以降どうなっていたか分からないHome - Zend Framework
Previewバージョンなもののダウンロードできたので落としてみることに。

時間があんまりないので落としただけでサンプルさえまともに実行できていませんが、
説明を見ると

辺りが面白そうかなぁと。

特にZend_Search_LuceneJavaで書かれたLuceneを使うみたいで全てPHP内で収めることに拘ってないのかな。

文字型(ctype)関数の空文字の扱い

作業中にはまりかけたのでメモ。


事の発端ははるか前に作ったものの修正を行い、
確認時に修正箇所とは全然関係ない郵便番号チェックをしている部分が
文字種エラーになる環境とならない環境がある状態に。

エラー判定している箇所をみると未入力の時のctype_digit()の挙動が違っている感じ。

続きを読む

sessionのよく誤解してしまいそうな点

PHPの標準機能の中で1,2を争うくらい*1よく使うセッション機能。

ただ、どのような思惑かはさておき現在実装されているものに関して注意しておかなければいけない点がいくつかあるのでまとめ。

セッションについてのマニュアルはPHP: セッション関数 - Manual

  1. セッションの固定化(Session Fixation)
  2. session.save_pathの設定によってはガーベッジコレクションが行われないことがある。
  3. session.gc_probabilityとsession.gc_divisorの値によってはsession.gc_maxlifetimeで指定した以上にセッションが残る可能性がある

*1:他は何よ?といわれても答えられない;;´ー`

続きを読む

処理をした後はリダイレクトしよう

はるか昔、Perl(CGI)のカスタマイズをやっていて楽しんでいた頃からおぼろげながら徹底し、
社内で改めて教えてもらってから徹底している内容についてふれられていたのでメモメモ。


今運用しているMojaviベースのPHPフレームワークでも
画面表示アクションと処理アクションはきっちり分け、処理が終わったらリダイレクトする形で徹底中。


再読み込みでPOST内容が再度送られる点についてはワンタイムチケットを発行すれば
防ぐことは出来るけど、それを実装するよりは表示と処理を分けて飛ばしちゃった方が楽々。

等幅フォントかつ折り返し有(結果)

結局以下のように対応

  • pre指定はやめ
  • 表示する内容を表示前に変換
    • 「 」(半角スペース)を「 」に
    • 改行を「<br>」に
  • 全体をスタイル「font-family: monospace;」で囲む

うーん、イマイチな対応だ、、

続きを読む

等幅フォントかつ折り返し有

テキストエリアに表示された内容をそのまま表示*1しようとする時に問題が発生。

安易にpreタグを使用すると今度は入力が優先されて1行が長いと横スクロールが発生し見難い状態に。(ノ∀`)タハー

いい方法がないかなぁと思い探してみたところ

同じような事を考えてる人は既に居ました。

*1:特に半角スペース

続きを読む