tonextone.com/note/

Last-modified: 2006-09-01 (金)

Copyright ©master_at_tonextone.com All rights reserved.

PHP フレームワーク その1

Posted : 2005-08-11 00:00 / Category : [開発日誌]
PHP のフレームワークを作ろうと思う。その名も GENUIN 。
PHP の言語設計上の特長や、 legacy を尊重した、
「オブジェクト指向」ではなく、
「オブジェクト思考」あるいは「オブジェクト嗜好」なフレームワーク。
Perl のオブジェクト指向の実装を参考にしたい。

特徴:

  • クラスを使わない。命名規約や配列や、その他 genuine な概念を駆使する。
    $_CONFs,$_PARAMs,$_MESSAGEs,$_DB_*,$_SQL_*,...
  • register_globals_securely On.
    リクエスト変数へのグローバルアクセスをセキュアに提供。
  • テンプレートエンジンを使わない。PHP で充分。

    $ less hoge.html
    <?function _head($_){?>
    <html>
      <head>
      </head>
      <body>
        foo
        <?o($_['var_head']);?>
        bar
        <?}?>
    
        <?function _loop($_){?>
        foo
        <?o($_['var_loop']);?>
        bar
        <?}?>
    
        <?function _tail($_){?>
        foo
        <?o($_['var_tail']);?>
        bar
      </body>
    </html>
    <?}?>
    <?
    include_once('path/to/config.php')
    include_once($_CONF['path']['to_controller'].'hoge.php')
    ?>
            

    $ less hoge.php
    <?
    
    // process_any();
    
    $_ = $_PARAMs['head'];
    _head($_);
    unset($_);
    
    foreach ($_PARAMs['loop'] as $var)
    {
      $_ = $var;
      _loop($_);
      unset($_);
    }
    
    $_ = $_PARAMs['tail'];
    _tail($_);
    unset($_);
    ?>
            

トラックバック

1: オタク生活を晒すブログ/ライブドア支援を発表=フジ保有の全株取得−USEN (03/16 19:14)
(時事通信)より 有線放送大手USENは16日、ライブドアの経営再建を支援することを決めたと発表した。フジテレビが保有するライブドア株12.75%をUSENの宇野康秀社長が約95億円ですべて取得、ライブドア前社長の堀江貴文被告に次ぐ第2位の大株主となる。さらに、インターネッ..

ツッコミ

1: master (08/12 10:37)
「プログラマー日記」さんも同じ事を考えているらしい。
http://www.programmers-paradise.com/tdiary/?date=20050801#p01
http://www.programmers-paradise.com/tdiary/?date=20050808#p02
http://www.programmers-paradise.com/tdiary/?date=20050809#p02
http://www.programmers-paradise.com/tdiary/?date=20050809#p03
2: itoh (09/15 00:18)
p0t.jpの人も同じ事書いてた。
http://p0t.jp/mt/archives/2005/08/2_1.html
1行フレームワークAwesomeFrameworkだって。
命名規則っていうのは多かれ少なかれつかいますなー。
3: master (10/30 16:41)
メモ:

ライブラリはなるべく標準的なものを使う。
PEAR::
DB, DB_DataObject,
HTTP_Client, Mail_Mime,
Auth, XML_Serializer, XML_RPC

PECL の filter も気になる。
( http://pecl.php.net/package/filter )
[ このエントリへはツッコミ出来ません ]