PEAR :: PEPr :: Details :: RSSBuilder

This is an RSS (Reach Site Summary) PHP Class, which make use of PHP DOM extension to produce valid RSS Feeds in one of the most common RSS formats such as ‘RSS 0.91’, ‘RSS 0.92’, ‘RSS 1.0’, ‘RSS 2.0’, ‘Atom’, ‘JavaScript’. The output maybe cached in a file. For more info take a look at ’./RSSBuilder/example.php’.

正しいRSSを作ってくれそうなRSSBuilderがPEAR proposalに。

書く方は普通に書いてもそんなに大変じゃないですが、コレ使ったら気持ちよさそう。

PEAR :: Package :: XML_FastCreate

Description

- Easy way to make valid XML :
$x->div(
$x->h1(””Example”“),
$x->p(””Hello”“),
$x->p(array(‘class’=>‘example’), ””World !”“)
)

おれの求めてたのはコレか?と思わせるXML_FastCreate 1.0.0がリリース。

XML_Treeとコレで4系でも扱いが簡単になるのかも。今度使ってみたい。

ブタさんとこのサンプルにあったようにMojavi + Smartyでcompileディレクトリを一個にしてると別モジュールの同名テンプレートを読み込んだ時にコンパイルされたファイル名がカブって動かない。(index.htmlとか)
Smartyのcompile_idにモジュール名を設定するさり気無い気配りを。

SmartyFilter.class.php:

<?php
require_once(RENDERER_DIR . "SmartyRenderer.class.php");

class SmartyFilter extends Filter {
    function execute (&$filterChain, &$controller, &$request, &$user) {
        // see if renderer is already loaded
        $loaded =& $request->getAttribute("SmartyRenderer");

        if ($loaded == NULL) {
            // smarty init params
            $params =  array(
                "cache_dir"      => SMARTY_CACHE_DIR,
                "caching"        => SMARTY_CACHING,
                "force_compile"  => SMARTY_FORCE_COMPILE,
                "compile_dir"    => SMARTY_COMPILE_DIR,
                "config_dir"     => $controller->getModuleDir()."config/",
                "app_name"       => $controller->getCurrentModule(),
                "debug_tpl"      => SMARTY_DEBUG_TPL,
                "debugging_ctrl" => SMARTY_DEBUGGING_CTRL,
                "debugging"      => SMARTY_DEBUGGING,
                <strong>"compile_id"     =&gt; $controller-&gt;currentModule</strong>
            );

            $renderer =& new SmartyRenderer($controller, $request, $user);
            $smarty = & $renderer-&gt;getEngine();

            foreach ( $params AS $key =&gt; $value ) {
                $smarty-&gt;$key = $value;
            }

            // set the renderer as a request attribute so we can retrieve it
            $request-&gt;setAttributeByRef("SmartyRenderer", $renderer);

            // execute chain
            $filterChain-&gt;execute($controller, $request, $user);

            // remove renderer
            $request-&gt;removeAttribute("SmartyRenderer");

        } else {
            $filterChain-&gt;execute($controller, $request, $user);
        }
    }
}
?&gt;

ref: Mojavi HTML_QuickForm Smarty + DB_DataObjectサンプル

PEAR :: Package :: File :: 1.2.0

Changelog:

* Fixed package.xml for PEAR 1.4 (dufuz)
added FILE_SORT_RANDOM mode (mike)
added File_Util::switchExt() (mike)

ファイルやディレクトリの読み書きなどが簡単にできるFileの1.2.0がリリース。

ChangelogにあるFILE_SORT_RANDOM modeを試してみました。

&lt;?php
require_once("File/Util.php");
foreach (File_Util::listDir("foo", FILE_LIST_FILES | FILE_LIST_DIRS, <strong>FILE_SORT_RANDOM</strong>) as $file) {
    echo $file-&gt;name."\n";
}
?&gt;

結果:

&gt;php FileListing.php
d.txt
b.txt
a.txt
c.txt

なるほど、ちょっとだけ嬉しい。

よくきたblog

xxxio : $_SESSION[‘foo’]の、fooの所に使える文字って、きまりありましたっけ?
xxxio : うーん。””|”“が入ってると上手く動かない気がする
xxxio : php5.0.3 / FC2 なんですけど、そもそも /tmp/sess_XXXXX の中って、
xxxio : セパレータとして ””|”” を使ってるんですよ

セッションの話。
そうそう、セパレータに””|”“を使ってるんですよね!

セッション変数名|中身をserializeしたやつ;セッション変数名|中身をserializeしたやつ;

ってなってるんですよね。これ簡単なパースのやり方無いかな。
このクラスができたら楽しいけどsafe modeじゃない共有レンタルサーバとかすっごい危険。

ref: PHPのセッション自力復元

PEAR :: PEPr :: Details :: Auth_TypeKey

The Auth_TypeKey package provides verification method using TypeKey Authentication. TypeKey is one of single sign-in service for weblog comments and others provided by Six Apart.

Blogネ申平田さんが以前公開されたPHPでTypeKeyを扱うクラスAuth-TypeKeyがPEARのProposaleに入っています。
認証で何気にTypeKey使ってたらおしゃれかもしれません。

PEAR好き野郎なのでPEAR Watchなどというカテゴリを作って見ました。

既存の便利クラスの紹介やバージョンアップ情報、リリース前のパッケージ、メンテナのなり方(おれが知りたいのでこれから勉強)などを書いていく予定です。

[を] 「ピーターの法則」のまとめ資料

平林氏による「ピーターの法則」のまとめ資料。スライド8枚。PDFもあり。 素晴らしい!

こういう要点シリーズ沢山見たい。
成果を出すと昇進してって最終的に成果が出せないポジション(無能レベル)で安定するってことかな?
何が利益を生む作業なのか(=待遇)がわからない。自分のSIerで考えると管理の方がホントにお金を生むのかどうか。

ethna_seminer.jpg

オープンソースカンファレンス2005行って来ました。

行ったのはPHPフレームワーク -Ethna-と懇親会。 Ethna(えすな)ではマシントラブルでデモが行えずスライドのみになりましたが、フレームワーク全般の話などためになりました。
Mapleのkunitさんもこられていて、DIContainer+AOPへの動きなど超気になったんですが、「おれみたいなもんが・・・」と話かけられませんでした。

懇親会でためになったのはPHP以外の人がPHPをどう思ってるかについて。

・ダサい
・Apacheモジュールで動く手っ取り早いスクリプト言語が他に無いから広まってるだけ
・PHP5の方向性はがっかり
・Zendの都合に左右されてる
・仕事の匂いがする
・Javaの匂いがする

などなど。自分自身でも”“なんでPHPが好きなのか”“きっぱり説明できないので情けない感じ・・・。
某出版社の方も「PHPの本は提案しずらい」とおっしゃっていました。PHP5の本が全然売れてないとか。そんな状況でPEAR本書きたいとか言っときました。(PEAR好き)

japan.linux.com | 新たな詐欺の手口、ファーミング

そのコンピュータ上のオペレーティング・システムが使うホストファイル(hostsファイルなど)を探し出し、そこに銀行やクレジットカード会社の正規サイトを模して作られた偽装WebサイトのIPアドレスを設定する。

新手の詐欺、ファーミング。
hostsにフィッシングサイトのIP書いちゃうのかよ!単純ながらこれは怖い・・・。