komagataのブログ

ゼンドジャパンとユヒーロが障害対策のソリューションで提携 – HotPHPPER News

ITmediaにてゼンドジャパンとユヒーロという会社が提携がし、PHP+MySQL/PostgreSQL環境の障害対策のソリューションの実現について掲載されています。

ユヒーロってまさか、あの・・・?

kunitの日記

(2)で特定したファイルをAspectをかませるように書き換えて、「components_c」に出力する。この際、「Zoo」クラスとなっている場合には「Foo_Bar_Zoo」に書き換えてしまう。

Aspectかませて書き換え!

X ole.net : 動的にクラス生成

その後、生成したファイルをunlink()すれば、メモリ上(?)にクラスファイルが読み込まれたされた状態になって、いつでも new できるって状態になってます。(詳しくはソース読んで :p)

includeして削除しちゃうって考えが面白い!

PHPでもコードインジェクションやコードジェネレーションの波が。
厭な感じを持たれる方もいるかもしれませんが、どんどんやっていーんです!

p0t: 軽快なPHP

軽快なJavaに感化される。特にためになったのが、透明性を確保するための方法について。つまりアプリケーションの各ドメインがそれぞれ独立して他に依存しないようにする方法。ぱっと考えてそんなことできるのかと思いましたが、現在主流になってる方法は

  • リフレクション
    (きたオブジェクトに動的に対応)
  • コードインジェクション
    (Build時にAntで自動的にコードを付け加える)
  • コードジェネレーション
    (コード自体を生成する)

PHP 観測所日誌 – phpcon_quebec_cd [PHP] PHPConference Quebec 2004 の CD が到着。

もう注文した事も忘れていたですよ。面白そうなコンテンツがあれば PHP-Stady のネタになるかと思ったんだけど、今更 Introduction to SQLite や Introduction to PHP5 ってのも。

さすが 2004 だぜ!

笑った。

PHPeclipse 1.1.7 available at update site

The update site (for use with the Eclipse configuration manager) now contains version 1.1.7 for Eclipse 3.1: http://pipestonegroup.com/eclipse/updates

There are still several annoying bugs with the debugger:

  • Debugger view initialization fails at the beginning (appears harmless)
  • Variables view doesn’t work (Eclipse 3.1 event handling differs from 3.0)
  • Source locator doesn’t work automatically (have to click the call stack to go to the current line)

Eclipse 3.1対応のPHPEclipse1.1.7がリリース。
Debugger周りでまだバグが少しあるようですが、Eclipse 3.1は速度面でも機能面でも何かと素晴らしいので嬉しいです。
そんな中でもおれが地味に一番嬉しかったのがCVS commitにキーボードショートカットの割り当てが可能になったこと!

Mojavi 2.0 Tutorials, Updates and Docs

Downloads

I have recently been working on a bug-fixed release of Mojavi 2.0. I’ve comp leted the changes, and would love to have some people test against it before I c onsider it an official release. The highlights of this release include PHP 4.4. 0 support, and several bug fixes and enhancements.

MojaviProjectのやる気の無さに2.0.3βを勝手に出しちゃってる人が。
PHP 4.4.0対応とか良さそうだけどこれありなの?
Tanner BursonはPHP5で動くMojavi2プロジェクトYumaの人でもあります。(どんだけMojavi2好きなんだって話だよ)

Yuma Project Page

What is it?

The Yuma project is a custom build of the Mojavi project. More specifically it is aimed to be a PHP5 compatible build of Mojavi 2.0. Mojavi 2.0 is an excellent framework for building PHP applications. It is efficient in both execution speed, and development time.

Mojavi Japan – フォーラム Smarty-Lightについて

SmartyRendererではSmarty-Lightって使えないんですよね?(頓珍漢な質問であればすいません)使えなかったら使えるようなプラグインがあったらいいかなぁ…と。

という話題があったのでSmartyLightRenderer作りました。

SmartyLightRenderer-0.1

質問されたので答えたついでにのせるシリーズ。

Q: 「ログアウト後の戻るボタン対策はどうすればいいのか?」

