キモさのキモ

http://d.hatena.ne.jp/yone098/20090409/1239244521

PHPのよさというか、このままではまだまだJavaらしすぎてキモさが足りない。

というわけでもっとPHPらしいキモいすばらしいコードにしてみる。


まずクラス名は適当でよい。とりあえずPhpとでもしておこう。最重要項目としてパッケージ名は必須だ!とりあえずphpとでもしておく。

そしてメソッドにキモを入れ込む。

public class Php {
    public static String $_GET(String param){
…省略…
        return (T) request.get(name);
    }
    public static <T> T $_SESSION(String name){
…省略…
        return (T) session.get(name);
    }
    public static void $_SESSION(String name,Object data){
…省略…
        session.put(name, data);
    }
}


普通に使う分にはこうなる。キモさが足りない。

    String param1 = Php.$_GET("param1");
    System.out.println(param1);


そこでstatic Importを使う。パッケージ名が必須の理由はこれだ!

先ほどのGETはこうなる。すばらしいキモさだ。

import static php.Php.*;

…省略…
String param1 = $_GET("param1");
System.out.println(param1);
…省略…


もちろんセッションも扱うことは出来る。

import static php.Php.*;

…省略…
$_SESSION("せっしょん名", "せっしょんにはいってるかな?");

String session = $_SESSION("せっしょん名");
System.out.println(session);
…省略…

キモイことこの上ない。

ちなみに意外なことにstatic importはJSPでも使える。

<%@page import="static php.Php.*" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello <%= $_GET("きもっ")%></h1>
    </body>
</html>

上にあるエンコーディング指定は仕方がないとして、インポートの宣言が邪魔だな。

JSPフラグメントを作成する。

<%@ page pageEncoding="UTF-8" %>
<%@page import="static php.Php.*" %>

JSPフラグメントをヘッダに指定する。NetBeansあたりならJSPF作成だけでここまで自動で設定してくれるので楽チンだ。

    <jsp-config>
        <jsp-property-group>
            <display-name>php</display-name>
            <url-pattern>*.jsp</url-pattern>
            <include-prelude>/jspf/phpheader.jspf</include-prelude>
        </jsp-property-group>
    </jsp-config>

これでJSPからstatic importの宣言が消える。


ただし、NetBeansでもさすがに追いきれていないのでソースを書くときにはエラーが出るし、補完がきかないのでお勧めしない。実行すると問題はないけど。

タグライブラリ等はちゃんと追従するのにさすがにstatic importまではNetBeansでも追いきれていないか。キモイのはいやだとNetBeansが悲鳴を上げているようだ。もちろん、Eclipseも悲鳴を上げる(というかこちらはタグライブラリもまともには…)。


ここまれやれば十二分にキモイ。*.javaなど書かずに漢らしくガンガンJSPファイルにロジックをうめこんでスパゲティにしていこう!