PHP 観測所日誌 – Ethna/Creole アプリケーション Delphinus が公開に

フィードアグリゲータとしても勿論期待ながら国産フレームワーク第二の刺客 Ethna によるお手本的な実装として非常に期待が高い。Creole 使っているのもいい。確か和製フレームワークでは初の国際デビューにもなると思うので英語圏に強い人には是非注目して欲しい。

実装はイケメン Ethna 使いとしてその方面の人にはもうたまらない halt さんによるもの。ソースコードは必読ですよ。

Ethna/Creole製Planetアプリキター! php-adminのMLの方で公開するという話を見て、「是非お願いします!」と投稿したものの、登録メアドと違うアドレスから出したので届かんかった。 ソースは勉強になること間違い無しですな!

Mojavi Project – Mojavi 4 Development Open!

Greetings everyone! Applications for Mojavi 4 development has been officially opened. The announcement has been made on the Mojavi Forum regarding positions that need to be filled and information on how to and who should apply!

Mojaviが動き出したようです。Mojavi 4の開発が始まったとか。まだ全然動かないらしいですが、何かTrucを使ったり、(Cakeでも使われてるやつ)開発メンバーを募集してたりして頼もし気な感じです。

そして英語力が無く、今頃知ったんですがこんな経緯があったらしいです。

【PHP】フレームワークについて語るスレ【総合】

73 :nobodyさん :2005/08/24(水) 00:06:21 ID:??? >>72 みたいだね。 要約しますた。

Seanのあとを引き継いだTylerがAgaviサイドにアプローチして、
MojaviとAgaviがマージできないか対話がもたれた。話し合いの結果、
1. フォークから時間が経ってないのでMojaviとAgaviはそんなに違わない。
2. TylerはMojavi開発を透明化して、コミュニティを発展させたい。
3. MojaviもAgaviも目指すものは同じ。
Agaviチームの意見としては
- Agaviは0.10.0をめざし、そのあと(もしくは同時に)Mojavi 4の開発にシフト。
- Mojaviは3.0.0-DEVの開発を中止、4に注力。
- Agaviの良い点 (phing integration, unit tests, public development model) をMojaviに持って行く。
- Mojavi4は完全な再設計になり、以前よりもリリースサイクルが短くなる。 

気になるのがMojavi 3.0.0-DEVが開発を中止ってとこ。 でもphing integration, unit testsってAgaviですでにできてたんですね。すごい良さそう。

よくきたblog – PHP 4.4.1RC1で知ったこと – Fixed bug #34565 (mb_send_mail does not fetch mail.force_extra_parameters). (Marco, Ilia)

とかあった. なんぢゃこりゃ? ってことでmb_send_mail()を追いかけたところ,どうやら第5引数をプログラム外から強制的に指定できるらしい.

mail.force_extra_parametersってうける。

BMediaNode: PHPUnit Pocket Guide

O’Reilly から PHPUnit のポケットガイド(薄?いやつ)が出るようです。

これは!買わなくては!

Phpunit Pocket Guide
  • Phpunit Pocket Guide
  • Oreilly & Associates Inc(2005-10)
  • (著)Sebastian Bergmann
  • 定価:¥ 1,159
  • 新品価格:¥ 1,044
  • ASIN:0596101031
PHPEclipse.net : New XDebug CVS modules

Christian Perkonig worked the last weeks on a new debugger for PHP. It uses the XDebug library.

The following CVS modules contain the XDebug plugins

PHPEclipseがCVS上ではXDebugに対応し始めてるらしいです。 dbgでも動作は十分ですけどXDebugの方がmagumaも採用してるしメジャーっぽい気がします。 何よりdbgは対応バージョンが4.3.10で眠っ(略)

怠惰なテンプレライブラリRaw Template Engineを更新しました。

Raw Template Engine 0.2

更新点:

  • プラグインによる拡張機能追加

大層な新機能ですが実際は・・・

テンプレ:

<html>
<head>
<title><?=$title?></title>
</head>

<body>
<h1><?=$title?><h1>
<hr />
<h2>Methods</h2>
<ul>
<?foreach ($methods as $method):?>
    <li><?=$method?></li>
<?endforeach;?>
</ul>
<h2>Directories</h2>
<ul>
    <li>
        plugins/
        <ul>
            <li>html_options.php</li>
            <li>html_radios.php</li>
        </ul>
    </li>
    <li>
        templates/
        <ul>
            <li>index.php</li>
        </ul>
    </li>
    <li>index.php</li>
</ul>
<h2>Plugins</h2>
<ul>
    <li><?html_options("html_options", $plugins)?></li>
    <li><?html_radios("html_radios", $plugins)?></li>
</ul>
</body>
</html>

PHP:

<?php
include_once("Raw.php");

$raw =& new Raw();
$raw->assign("title", "Raw Template Engine");
$raw->assign("methods", array("assign", "assign_by_ref", "fetch", "display"));
$raw->assign("plugins", array(1 => "html_options", 2 => "html_radios"));
$raw->display("index.php");

ライブラリ:

<?php
//
// Raw Template Engine - the template engine using raw php.
//
// Copyright (C) 2005 Masaki Komagata <komagata@p0t.jp> 
//     All rights reserved.
//     This is free software with ABSOLUTELY NO WARRANTY.
//
// You can redistribute it and/or modify it under the terms of 
// the PHP License, version 3.0.
//
class Raw {
    var $template_dir = "templates/";
    var $plugin_dir = "plugins/";
    var $template_vars = array();
    function assign($name, $value) { $this->template_vars[$name] = $value; }
    function assign_by_ref($name, &$value) { $this->template_vars[$name] =& $value; }
    function display($template) { echo $this->fetch($template); }
    function fetch($template) {
        $this->_load_plugins();
        extract($this->template_vars);
        ob_start();
        include($this->template_dir.$template);
        $result = ob_get_contents();
        ob_end_clean();
        return $result;
    }
    function _load_plugins() {
        if (is_dir($this->plugin_dir) and ($dh = opendir($this->plugin_dir))) {
            while (($file = readdir($dh)) !== false) @include_once($this->plugin_dir.$file);
            closedir($dh);
        }
    }
}

