Home

Shin x blog

WordPressへ移行

この記事の所要時間: 035

blogをSimple PHP Blogからwordpressへ移行しました。

とりあえずblogを、と思いDBも不要なSimple PHP Blogにしていたのですが、実際に使い出すと機能的に不足している点が幾つかありました。
# blogが初めての人には設置もしやすく取っかかりには良いツールだと思います。

blogを投稿していく流れは感覚的に掴めたのでより高機能なWordPressへ移行する事にしました。

WordPressはまだ触り出したところですが、管理画面も日本語化されているので特に問題なく使えています。これからちょこちょこいじっていくつもりです。

盆休み

この記事の所要時間: 053

盆休みに妻の実家に帰省してきた。
いわゆる田舎なので実家の中では携帯は通じず、インターネットインフラが無いので
久しぶりにインターネットに全く触れない日々を過ごした。

普段は暇があればついつい携帯を触ってしまうのだが
こういう環境になると携帯が全く気にならなくなり、いつのまにか電源が切れていた事も気がつかなかった。
メールやRSSの未読が貯まっているなあ、と思いつつも
実家での日々では特に困る事は無かった。

Web2.0だのPHPだの言ってる日々だが、全く無縁な世界を数日経験して
それらはまだ一部の世界のような気がした。
逆を考えれば今自分が知っている世界も小さなもので
知らない世界にはもっと面白い事があって、それらが事業となっている事もあるんだなと。

やはり今自分がやりたい事をしっかりやっていこうと
澄み渡る夏の青空を眺めて思うのでありました。

まあ感慨も束の間、帰りの高速で携帯が通じた途端に
元のペースに戻ってしまったけど。。。

CakePHP – validate

この記事の所要時間: 141

CakePHPでのvalidateネタ。

validateは入力チェック正規表現をmodelの$validateに配列で設定しておくだけなんだけど、メールアドレスの重複チェックなんかはそのままではどうにもできない。

modelの$validateに正規表現ではなく、(入力チェック)メソッド名を入れとけばそれを呼んでくれたりするのかな、と思ったがそれはナシ。
マニュアルではcontrollerで重複チェックを行う方法が載っているだが、正規表現でのチェックはmodelにあるので一緒にmodel内に書きたいところ。

で、考えたのが以下の3つの方法。

  1. model#beforeValidate()に書く
    正規表現での入力チェックより先に呼ばれてしまう。
    一意チェックなんかではDBアクセスが発生するから正規表現でのチェックを通過したものだけ処理を行う方が良い。
  2. model#validates()に書く
    parent::validates()を呼んでから、独自入力チェックを書く。
    validates()内に入力チェックが集約されるからよさげ。
    ただparent::validate()を忘れると正規表現での入力チェックが呼ばれなくなる。
  3. model#beforeSave()に書く
    validates()の後に呼ばれるので正規表現での入力チェックを通過した際のみ呼ばれる。

どの方法でもいちおう動作はするが、1.はイマイチなんで、2.か3.のどちらか。
メソッドの意味的には2.が良いかな。

メモ:

入力エラー時に↓みたいにinvalidate()を呼ぶのだが、引数に注意。

$this->invalidate('username');

この値は単にviewでtagErrorMsg()を呼ぶときに使用するものなのでmodel(DB)のフィールド名(カラム名)と合わせる必要は無いんで。(ちょっとハマッた)

CakePHP

この記事の所要時間: 031

CakePHPイイ!!
PHPらしく(スクリプト言語らしく)柔軟なつくりになっていて面白い。
フレームワークにありがちな設定ファイル書きまくりとか無いしね。

RonRを筆頭に規則を決めておいてそのとおりに記述しておけば
あとはフレームワークが良きに計らってくれるのは良くできてるなあと思う。

今マニュアルをざっと見ていってるんだけど
仕組みが分かるとホント楽しい。
# 最近のフレームワークはチュートリアルとかドキュメントが充実してて
# これもスゴイと思う。

これ使って何作ろうかなー。

