PEAK XOOPS - D3モジュールフロントコントローラの限界 in englishin japanese

Archive | RSS |
XOOPS
XOOPS : D3モジュールフロントコントローラの限界
Poster : GIJOE on 2006-10-17 17:47:32 (6757 reads)

in englishin japanese
本日10/17、ついにXoopsCube 2.1betaがリリースされました。
お疲れ様でした!

そのCube2.1betaを試してみて、いろいろ問題が出たので、モジュール作者として出来ることをしばらく記事にしていこうと思っています。

突然ですが、Webアプリケーションにおける入口は、極力少なくするべきです。
そのポリシーに従って、D3モジュールでは、管理画面も公開画面も、index.php で統一してきました。それでも、Cube 2.1alphaでは動いていたのですが、Cube 2.1betaでは、完全に動かなくなってしまいました。
この判断によって、管理画面だと判断されないためです。


		if(count($urlInfo)>=3) {
			if(strtolower($urlInfo[0])=="modules" && strtolower($urlInfo[2])=="admin"){
				$adminStateFlag=true;
			}
			elseif($urlInfo[0] == "modules" && $urlInfo[1] == "system" && substr($urlInfo[2], 0, 9) == "admin.php") {
				$adminStateFlag=true;
			}
		}
		elseif(substr($urlInfo[0], 0, 9) == "admin.php") {
			$adminStateFlag=true;
		}

それでも、$_SERVER['REQUEST_URI'] を書き換えるなどすれば、なんとか動かせるのですが、そこまで裏技的な方法を使ってまで、index.phpに固執するのもどうかと、完全にあきらめました。

ここは素直に、管理画面については、admin/index.php を入口にするように、方針を変更します。

おそらく、wrapsの管理画面も同様の理由で、Cube2.1betaでは動かないと思いますが、こちらについても軌道修正します。

この軌道修正では、XOOPS_ROOT_PATH側もアップデートを行う必要がある点に注意が必要です。なるべく、そういうアップデートが必要ないように設計したつもりだったのですが、残念です。


Related articles
Printer friendly page Send this story to a friend

Comments list

GIJOE  Posted on 2006/10/20 6:25
Quote:
ただ、その場合、「このエントリポイントからはこの動作しかさせない!」っていう縛りが面倒です。
このあたりは、使っているフレームワーク次第なのかも知れませんね。
フレームワークを使っていない私は、そこを面倒と思ったことはありません

XOOPSの場合はそれ以前の問題で、すべてがエントリポイントみたいなものですから。DocumentRoot下にphpファイルがごちゃまんとある状況…
tohokuaiki  Posted on 2006/10/18 14:49
エントリポイントって、つい一つにしちゃいたい気持ちになりますが、用途に合わせて複数ポイントを作るのも重要だなって最近気付きました。

ただ、その場合、「このエントリポイントからはこの動作しかさせない!」っていう縛りが面倒です。
Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!