komagataのブログ

クラスが出てこないフレームワーク、AwesomeFrameworkを更新しました。

AwesomeFramework-0.7.0.tar.gz

変更点は

  • 余計なものを省いた。
  • assign, assign_by_ref関数追加。

というより短いのでソースコードを見たほうが早いです。

index.php:(フレームワーク本体)

<?php
//
// AwesomeFramework - extremely simple framework.
//
// 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.
//
define("AF_DEFAULT_ACTION", "default");
define("VERSION", "0.7.0");

$vars = array();
forward(isset($_REQUEST["a"]) ? $_REQUEST["a"] : AF_DEFAULT_ACTION);

function forward($action) {
    global $vars;
    extract($vars);
    unset($vars);
    include "{$action}.php";
}

function fetch($action) {
    ob_start();
    forward($action);
    $buffer = ob_get_contents();
    ob_end_clean();
    return $buffer;
}

function assign($name, $value) {
    global $vars;
    $vars[$name] = $value;
}

function assign_by_ref($name, &$value) {
    $vars[$name] =& $value;
}
?>

default.php:(サンプルアプリ:Action)

<?php
assign("message", "World");
forward("view");
?>

view.php:(サンプルアプリ:View)

<html>
<head><title>Hello World</title></head>
<body>
Hello <?=$message?>.
</body>
</html>

自分でライブラリやツールを書いた時、「本当にAwesomeFrameworkより便利か?」と自問して余計に複雑な物を作らないための戒め的存在!
自分で最小限の物を書いてみないと本当にわかったかどうか実感が持てないので地味に修正して行きたいです。

lighttpd FastCGI は mod_perl Apache1.3 より1割ほど高速 :: Drk7jp

PHP のインストール lighttpd で PHP を FastCGI として使う場合は、—enable-fastcgi オプションが必須。

lighttpdではFastCGIでPHP使えるんですね。 ちょっとやってみたい。

ITトレメ LPIC Level 1

NFSクライアント上のrootユーザーがNFSサーバ上のrootユーザーとしてファイルを操作できるようにするためには、「NFSクライアント上のrootユーザーをnobodyユーザーなどとして扱う」機能を無効にする必要があります。具体的には、NFSサーバの設定ファイル「/etc/exports」にオプション「no_root_squash」を記述します。

な、なんだってー! メモ・・・。

[php-study 125] php-studyの皆さんへの課題(仮)

勝手な提案ですが、近いうちにPHPerのRSSをあつめた Planetシステムを公開するのでPHP界のアルファブロガーの方は 自分のブログのPHPカテゴリだけを抽出したRSSフィードを作って下さい。

カテゴリPHPのFeed、前々から作らなきゃいけないと思ってたのでMTのテンプレで用意しました。 (PHPには全然関係無い方法なのでMLには投稿できない・・・。)

http://p0t.jp/mt/php.rdf

Matzにっき(2005-08-04)

PHPは言語じゃない。バッチ的にも使えるようになったけど、使うべきというわけじゃない。 私は(他のツールについて改めて学ぶのが面倒なので)PHPをバッチに使うこともあるけど。(Rasmus)

ちょwwwwww

PHP 観測所日誌 – Ethna に手を出してみた

いいね!

今は Ethna で何か作りつつ Haste のリリース待ちデス。

Ethnaの強力なエヴァンジェリストがっ!

PHP PhraseBookに載ってる小さいコードの断片が気に入ったので、自分でもよく使うフレーズを勝手に集めていくことにしました。

SQLの条件文を組み立てる

<?php
$sql = "SELECT * FROM Employee";

$cond = array();
if (isset($_REQUEST["name"]) and $_REQUEST["name"] != "") {
    $cond[] = "name = ".addslashes($_REQUEST["name"]);
}

if (isset($_REQUEST["age"]) and $_REQUEST["age"] != "") {
    $cond[] = "age = ".addslashes($_REQUEST["age"]);
}

$sql .= " WHERE".join(" AND ", $cond);
?>
神の子どもたちはみな腕を磨く: 本日発表「PEAR_ErrorStackを使ったエラーハンドリングの統合」の資料を公開します

本日開催の関西オープンソース2005 日本PHPユーザ会BOFで発表する「PEAR_ErrorStackを使ったエラーハンドリングの統合」の資料を公開します。

エラーハンドリング(とロギング)は重要! まだちゃんとわかってないので勉強したい。

CodeZine:PHP5でSOAPを用いたブックマークサービスを作成する

 GoogleやAmazonを始め、多くの代表的なWebサービスでは、それ自身の機能を多くの利用者(開発者)に使ってもらうために、APIを提供しています。

 その仕組みとしてSOAPやXML-RPCが使われていますが、今回はPHP5の新機能であるSOAP拡張機能を用いて、SOAPによるブックマークサービスを作成してみます。

CodeZineでPHP5+SOAPの記事。是非抑えておきたいです。 記事を書かれてるのはblog.xole.netの人ですね。

BMediaNode: Bruce Tate インタビュー

Web Developers Moving Past Java(Web Services Summit)。軽快な Java や Beyond Java の著者である Bruce A. Tate 氏へのインタビュー記事です。

BMediaNodeさんのBruce Tateインタビューまとめがすごく参考になります。

あああ、再三言ってますが影響うけまくりです。おれ自身にちゃんとした根拠があるわけじゃないので単なる信者と言った方が正しい!

  • Ruby などの言語では DI コンテナや AOP は必要ないので、解決すべき本来の問題に注力できる
  • ユニットテストによって動的な型に関する問題のいくつかは解決できる

いつも自分の中でモヤモヤしたて部分をズバー言ってくれます。かなり癒し系アイドルです。 これからは困ったことがあったら、

「ブルース・テイトが言っていた」

というブルース・テイト論法で乗り切ろうと思います。(ポール・グラハム論法

でも、

  • PHP は quick で dirty だ(VisualBasic や Perl も同じ)
  • quick and dirty に興味はない

かよ!