PHPフレームワーク

  • 2006-08-09 (水)
  • PHP
この記事の所要時間: 221

自社サービス構築に使うPHPフレームワークを探し中。

RonR登場以来、それの影響を受けたフレームワークが多いんだけど
実際に実務で採用されているフレームワークってあるんかな。
一時mojaviが話題になっていたが、最近あまり聞かないし。

周りでもPEAR・Smartyは使っている人がいるようだけど
公開されているフレームワークを使っている話は聞かない。

今のところ気になっているのは以下。

  • guesswork-classic[PHP4]
    国産の軽量フレームワーク。シンプルな作りになっているので理解しやすい。
    1アクションに対して1メソッドというのは直感的にも分かりやすいね。
    業務で使ってみたかったのだが残念ながら機会が無かった。
    現在開発が止まっている様子。
  • Ethna[PHP4]
    GREEで採用されているフレームワーク。
    やはり実際に公開サイトで稼働しているのは安心かな。
    国産フレームワークなので日本語の情報が多いのも有り難いし。
  • mojavi2[PHP4]/mojavi3[PHP5]
    一時もてはやされたPHPフレームワークの雄。
    これの登場を機にPHPにフレームワークを、という気運が高まってきた。
    少し試してみたがJava系のフレームワークの影響を強く受けているので
    PHPで使うには重い気がする。
    雑誌なんかでは実際に業務で採用されている記事を見たので
    業務システムでの事例はいくつかあるようだ。
    現在は開発が止まってしまったようだ。
    (mojaviから分離したagaviが後継になっているみたい)
  • symfony[PHP5]
    RonRの影響を受けたフレームワーク。RonRをそのままPHPに移植したイメージ。
    ざっと試した感じでコードジェネレータとかは面白いんだけど
    設定ファイル(yaml)がちとうっとおしいかも。
    開発が活発に行われており今後が楽しみ。
  • CakePHP[PHP4/5]
    こちらもRonRの影響を受けたフレームワーク。PHP4/5のどちらでも動作する。
    簡単なCRUD画面を作るにあたってyamlやxmlといった設定ファイルは不要だ。
    今調査中なのだが、さくっと作るには良い感じ。
    こちらも開発が活発に行われているようだ。
  • ZendFrameword[PHP5]
    PHPの開発元Zendが作成しているフレームワーク。
    まだ試していないが、Zend公式フレームワークなだけに今後の本命になるかも。

Web系のサービスでは同じような処理が多いから
フレームワーク上での実装パターンを作っていきたいな。

# ちなみに1×1のお客様向けシステムではこれまでの資産の兼ね合いもあって
# 独自フレームワークを使ってます。

PHP4.4.3リリース

  • 2006-08-04 (金)
  • PHP
この記事の所要時間: 234

PHP4.4.3がリリースされてますね。
例によってバグフィックス版のようです。

