Home > Archives > 2005年10月

2005年10月

WordPress

  • 2005-10-31 (月)

最近ブログツールとしてMovableTypeの対抗馬としてWordPressが取り上げられる場面をちらほら聞きます。前から気にはなっていたのだが、この度社内のあるドキュメントを整理する目的で利用できそうなCMSはないかと探している際に、せっかくなのでWordPressを試してみよう、となりました。

ドキュメント整理の要件については、MovableTypeで満たせそうなのであったが、1つだけ、かつ重要な点で代替となるツールを探す必要性が出てきました。その1つの点というのは、投稿済みのエントリーを編集する際に、編集画面を開くと、投稿日の欄が前回保存した日時ではなく、現在の日時に自動的に更新して欲しい、というものです。入力欄にカーソルを持っていって手入力すれば更新できるのですが、やはりここは自動的に更新して欲しいです。ブログツールとしての利用ではないので、少し特殊な要件です。

WordPressを試したところ、この部分に関してはMovableTypeとほぼ同様でした。しかし、WordPressはPHPで開発されていることもあり、私自身PHPは使い慣れている言語なので、少しばかりHackすれば現在日時に自動更新できることがわかりました。PerlよりPHPの方が慣れているということだけかもしれませんが。。。(ということで、Perlも勉強し始めようかなと思い始めているところです)

MovableTypeにしりWordPressにしろCMSという側面を最大限に生かすと、いろんな活用方法が考えられますね。この手のツールを何か自分でも作ってみようかな。。。それとも、誰かに作ってもらおうかな

SimpleTest for PHP

  • 2005-10-24 (月)

最近PHP5を使っているせいで、ユニットテストツールとしてPHPUnit2をいじっていたのだが、今日届いたWeb+DBの記事を見てSimpleTestというユニットテストツールがあることを知った。

このSimpleTestは何でも単純なユニットテストだけではなくて、WebTestCase クラスを使用すれば、HTTPのレスポンスもテストできるらしい。HTTPのレスポンスなので、使われるかどうかは別にして、PHP以外の言語で開発したもので一応使用できるとのこと。

ダウンロードしようと思って、SourceForgeに行くと、ecplise plugin というのも発見。つまり、Eclipse からも使えるということだろう。TruStudio との相性がいいのかな。

  • Comments (Close): 0
  • TrackBack (Close): 0

ActiveRecord

  • 2005-10-14 (金)

PHP5でPDOに慣れようとしていることに関しては、前回書きましたが、現在開発しているプロジェクトのためにと、PDOを使ったPHP版ActiveRecordクラスを作成しています。ActiveRecord といえば Ruby on Rails で有名になりましたが、よくよく調べていくと、自分がよく使っている言語でも似たようなクラスが欲しくなりました。

ある程度できれば何らかの形で公開したいと思います。以下のような感じで利用できるようにする予定です。

<?php
class User extends ActiveRecord
{
}

// レコードの作成
$user = new User();
$user->name = 'hoge';
$user->mail = 'hoge@example.com';
$user->save();
$user_id = $user->id;

// レコードの取得
$user = new User( $user_id );
echo $user->name;   // 'hoge'

// レコードの更新
$user = new User( $user_id );
$user->name = 'hoge';
$user->mail = 'hoge@example.com';
$user->save();

// レコードの削除
$user = new User( $user_id );
$user->delete();

// レコード一覧の取得
$user_factory = new User();
$user_list = $user_factory->find_all();
foreach( $user_list as $user_id=>$user )
{
    echo $user->name;
}

//
// 例:User と関連した Mail の一覧の取得
//

class Mail extends ActiveRecord
{
}

$user = new User( $user_id );

// user_id={$user_id} となっている Mail の一覧
$mail_list = $user->mail->find_all();
foreach( $mail_list as $mail_id=>$mail )
{
    echo $mail->subject;
}
?>
  • Comments (Close): 0
  • TrackBack (Close): 0

PDO (PHP Data Objects) の使用感

  • 2005-10-04 (火)

先日、PHP5.1のRC1がリリースされたが、PHP5.1からはデフォルトでネイティブのデータベース抽象クラスであるPDO(PHP Data Objects)が使用できるようになる。PHP5.0.x でもwww.php.netのサイトからPECLのモジュールを取ってきてインストールすれば使える。ということで早めに慣れようと自分のマシンにインストールしてみて使ってみた。

今までMySQLを使用することが多かったため、自然とMySQL用の関数を使用することが多かったが、MySQL用の関数とPDOの使い勝手も多少異なるみたいだ。まあ、PDOはクラスなので当然であるが。PDOではMySQL用の関数と違って、PDO::prepare() でSQLを一度準備して、PDOStatement クラスのインスタンスを作成し、その後 PDOStatement::execute() を呼び出してSQL文を実行するプロセスを取る。

もちろん、PDO::query() で一気にSQL文を実行することも可能だが、文字列のquoteの関係上、prepare()後、execute()するのがお勧めらしい。つまり、query() を使用するとSQLインジェクションに注意しないといけない。それに対して、prepare()後、exeucte()するのであればSQLインジェクション対策を自動的にしてくれる。そのかわりスクリプトの行数が増えてしまう。といった感じであろうか。

確かに、今まで mysql_real_escape_string() をよく呼び出していたものだが、多少行数が増えても安全な方がよいかも。

MT3.2へバージョンアップ

  • 2005-10-03 (月)

本ブログの MovableType3.2 へのアップデートが完了しました。手動で施していたコメントスパム対策のコードは「メイン・メニュー > hata's LABlog > テンプレート」の「システム」タブを選んで、一覧されているテンプレートを全てチェックして、「その他の操作」から「テンプレートを更新する」を実行すると、カスタマイズしていた分がリセットされたみたいなので、うまくプラグインのコメントスパム対策に移行できたと思います。しばらく、これで様子を診てみよう。

3.2にアップして気づいた点としては、再構築の速度が速くなったような気がする。

  • Comments (Close): 0
  • TrackBack (Close): 0

Home > Archives > 2005年10月

Search
Feeds

Page Top