表示:

raw-0.2.png

ただの関数をsmartyプラグインみたいに見せてるだけです!

Php Phrasebook
  • Php Phrasebook
  • Sams(2005-09-02)
  • (著)Christian Wenz
  • 定価:¥ 1,746
  • 新品価格:¥ 1,484
  • ASIN:0672328178

PHPのフレーズブック! 表紙怖過ぎだけど注文しました。まったく前評判調べてないので届くのが楽しみ!

↓他のサイトでの説明。

The PHP Phrasebook is actually a pocket guide that is jam-packed with useful and essential PHP code ””phrases”” for the PHP developer’s everyday use. The code is flexible, so it can be easily adapted to your needs and mulitple situations, and your time isn’t wasted wading through chapters of tutorial lessons and extraneous information.

何が良いのかあまり共感を呼び辛いかもしれませんが、テンプレートエンジンを作りました。

Raw Template Engine 0.1

特徴:

  • 新しいテンプレ文法覚えたくない → テンプレがPHP
  • 新しい使い方覚えたくない → Smartyと使い方(メソッド)が同じ
  • chmodしたくない → キャッシュしない(一時ファイルを作らない)
  • 複雑なものは使いたくない → 15行

という後ろ向きなライブラリです。下記、使い方です。

テンプレ:

<html>
<head>
<title><?=$title?></title>
</head>

<body>
<h1><?=$title?><h1>
<hr />
<h2>Methods</2>
<ul>
<?foreach ($methods as $method):?>
    <li><?=$method?></li>
<?endforeach;?>
</ul>
</body>
</html>

PHP:

<?php
include_once("Raw.php");

$raw =& new Raw();
$raw->assign("title", "Raw Template Engine");
$raw->assign("methods", array("assign", "assign_by_ref", "fetch", "display"));
$raw->display("index.php");

ライブラリ:

<?php
//
// Raw Template Engine - the template engine using raw php.
//
// Copyright (C) 2005 Masaki Komagata <komagata@p0t.jp> 
//     All rights reserved.
//     This is free software with ABSOLUTELY NO WARRANTY.
//
// You can redistribute it and/or modify it under the terms of 
// the PHP License, version 3.0.
//
class Raw {
    var $template_dir = "templates/";
    var $template_vars = array();
    function assign($name, $value) { $this->template_vars[$name] = $value; }
    function assign_by_ref($name, &$value) { $this->template_vars[$name] =& $value; }
    function display($template) { echo $this->fetch($template); }
    function fetch($template) {
        extract($this->template_vars);
        ob_start();
        include($this->template_dir.$template);
        $result = ob_get_contents();
        ob_end_clean();
        return $result;
    }
}

表示:

raw.png

賢明なみなさまのこと、一瞥しただけで全てが把握できたことでしょう。
やっつけ仕事や組み込み用途に!

kunitの日記

次の点を修正した 3.0.2 をリリースしました。

  • 3.0.1の修正によって、Tokenフィルターで二重submitチェックが効かなくなっていたのを修正
  • 親ディレクトリのmaple.iniを継承した際の挙動が3.0.0と3.0.1とで違っていたので、3.0.0と同じようになるように修正

Maple 3.0.2がリリース。 フレームワークという以上に注目すべきオープンソースプロジェクトになってる気がします。kunitさんとはPHP勉強会でちょこっとお話させてもらっただけですが、設計に素晴らしいバランス感覚を持ってらっしゃる!と感じました。 あまりに精力的に活動されてるので交通費は会社の経費で落ちるのかがかなり気懸かりです。

PEAR :: Package :: PEAR :: 1.4.0

Changelog:

This is a major milestone release for PEAR. In addition to several killer features, every single element of PEAR has a regression test, and so stability is much higher than any previous PEAR release.

New features in a nutshell:
  • full support for channels
  • pre-download dependency validation
  • new package.xml 2.0 format allows tremendous flexibility while maintaining BC
  • support for optional dependency groups and limited support for sub-packaging
  • robust dependency support
  • full dependency validation on uninstall
  • remote install for hosts with only ftp access – no more problems with restricted host installation [through PEAR_RemoteInstaller package]
  • full support for mirroring
  • support for bundling several packages into a single tarball
  • support for static dependencies on a uri-based package
  • support for custom file roles and installation tasks

NOTE: users of PEAR_Frontend_Web/PEAR_Frontend_Gtk must upgrade their installations to the latest version, or PEAR will not upgrade properly

待望のPEAR 1.4がついにリリース。 最大の変更点はChannelをサポートしたことでしょう。ChannleとはPEAR本家以外にもリポジトリを勝手に立てて、そこからpearを使ってインストールしたりできる機能です。 全体的にPEAR 1.4を機にpearコマンドによるパッケージ管理に本腰を入れてるっぽいです。
おれもPEARは手動アップロード派(ソフト毎にPEARを持つ派)ですが、ちょっと試してみようかな。PEAR 1.4リリース後、即座にSeasar-php MLではS2Container.PHP5、S2Dao.PHP5、MapleをChannelサーバで配信しようという案が。 動きはやっ。