A: 「PHPデフォルト設定(php.ini-dist)なら正しくログアウト(session_destroy)してればそれで良い。」

「ログアウト後の戻るボタン問題」とは何か。

ログアウトしてもブラウザの戻るボタンで戻るとキャッシュ上のページが表示されてそこから「購入」とか都合の悪い処理をされちゃう問題。

要はブラウザがキャッシュしないで、戻るボタンを押されても必ずサーバに問い合わせてくれれば大丈夫。
ブラウザに「キャッシュ使うな」と言うにはHTTPヘッダに下記を書けば良い。

Expires: 0
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache

Expiresは過去の日付とかなら良い。no-storeとno-cacheは、「ファイルとかにキャッシュするな」と「メモリ上とかにもキャッシュするな」、must-revalidateは「必ずサーバ見に行け」、PragmaはHTTP 1.0用らしいです。
ヘッダを自分で書いてもいいですが、PHPではphp.iniでsession.cache_limiternocache(デフォルト)に設定されていると上記のヘッダを自動的に出してくれます。
必ずサーバに問い合わせてくれれば、ログアウトされてるので「ログインしてください」画面に飛ばすことができます。

via: Hypertext Transfer Protocol HTTP/1.1 – 13 Caching in HTTP

プログラマー日記(2005-08-09)

なおRailsは、Rubyという言語の特徴を最大限に生かし、またJavaのフレームワークを参考にせず設計されています。PHPのフレームワークも、Javaのさるまねに陥ることなく、PHPの良さとは何かを考えながら、製作していただけたらと思います。

PHPの良さとは何か!

おれの考えたPHPの良さ:

  1. 関数いっぱい
  2. HTMLに埋め込める
  3. オブジェクト指向とか知らなくても作れる

それをフレームワークに生かせないかということで、一発ネタのはずだったAwesomeFrameworkをちょっと変えてみました。

AwesomeFramework-0.5.0.tar.gz

1.関数いっぱい

AwesomeFramework(以下AF)は関数のみ!(クラスとか無い)

  • forward($action) : アクションを実行する。(処理が移る)
  • redirect($action) : アクションにリダイレクトする。(別リクエストになる)
  • fetch($action) : アクションの実行結果の出力を取る。

2.HTMLに埋め込める

AF標準のRendererはPHP!
いままでは「HTMLに埋め込める機能いらねぇ」とか思ってましたが、たとえば単に

Hello World!

と書いたテキストに拡張子「.php」をつけてincludeすると全内容が勝手に出力される!
PHPタグの外側は勝手に出力される=PHPタグが無いテキストは全部が普通に出力される。

3.オブジェクト指向とか知らなくても作れる

AFのactionはただのPHPファイル。関数ですらなく、上から順番に実行されます!

Hello Worldアプリのaction:

<?php
$_REQUEST["message"] = "Hello World";
forward("view");
?>

PHPファイルにするとグローバル変数地獄になって大変だろうと思っていたんですが、全てのactionはforward関数内でincludeされるのでフィルタチェイン的構造になったforward関数のスコープになって何気にnamespaceが分かれてる!

ファイルをactionの単位として$selfというそのaction自身の情報を含んだ変数をインポートすることにしました。($thisだと混乱するのでPerl的な$self)

$selfの中身:

Array
(
    [action] => index
    [file] => index.php
    [abs_path] => D:/Program Files/eclipse-3.0.2/workspace/AwesomeFramework/actions/index.php
    [abs_uri] => http://localhost/index.php?action=index
    [resource] => Array
        (
        )
)

オブジェクト指向JavaScript

クロージャとはブロック化されたコードの事です。その特徴はクロージャが生成されたスコープのローカル変数を取り込むことができる、というものです。

JavaScriptでのクロージャの話。PHPだと馴染み浅ですが、楽しいし便利!

本家フォーラムの方で少し要望が出たのでMojaviInfoを修正しました。

MojaviInfo-0.4.tar.gz

version 0.4の変更点

  • NOTICEが出る部分を修正。
  • Subversionディレクトリ、emacs, viなどのbackupファイルを一覧から除外。

ref: MojaviInfo