勉強がてらにChangeLogを翻訳してみました。
# 誤訳・間違いがあったら教えて下さい。

    PHP4.4.3 ChangeLog

  • *cURLエクステンション:open_basedir/safe_modeチェックにコントロールコードチェックを追加
  • *wordwrap():オーバーフローチェック追加
  • *session:セッション名に特殊キャラクターチェック追加
  • *error_log():safe_modeチェックを改良
  • *PCRE:バージョン6.6へアップグレード
  • *tempnam():極端に長いパス名のハンドリングを修正
  • *phpinfo():長い入力のXSS修正
  • *create_named_pipe():バッファオーバーフロー修正(Win32用libmysql.c)
  • *#37720のバグ修正 (DirectoryMatch / VirtualHost使用時にmerge_php_configの値がごちゃごちゃになる)
  • *#37569のバグ修正 (WDDXで上位キャラクターが間違ってエンコードされる)
  • *#37510のバグ修正 (session_regenerate_id()後のsession_id()で変更後のセッションID取得に失敗する)
  • *#37360のバグ修正 (壊れたGIFでメモリーエラーになる)
  • *#37348のバグ修正 (PEARインストールでopenbase_dir()が無視される)
  • *#37346のバグ修正 (無効なカラーマップフォーマットを使うとクラッシュする。)
  • *#37162のバグ修正 (WDDXを共有エクステンションでビルドできない)
  • *#37046のバグ修正 (foreachにstatic scopeの入れ子の配列を渡すと壊れる)
  • *#37045のバグ修正 (HTTPリダイレクトの特殊キャラクターチェックを修正)
  • *#36857のバグ修正 (HTTPストリームラッパーにPartial Contentを追加)
  • *#36776のバグ修正 (node_list_wrapper_dtor segfault)
  • *#36459のバグ修正 (\r\nが含まれたリンクに不正なPHPSESSIDを追加していた)
  • *#36458のバグ修正 (sleep()が負の値を受け入れていた)
  • *#36242のバグ修正 (stream_select()内でメモリ破壊が可能だった)
  • *#36223のバグ修正 (curlがopen_basedirをすり抜けていた)
  • *#36205のバグ修正 (2重クッキーでメモリーリークが発生していた)
  • *#36148のバグ修正 (unpack(“H*hex”, $data)が余計なキャラクターを文字列の最後に付加していた)
  • *#36017のバグ修正 (fopen()でURLを開くとPHPがクラッシュする)

バイク通勤

この記事の所要時間: 024

雨が降ったり、打ち合わせで出向かないといけない日以外はバイク通勤なのだがここ最近は暑くてたまらない。

フルフェイスにメッシュジャケット、革グローブだといくら風を切って走っても汗だくだ。
(風と言っても熱風なんで余計暑いのだが)

半ヘル・半袖で乗ってるのが多い中、同じような装備をして走ってる人を見るとなんだか嬉しくなる今日この頃。

まあ暑くても楽しいんで乗るけどね。
(寒いよりマシだし)

ming インストール2

  • 2006-08-03 (木)
  • PHP
この記事の所要時間: 045

mingインストール続き。

その後調べてみると最近のPHPならばming用コードはPHPのソースに含まれている事が分かった。
なのでmingをインストールしておき、PHPインストール時の./configureに–with-mingを付けとけば良い模様。

が、また問題。
PHP4.4.2で–with-ming付きでmakeするとコンパイルエラーが発生してしまった。
(CentOS 4.3 / gcc 3.4.5 20051201 (Red Hat 3.4.5-2))
PHP Bugs#37472でも似たような例が載ってた。
しょうがないのでPHP5.1.4でインストールしたところ無事インストール完了。

次インストールする時は
・mingインストール
・PHP5.1.4を–with-mingでインストール
で良いかと。

ming インストール

  • 2006-08-01 (火)
  • PHP
この記事の所要時間: 012

PHP4系でmingを使う際にはまったのでメモ。

mingのソースをtarballから解凍してもphp_ext/は見当たらない。
実はming-phpという別のtarballが必要なのでご注意を。

聞いて話す専門用語

この記事の所要時間: 058

日頃一人で仕事をしているせいか専門用語を口に出す機会が少ない。

開発をする分には目で見て頭で理解していれば良いけど
打ち合わせの時にその情報について話そうとすると上手く出てこない事がある。

良く困るのが発音。
ping -> ピン?ピング?
pear -> ピア?ペア?
ajax -> エイジャックス?アジャックス?

あとイントネーションや用語を使う場面が適切かどうか迷ったり。

そこで最近利用してるのがITmediaのPodcast
ITmediaの記事をざっくりと紹介してくれるので内容自体も参考になるし
専門用語・技術用語を話してくれるので発音・イントーネーション・使いどころもバッチリ。
=> ITILをアイティルと読むのは知らなかった。(頭の中でアイ・ティ・アイ・エルで読んでた)

やはりただ読むより人から聞く方が頭に残りやすい感じがするし。

できたらWeb開発関連(Web2.0とかajaxとかPHPとかRonRとか)の話題でこういったものがあれば良いんだけど。

作ってみるか?w

Home

検索
フィード
メタ情報

Return to page top