【PHP】Phrameを使う【フレームワーク】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/08/23 14:15ID:???※関連リンク
Phrame本家
http://phrame.sourceforge.net/
PHPでMVC第1回:前編
https://www.stackasterisk.jp/tech/php/phpMvc01_01.jsp
開発談義/FrameWorkはどれがいい? - PukiWiki
http://w-project.org/pukiwiki/index.php?%B3%AB%C8%AF%C3%CC%B5%C1%2FFrameWork%A4%CF%A4%C9%A4%EC%A4%AC%A4%A4%A4%A4%A1%A9
0577nobodyさん
2005/05/23(月) 18:52:24ID:???>M3-PHP5に移行するに当たっての注意点みたいのあるかい?
言い出したらキリが無いな…
Propel&Creoleに限らず複数&多種のDB接続ができるんで、DB周り自体かなり便利にはなってるけどね。
俺の場合比較的速度を求めない部分ではPropel+Creoleで、速度重視の部分ではADODBって感じでやってるけど。
0578nobodyさん
2005/05/23(月) 20:43:40ID:???使えて当り前のレベルの話だろが、突っ込んだ話しても
先が見えてる内容だから、掘り下げて話す方が恥ずかしくなるよ(w
0580nobodyさん
2005/05/23(月) 22:12:54ID:???PHPはCGIとしてもインストールできるのですよ。
ただ、あまり一般的じゃないけど。
0582nobodyさん
2005/05/23(月) 23:02:33ID:???誰もCGIについて語ってないし。苦し紛れに無知な>>559が
発したレスなんだろうけどね。
0583nobodyさん
2005/05/23(月) 23:32:25ID:???0586nobodyさん
2005/05/24(火) 12:51:57ID:???調べろ。だからお前は屑なんだ。
そもそも最初から知ったかぶるな。
0587nobodyさん
2005/05/24(火) 15:53:52ID:acBCrGCdうぜ
0588nobodyさん
2005/05/24(火) 21:31:13ID:45wBzFIo0589nobodyさん
2005/05/24(火) 21:46:48ID:???でも既存フレームワークは
「多機能すぎる」んで、速度がネックになるかな。
オリジナルフレームワークは機能のショボさが
逆に強みになると思う
0590nobodyさん
2005/05/24(火) 22:00:03ID:???既存フレームワークで本必要?
ソースコードの量も大した事無いし、別に本が必要とは思わないんだけど?
それと、たしかもうちょっとでMojavi3を扱った日本で最初の書籍が出るはず。
0591nobodyさん
2005/05/24(火) 22:29:19ID:???楽したいからフレームワーク使うんだからさ
モハビ本には期待
0592nobodyさん
2005/05/24(火) 23:00:00ID:???ソースがきれいだからすぐ読める希ガス
0593nobodyさん
2005/05/24(火) 23:11:35ID:???いくらでも出てくるし。
0594nobodyさん
2005/05/24(火) 23:39:46ID:???そんなこと言うんだったら
最初からPHPはCGIではないなんて言うなよ。
おまえが問題にしたのは文章の正確さではなく
その「表現」なんだから、マニュアルを調べたって出てきそうもないしな。
正確な文章を書けないやつがしゃしゃり出てくるんじゃない。
0595586
2005/05/25(水) 00:39:50ID:???俺は多分お前が思ってる奴とは別人だぞ。
日が浅いだろうに、奈々氏の区別が付いている振りをするものじゃない。
一般的に教えてクソと呼ばれるものは屑だし
585もその類の遠吠えにしか見えない、ということを言ったまでだ。
0596586
2005/05/25(水) 00:48:05ID:???CLI版のPHPをインストールすることで、CGI機能を実装したサーバーの
cgiスクリプトとしてPHP言語が動作可能となる。
つまり、581が言ってるのはCGiとしてインストール、というのがそもそもおかしい話だということだろ多分。
調べたら出てくるんだから調べてから話せ、ってことだ糞餓鬼。
0599nobodyさん
2005/05/25(水) 01:43:09ID:???0600598
2005/05/25(水) 01:43:14ID:???前に何か足らなくなってて難しい/出来ないと思ったんだが...記憶違いか
0601586
2005/05/25(水) 01:43:14ID:???ttp://ns1.php.gr.jp/pipermail/php-users/2003-January/012701.html
これか。おみそれした。
0603598
2005/05/25(水) 01:55:54ID:???そのHTTPヘッダのくだりなんだけど、出力しないだけで
CGIのインターフェース的には繋がってたと思うんだよね。
ああ、スレに関係ない話ですまん。
0605nobodyさん
2005/05/25(水) 05:00:03ID:???http://www.php.net/manual/ja/security.cgi-bin.php
じゃぁこの翻訳は間違っているのだね。
0606596
2005/05/25(水) 08:36:43ID:???わざわざ「バイナリ」と付けている意味もわからんのか。そもそも異なる訳だ。
つーか俺が書いたのは調べてる例なのだし、明らかに間違ってるなら自信を持ってその箇所を指摘しろ。
そういう中途半端な話がしたいのか?
580はともかく、578は明らかに事実誤認だし581は調べもせずに書き込む香具師だ。
勝手に誰かと勘違いしないでもらえる?
>598
ヘッダ自分で書かなきゃいけないならスクリプト書き直し…
秒はこれコンマ以下切捨てなのね。
0607596
2005/05/25(水) 08:41:13ID:???>580はともかく、578は明らかに事実誤認だし581は調べもせずに書き込む香具師だ。
580はともかく、578は明らかに事実誤認だし585は調べもせずに書き込む香具師だ。
どんどんスレの主旨からずれてくな…これ以上PHP-CGIの質問するんだったらPHP初心者板でお願い。
一両日中には相手してあげるから。
0609nobodyさん
2005/05/25(水) 09:20:22ID:???これのことだと思う
ttp://www.amazon.co.jp/exec/obidos/ASIN/4798108766/250-2538785-1872250
0610nobodyさん
2005/05/25(水) 09:47:46ID:???○PHPで広がるWeb開発
○レンタルサーバーでPHPを使おう!
○WindowsでPHPを使おう!
○使える! アプリケーション〜一般編〜(XOOPS / ppBlog)
○使える! アプリケーション〜開発編〜(phpMyAdmin / mantis)
○PHP超入門
○TruStudioで快適な開発環境を作ろう!
第2章 PHPのプログラム構築手法
○Smarty入門
○Smartyを使いこなす
○PHP5+MojaviによるMVC入門
○PukiWikiでSEOにチャレンジ
第3章 ライブラリを活用する
○JpGraphでグラフもすいすい
○PEAR:Mime_Mailを使用したHTMLメール送信
○PHPのセキュリティ対策
○パフォーマンス向上大作戦!
○WYSIWYGな編集をしよう!
第4章 最新情報
○PHP5の新機能
○PHP4とPHP5の共存
↑これみるかぎり期待できなさげな気がする
0611580=585=594
2005/05/25(水) 10:20:04ID:???「言っていること」は正しいが「言い方」が正しくないのだろう
と思って585と聞いたわけだ。
ただ表現が正しくないと言われてもどこが正しくないのかよく分からなかったしな。
それを586でいきなり屑呼ばわりされたので、
ついカッとなって594で複数人の名無しを一人だと勘違いした書き込みをしてしまった。
そこは悪かった。
ただ、見ず知らずの他人を屑だの糞餓鬼だの呼ぶのはどうかと思う。
少なくとも自分はそういう言い方はしなかったし、するつもりもない。
あと、自分も「明らかに間違っている点」を指摘されてないし、
「表現が正しくない」と言うのは「事実ではない」とは意味が違うので、
まだ釈然としないのだ。
でも、こんな言葉のあやみたいなことでグチグチ言ってもしょうがないな。
またROMに戻る。
すまなかった。
0612596
2005/05/25(水) 10:47:13ID:???俺も悪かった。すまん。
ただ、匿名掲示板は煽ったら煽り帰される、というのはもう少し慣れておいたほうがいいよ。
いちいち煽られて腹立ててても仕方が無い。
結果として俺がスレ流しまくって無為になってるし、教えて君や煽り荒らしも次からはなるだけスルーするよ。
0613nobodyさん
2005/05/25(水) 12:03:07ID:???見るべきは
> 坂井 恵 (著), 上鍵 忠志 (著), 田中 正裕 (著), 月宮 紀柳 (著), 森川 穣 (著)
ここ。
業界一ネタがマニアックな月宮氏の名前がある。
上鍵氏と田中氏の名前は分かるが後は知らないな… 坂井氏って、Pukiwiki の坂井氏かな。
まぁどっちにしろ、PHP で本や雑誌一冊使うと部数を作るために初心者フレンドリーな振りにしなければ成り立たないんじゃないか。
ここの住人が満足するようなインデックスで固めたら大量の返本は確実。
それ含めて眺めたら、結構期待していいと俺は思うが。
0615nobodyさん
2005/05/25(水) 15:19:57ID:???そうそう。つーかほとんどがmojaviに関係ないのにタイトルでMojaviとか言って騙してる方が
返本確実だろw
0616613
2005/05/25(水) 15:49:05ID:???0617nobodyさん
2005/05/25(水) 16:11:25ID:???サンプルやチュートリアルで使い方はほぼ網羅されていいる。
あとは、更に効率良く使うために自分でクラス作ったりって感じだけど、
何が疑問なんだろう・・・
そして、こういった板があるんだから、ちょっとした疑問でも質問すれば良いのに。
でもって、質疑応答をどこかのサイトにまとめればそれだけで貴重な情報源になる気がする。
0619nobodyさん
2005/05/25(水) 17:14:14ID:???まぁそこまで考える段階では無い気もする。今は取り敢えず記事出して認知上げようぜ、みたいな。
本当に需要が出てきたら切り口は幾つか見つかるんじゃない?
1. 事例紹介
2. Mojavi で作ろう -Mojavi を解説しつつアプリケーション一つをまるまる開発- (初心者向け)
3. Tips
-- View を拡張
-- エラーハンドリング
-- Model の導入
-- Propel でゴー
4. コードリーディングの手引き -Mojavi コードのガイダンスと読むべきポイント-
5. Mojavi に役立つツール群 (アクセラレータとか)
6. 情報源
こんな所か? Tips にはエラい人がごまんと抱え込んでいるであろう技や活用術を載せて欲しいな。
0620nobodyさん
2005/05/25(水) 21:02:33ID:???0621nobodyさん
2005/05/25(水) 22:45:02ID:???0622nobodyさん
2005/05/26(木) 00:22:06ID:???フレームワークを知った風な顔で語るなよ。雑魚どもが。
0623nobodyさん
2005/05/26(木) 00:26:49ID:???結局smartyのインスタンスをfilter側で生成して
actionクラスでもインスタンスを呼び出せるようにしてる。
それでis_cachedメソッドでキャッシュの有無を判定して
DB処理等の実行の判断をしてるんだけど、もっと良い方法あったらキボンヌ
ちなみにmojavi3でのお話
0624nobodyさん
2005/05/26(木) 01:57:08ID:???俺も似たような感じ。
まずConfigクラス作って、smarty_アクション名.iniに、グローバルテンプレ、メインテンプレ、スロットテンプレの
ファイル名、キャッシュ時間を設定して、それをフィルタで読み込んで判定してる。
んで、キャッシュされてなかったらView側で表示&キャッシュ生成処理みたいな感じで。
まぁでもそのうち公式でサポートされそうな気がしなくもないけど。
0625nobodyさん
2005/06/06(月) 16:40:01ID:???名づけてよさそうに思えるのですが、ネームスペースというのが何なのかわかりません。
どなたか教えてもらえないでしょうか。
addPrivilege()と一致していれば何と名づけようと関係ないのでしょうか。
<?php
class AAction extends Action
{
//認証機能を利用する
function isSecure()
{
return true;
}
//ExecuteExampleは権限名として自由につけらる?
//いくつかの解説で出てくるExampleNamespaceというのは何でしょうか?
//突然、今まで出てこなかったExampleNamespaceとか、$GLOBALS['_EXAMPLE_USER_PRIVILEGE_NAMESPACE']とか
//tutorialとかになってて混乱してます。
function getPrivilege()
{
return array('ExecuteExample', 'ExampleNamespace');
}
?>
0626nobodyさん
2005/06/08(水) 04:06:39ID:???勝手に名づけていいよ。空にするとたしかmojavi.orgかなんかが入るんだっけ?
でも、例えばネームスペースにホスト名やユーザエージェントとかの
ユーザごとに違う値を入れてやれば、セッションハイジャック対策になる。
0627625
2005/06/08(水) 22:30:58ID:???さんくす
えっと、ユーザエージェント毎の違う値というのが思っていたのと違うんだけど
それはテストコード書いて試してみます。
・・・そのネームスペース(?)毎に権限設定ができると思ってた。
例えば、userはuserでの権限でできること、adminはuserとadminと両方の
権限を持ってアクセスできるとか・・・。できるのかなぁ。
0628nobodyさん
2005/06/10(金) 03:50:03ID:???そういうのは権限の付与時にきめることで、そこは関係ない。
例えば>>625での
AAactionにadminだけをアクセスさせたい場合、
認証時にadminだけ、ExecuteExampleをaddPrivilegeしてやればいい。
0629nobodyさん
2005/06/10(金) 13:55:21ID:???そういった意味じゃないんじゃない?
adminとかuserって例だと俺は例え難いから別な例えとすると、
ある画面は営業部と品質管理部がアクセス出来るようにするといった場合じゃないのか?
つまり、複数の権限でアクセスできるページが作りたいって意味じゃ?
0631nobodyさん
2005/06/10(金) 20:44:57ID:???AAction、BActionがあったとしよう。
AActionにExecuteExampleA、BActionにExecuteExampleBをgetPrivilegeしておく。
認証時、adminユーザExecuteExampleA、ExecuteExampleBを付与、
userならExecuteExampleAを付与してやればいい。
AAction内でさらに細かく設定したければhasPrivilegeで直接問い合わせる。
if($user->hasPrivilege('ExecuteExampleA-1')){
ExecuteExampleA-1が与えられたユーザだけの処理
}
0632nobodyさん
2005/06/10(金) 20:47:19ID:???0634nobodyさん
2005/06/11(土) 00:59:49ID:???0635nobodyさん
2005/06/11(土) 10:57:48ID:???自演乙
0640nobodyさん
2005/06/11(土) 12:13:10ID:???PHPEclipseもTrustudioもフリー
持ってなきゃ落とせ。
>>626
これは飛び道具的な使い方。本来ネームスペースというからには、
return array('ExecuteExample', 'ExampleA');
return array('ExecuteExample', 'ExampleB');
みたいな使い方をするもんだ。
0643nobodyさん
2005/06/11(土) 16:51:17ID:???参考にできるドキュメントがあんまりないのがmojaviの辛いところだね。
間違っている部分があれば指摘よろ。
[ユーザ認証を使う場合]
index.phpの
require_once(AUTH_DIR . 'PrivilegeAuthorizationHandler.class.php');
$authHandler =& new PrivilegeAuthorizationHandler;
$controller->setAuthorizationHandler($authHandler);
を有効化する
認証したいActionに、function isSecure(){ return TRUE; } を追加する
認証済みにする時は、User::setAuthenticated(TRUE); を実行する
0644nobodyさん
2005/06/11(土) 16:51:31ID:???index.phpの
require_once(AUTH_DIR . 'PrivilegeAuthorizationHandler.class.php');
require_once(USER_DIR . 'PrivilegeUser.class.php');
$authHandler =& new PrivilegeAuthorizationHandler;
$user =& new PrivilegeUser; -(3)
$controller->setAuthorizationHandler($authHandler);
$controller->setUser($user);
を有効化する
特権を扱いたいActionに、function isSecure(){ return TRUE; }を追加する
Actionに特権を設定する
function getPrivilege (&$controller, &$request, &$user){
return array(name,namespace);
}
User::addPrivilege(name,namespace)を使って、そのユーザの持つ特権(s)を設定する
[捕捉]
あるActionに必要な特権は1つだけ設定できる(getPrivilege)。namespaceを指定しない場合はorg.mojaviになる。
あるユーザの持つ特権はPrivilegeUserクラス内で、secure[namespace][name] = TRUE|NULL の形で格納される。
またUser::addPrivilegeを複数回使うことで、複数の特権をユーザに付加することができる。
nameとnamespace(省略時はorg.mojavi)の2つが完全に一致しないと、特権が許可されない。
アカウント管理のグループ・ユーザのような「ものではない」つーことやね。ここ引っ掛け問題で出ます。
0646nobodyさん
2005/06/11(土) 22:12:05ID:???まぁここでわかるわけだ。能無しソース嫁厨←実は読んでないと
ほんとに読んだ人と。例え644が間違っていたとしても
こう書いてあるから違うといえる人間と違うとしかいえない人間と。
あ、俺は読んでないからなんともいえない。先人の知恵をありがたく使わせて
いただく。感謝の気持ちはあるつもり。クソにもならんコメントという意味では
俺も嫁厨と変わらない…。
0648nobodyさん
2005/06/12(日) 01:50:47ID:???>>>644の書き込み見ると、今までの流れで言われてた事と
>矛盾するんだが、どっちが正しいの?
べつに何も矛盾しない。
0649nobodyさん
2005/06/12(日) 07:16:06ID:???>アカウント管理のグループ・ユーザのような「ものではない」つーことやね。ここ引っ掛け問題で出ます。
これは具体的にどういう意味で言ってるの?
namespace・nameがイコールグループ・ユーザというものではないって意味?
それともグループ・ユーザに相当する処理で使うものでは無いという意味?
後者なら違うと思うんだが。実際グループの権限照会処理で俺使ってるんで。
0651643
2005/06/14(火) 01:12:54ID:???>>645
矛盾はしないですよ。というか、矛盾していたらネチネチと煽ってるっす。
>>649
最後の一行は余計だったかなぁ。。その上の行の捕捉みたいなつもりだったのだけど。
namespace = グループとした時に、グループに対してactionの利用がon|offされるわけではなく、
あくまでnameまで含めた物が判定に使われるってことです。
上の方で出ていた単語(そのレスでの意味合いは置いておいて)を使うと、
namespace = adminグループ、営業部 って感じ。
グループ・ユーザ機能をどう実装するかってのはまた別の話っす。
0653nobodyさん
2005/06/14(火) 03:09:43ID:???>最後の一行は余計だったかなぁ。。その上の行の捕捉みたいなつもりだったのだけど。
別に真意を知りたかっただけ。特に余計とかは思ってない。
namespaceはユーザのグループというよりは、権限のカテゴリと考えるのが妥当だね。
0654643
2005/06/14(火) 03:54:18ID:???認証・特権に関係する部分を読んでいた時のメモっす。@mojavi2
追試しようとする人は参考にしてちょ。
mojavi全体の処理ダイアグラムも参照。
ttp://www.mojavi.org/images/diagrams/2.0/action_sequence.png
段組は関数呼び出し・if文等処理の区切り。関数名の後ろの::はその関数のクラス名。
index.php
require_once(AUTH_DIR . 'PrivilegeAuthorizationHandler.class.php'); -(1)
require_once(USER_DIR . 'PrivilegeUser.class.php'); -(2)
$authHandler =& new PrivilegeAuthorizationHandler;
$user =& new PrivilegeUser; -(3)
$controller->setAuthorizationHandler($authHandler);
$controller->setUser($user);
$controller->dispatch()
0655nobodyさん
2005/06/14(火) 03:54:32ID:???function dispatch()
$this->forward($modName, $actName);
function forward($modName, $actName)
$filterChain =& new FilterChain;
$filterChain->register(new ExecutionFilter);
$filterChain->execute($this, $this->request, $this->user);
function execute(&$filterChain, &$controller, &$request, &$user)::ExecutionFilter
if($action->isSecure()) -(4)
$authHandler =& $controller->getAuthorizationHandler();
$authHandler->execute($controller, $request, $user, $action)
function execute (&$controller, &$request, &$user, &$action)::PrivilegeAuthorizationHander
if(!$user->isAuthenticated()) -(5)
$controller->forward(AUTH_MODULE, AUTH_ACTION);
$privilege = $action->getPrivilege($controller, $request, $user); -(6)
if ($privilege != NULL && !isset($privilege[1])){ $privilege[] = 'org.mojavi'; } -(7)
if ($privilege != NULL && !$user->hasPrivilege($privilege[0], $privilege[1])){ return FALSE; } -(8)
return TRUE; -(9)
0656nobodyさん
2005/06/14(火) 03:54:50ID:???(2) ユーザ特権を使う場合は、index.phpのコメントアウトから有効化
(3) Userクラスの代わりにPrivilegeUserクラスを使う。opt/user/PrivilegeUser.class.php
(4) Action内でisSecure()がtrueを返すようにオーバーライドしておくと、認証/権限が実行される。オーバーライド前は、return FALSE。(9)も参照。
(5) User::setAuthenticated(true)されていれば認証済み。(9)も参照。
(6) Action内でgetPrivilegeが特権名/名前空間の配列を返すようにオーバーライドしておく。オーバーライド前はreturn NULL。(9)も参照。
(7) 名前空間が設定されていない場合は、org.mojaviと名前空間に使う。
(8) User::addPrivilege(name,namespace)したものの中に、(6)の特権名/名前空間を満たすものが無ければ、特権無しと判断する
(9) 認証が成功した場合や、特権有りまたは特権不要の場合に、trueを返す
0657nobodyさん
2005/06/14(火) 05:44:36ID:QOcUcvCe動的にXMLを作成しようとすると、1行目に改行が入ってしまいます。
以下view
$renderer->setTemplate('recentXml.xml');
$renderer->setAttribute('result' , $request->getAttribute('result') );
以下template
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data>
<result>{$result}</result>
</data>
以下compileの中身
<?php /* Smarty version 2.6.9, created on 2005-06-14 05:18:37
compiled from recentXml.xml */ ?>
<?php echo '<?xml'; ?>
version="1.0" encoding="UTF-8" standalone="yes"<?php echo '?>'; ?>
<data>
<result><?php echo $this->_tpl_vars['result']; ?>
</result>
</data>
0658nobodyさん
2005/06/14(火) 05:44:49ID:QOcUcvCe<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data>
<result>1</result>
</data>
<!-- Page was processed in 0.0412 seconds -->
この1行目の改行をなくすためにはどうすればよろしいでしょうか?
0659nobodyさん
2005/06/14(火) 06:17:32ID:????>
とかになってるんじゃないのかな多分。
0660657
2005/06/14(火) 10:25:49ID:QOcUcvCeブラウザでアクセスした際、1行目に改行が入っていました。
原因はわかりません。
0662nobodyさん
2005/06/14(火) 11:32:29ID:???0663nobodyさん
2005/06/16(木) 17:29:13ID:???検索してもGlobalフィルタのおざなりな説明しかないなぁ。。
フィルターには2種類あり、全てのmodule/actionで呼び出されるもの(globalフィルタ)と
特定のモジュールで呼び出されるもの(moduleフィルタ)からなる。
個々のフィルタには前処理・後処理という2段階の実行順序があり、
登録した順に前処理が全て実行されてから、今度は逆順に後処理が実行される。
Actionの実行部分もフィルタの一種として扱われていて(ExecutionFilter)、
全てのフィルタの登録後に自動的に登録されている。
結果、登録順に1,2...の番号を付けた時に、
1. GlobalFilterのpre-filter1,pre-filter2...を実行
2. moduleFilterのpre-filter1,pre-filter2...を実行
3. ExecutionFilterを実行(認証や特権の判定、action処理)
4. moduleFilterの...post-filter2,post-filter1を実行
5. GlobalFilterの...post-filter2,post-filter1を実行
という順番で処理されることになる。
フィルタ機能の実現には3つのクラスが関係していて、
FilterChain - フィルタを実際に行う仕組み
FilterList - フィルタの順序リスト
Filter - 実際の処理内容
このうち、FilterList、Filterを書くことになる。
0664nobodyさん
2005/06/16(木) 17:31:03ID:???グローバルフィルタ
BASE_DIR/GlobalFilterList.class.phpを作成
BASE_DIR/GlobalFilterList.class.php
class GlobalFilterList extends FilterList{
function registerFilters(&$filterChain,&$controller,&$request,&$user){
require_once(<filter-file-path>); // 利用するfilter分だけ繰り返し
$filterChain->register(new <filter名>); // 利用するfilter分だけ繰り返し
}
}
モジュールフィルタ
BASE_DIR/modules/<module名>/<module名>FilterList.class.phpを作成
<module名>FilterList.class.php
class <module名>Filterlist extends FilterList{
function registerFilters(&$filterChain,&$controller,&$request,&$user){
require_once(<filter-file-path>); // 利用するfilter分だけ繰り返し
$filterChain->register(new <filter名>); // 利用するfilter分だけ繰り返し
}
}
0665nobodyさん
2005/06/16(木) 17:31:45ID:???<Global|module名>FilterList.class.phpの中でrequire_onceする時にパスを書くので、
そのパスと合ってさえいれば適当な場所でよい。
<filter>.class.php
class <filter名> extends Filter{
function execute(&$filterChain,&$controller,&$request,&$user){
static $loaded;
// ActionChainやAction::forwardを使った時にフィルタが複数回適用されるのを防ぐ
if($loaded == NULL){
$loaded = TRUE;
// 前処理フィルタ
...
// filter chain の次のフィルタを実行
// pre-filterとpost-filterの分岐点
$filterChain->execute($controller,$request,$user);
// 後処理フィルタ
...
}else{
$filterChain->execute($controller,$request,$user);
}}}
[捕捉]
上の <Global|module名>FilterListは FilterListのregisterFiltersをオーバーライドして
Filterの読み込みと登録をしているが、コンストラクタで読み込む方法もありっぽい。
その場合は、
class <Global|module名>FilterList extends FilterList{
function & FilterList(){
require_once(<filter-file-path>); // 必要な分だけ
$this->filters[] = new <filter名>; // 必要な分だけ
}}
となる。元のregisterFiltersは$this->filtersをカウントしてregisterしてくれる。
0666nobodyさん
2005/06/17(金) 00:54:35ID:M5DVt6+60667nobodyさん
2005/06/17(金) 04:20:04ID:???by ショーン・カー
0668nobodyさん
2005/06/17(金) 11:59:25ID:???やって来なくていい。
0670nobodyさん
2005/06/18(土) 12:06:50ID:1zysAWYsハードディスクがぶっ壊れた
0671nobodyさん
2005/06/18(土) 20:56:20ID:???俺は見ている、役立っている。わかんないヤツがgoogleで検索して
みにくるトキもあると思う。
へこまずに気がむいたらまた来てくれよな。
いろんな意見があることに甘えるやつもいるだろう。
俺はあんなこと言われたらヘコミまくるからさ。じゃね。
0672nobodyさん
2005/06/18(土) 21:21:28ID:???今落ちてるけど
0673nobodyさん
2005/06/19(日) 03:04:25ID:???つかミラーもねーのかよ
ダウンロードしたいのに〜
0674nobodyさん
2005/06/19(日) 06:09:40ID:???0675nobodyさん
2005/06/19(日) 14:00:36ID:???0676nobodyさん
2005/06/19(日) 16:01:49ID:???こんなレベルの管理しかされていないものを組み込むのは
結構リスキーなんじゃないかと思えて来た…
■ このスレッドは過去ログ倉庫に格納されています