【PHP】Phrameを使う【フレームワーク】
レス数が900を超えています。1000を超えると表示できなくなるよ。
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
0809nobodyさん
2005/07/09(土) 19:17:33ID:???> 特にサーバーサイド処理がなく、
> ただテンプレだけを表示したい場合でも
> ActionとViewを書かないといけないのでしょうか?
いいえ。
0810nobodyさん
2005/07/09(土) 22:41:55ID:???> 特にサーバーサイド処理がなく、
> ただテンプレだけを表示したい場合でも
> ActionとViewを書かないといけないのでしょうか?
はい。
0811nobodyさん
2005/07/09(土) 23:04:46ID:VpCtmobf> 特にサーバーサイド処理がなく、
> ただテンプレだけを表示したい場合でも
> ActionとViewを書かないといけないのでしょうか?
ごめんなさい。
0814nobodyさん
2005/07/10(日) 17:10:59ID:???ありがとうございます。シンプルにリダイレクトしておきました。
>>808
イレギュラーな静的ページも
Mojaviのモジュール内に収めた方がすっきりするかなと思ったんですよ。
>>809-813
えーと、基地外の方ですよね?
0816nobodyさん
2005/07/10(日) 18:12:16ID:???想像力が異常に欠如したお前には
動的システムの中にイレギュラー的に静的ページが発生するという経過的事態が
理解できないんですね?
0817nobodyさん
2005/07/10(日) 18:38:50ID:???藻前から見た基地外がこれだけ発生したということは、藻前自身が基地外である可能性について胸に手を当てて考え直せ。
0819809
2005/07/10(日) 19:12:39ID:???いいえ。
0821nobodyさん
2005/07/10(日) 22:14:58ID:???いいえ。
…こんどは意見があったね。>809
たぶん、こんな質問をするヤツには
809が正解。
フレームワークを使う意味や、何人か共同で作業する場合は
810の方がいい。理由がわからないならフレームワークを使うことは
効率が悪いのでよしたほうがいい。
動けばいいなら好きにすればいい。
正解を誰かに決めてもらえないと進めないのか。もっと自由でいいと思う。
>イレギュラー的に静的ページが発生する
イレギュラー的ってどういうこと?バグ?
想定できるのであれば、そのように作ればいいだけのこと。
「そのように」というのも決めてもらいたいのか。
自分が理解できない次元を基地外とカテゴライズするのはやめたほうがいい。
教育を受けた人間はそういうもんじゃない。
若造のために年寄りからまじめな助言だ。
最後の一言は余計かもしれないが、想像力のない阿呆へのレスはこれで最後にしておく。
じゃね。
0822821
2005/07/10(日) 22:25:08ID:???悲しくなってきた。いや802の発言はいいんだがその後がさ。
多分「初心者です。勉強しようと思っています。」
って子なんだろうけど。…チラシの裏ご容赦。
0823nobodyさん
2005/07/11(月) 04:42:18ID:???http://iteman.typepad.jp/blog/files/hustling-mojavi.html
ここにあるようなフィルタはかけてないです。
それで特に問題なく動作しているようですが、
このフィルタがいるようなケースってどんな場合が考えられますか?
0824nobodyさん
2005/07/11(月) 09:27:50ID:???そらいろいろあるわな
0826nobodyさん
2005/07/12(火) 01:18:23ID:???このフィルタさあ、HTML_QuickFormと合わせて使うとさ、
magic_quotesが1の時ってリクエストパラメータに2回
stripslashesがかかるような気がするんだが、、、
mojaviのリクエスト処理時と、HTML_QuickFormのリクエスト処理時にも
同じようにstripslashesしてるところがある。
俺のやり方が間違ってんのかなぁ、、、
0828nobodyさん
2005/07/12(火) 19:24:16ID:???おまいら、話の流れがさっぱりわかりませんよ。
>>823の言わんとしてるのは
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$_GET = array();
$_GET = &$request->getParameters();
} else {
$_POST = array();
$_POST = &$request->getParameters();
}
をやる必要あるの?って話じゃないの?
そこの解説ページにのってるフィルタの主な処理はコレ↑だけだしね。
とりあえず、Mojaviの他の部分で$request->setParameter()した場合の整合性合わせる用でしょ。
で、>>824は>>823へのレスだろうか?イマイチ意味がつかめなかった。
そこへ>>825==>>802(?)が再登場?(だとしたらウザイです)
何がなんだかわからん。
>>826はレスしてるように見えて、実は関係ない話くさいです。
ハイハイそうですね。stripslashes2回呼ばれちゃいますね。
でもフィルタは関係ないですよ。Mojaviの中でstripslashesしてるのはController様です。
このことから考えてMojavi2とQuickFormは仲悪そうだね。互換性に関して問題ありと。
現状での解決策としてはmagic_quotes変えるか、パッケージのソースを適宜書き換えるしかなさそうな悪寒。
>>827さん、俺も使ってないのでわかりません。
というわけで以上、チラシの裏でした。
0829nobodyさん
2005/07/12(火) 19:48:58ID:???外からのパラメータのコンテナを書き換えるなんて
かなりお行儀が悪いと思うけどどうなんだろう。
0830nobodyさん
2005/07/12(火) 21:11:30ID:???URL_FORMAT 定数を PATH フォーマットにした時の為のフィルタじゃないかな?
Action に偏移する前に一度だけ実行するような書き方になってるし、
Request::setParameter については関係ない or 考えてない気がする。
0831825
2005/07/12(火) 21:45:10ID:???802の名誉のためにいうけど810です。
わからないならいちいちレスしなくていいよ。
ウザイって漢字で書けるかい?
たいていこの言葉をつかう人は馬鹿っぽいのだが…。
0832nobodyさん
2005/07/13(水) 00:39:36ID:???823のフィルタがPATHフォーマットの場合にどういう効果をもたらすの?
ソースを見る限り、サブミット変数とRequestのパラメータを一致させてる以外に何をしてるようにも見えないんだけど。
0833nobodyさん
2005/07/13(水) 01:35:06ID:???setParameterの整合性が目的ならおかしいな…
0834nobodyさん
2005/07/13(水) 05:16:19ID:???なんか誌面(まるごとにも載ってる)さくほど、便利とはおもわないけど。
0835nobodyさん
2005/07/13(水) 05:22:49ID:TKrqqpsoいちいちゲッターセッター書くのと、いちいちnewするのとどっちか好き?
いや、どっちでもいいんだけど、、、(本質的な問題じゃないし)
0836nobodyさん
2005/07/13(水) 09:19:08ID:???Request が持つパラメータの生みの親は Controller::parseParameters()
1. HTTP GET 変数の内容を取得。
2. URL_FORMAT が 2 なら、環境変数なりサーバ変数から
PATH_INFO を手に入れて適当に分解、1 の結果へ上書き。
3. HTTP POST 変数で 2 の結果を上書き。
4. 仕上げに magic_quotes_gpc が有効になってればアンエスケープ処理。
>>823 のフィルタはこれをもう一度 HTTP GET/POST 変数に戻してる。
…という事だろう。書いてて不安になってきたぜ。
0837nobodyさん
2005/07/13(水) 10:18:54ID:???Mapleマジお勧め
クラス内で、newなんてしないで
DIコンテナ使って依存性排除した方が良いよ
コンポーネント主体の開発にするとテストが楽なのも確か
DAO・DTO・Logic作って
ActionはLogicの呼び出しとViewへの値返却だけ
って感じにすると開発も楽だよ
0839nobodyさん
2005/07/13(水) 16:42:00ID:???Mojavi内ならそうだけど
QF側ではリクエストパラメータ直見してるから、
フック的にリクエストパラメータを再設定してからQFに渡したりは出来ないじゃん。
setParameterの存在意義、いまいちわかんね。
0840nobodyさん
2005/07/13(水) 23:45:46ID:???いや、mojavi内部に保持してる
リクエストパラメータへのリファレンスを
$_GET、$_POSTに割り当ててるから
QFを生成する前にsetParameterしてやって
かつQFのリクエストメソッドと一致していれば
QFにそのsetPrameterの反映はできるよ
ただQF自体のリクエストの保持の仕方が
生成時に$_GETか$_POSTを単純にコピーしてるだけみたいなんで
生成してからは無理っぽい
ていうかsetParameter自体いらないけどな
0841nobodyさん
2005/07/14(木) 02:16:39ID:???本当に使われてるのかよ…外から見ても分からないだけか?
0842nobodyさん
2005/07/14(木) 03:05:39ID:gLe9fCRh何か良い方法はないでしょうか?
Attributeにフラグをセットして、それで判断しても出来ますが
Mojavi2に既に実装されている機能のみで出来ないかなぁと。
0843nobodyさん
2005/07/14(木) 05:04:03ID:Dw3R1ZsmMVCだろ?
0844nobodyさん
2005/07/14(木) 06:22:55ID:???0845nobodyさん
2005/07/14(木) 15:08:45ID:???遅レスですが・・・
依存性注入(この言葉には賛否両論あるみたいですが)っす
setter/getter書くの面倒ですが
それなりの対価は得られると思います
DIContainer2使うとPear使えるようになったり
factoryメソッドに注入とか出来るので
お勧めっす
0846nobodyさん
2005/07/14(木) 20:00:00ID:???お前だってあるだろう、そういう時。
0847nobodyさん
2005/07/14(木) 20:15:36ID:???煽りじゃなくて意味不明なんだけど。
じゃあMVCじゃなくてMAVCじゃん。
0848nobodyさん
2005/07/14(木) 20:18:32ID:???0849nobodyさん
2005/07/14(木) 20:34:23ID:???MVCパターン(?)とそのフレームワークと同一視してないかい?
たまたまコントローラ・ビューという言葉が同じだからといって
残りのアクションがモデルと同じと勝手に解釈しちゃだめだよ。
0850nobodyさん
2005/07/15(金) 02:51:15ID:wDw2qttAsetArrayByRefメソッドおかしくない?
Smartyクラスを assign_by_ref($array);
で呼んでるんだけどassign_by_refは以下の通り。
function assign_by_ref($tpl_var, &$value)
{
if ($tpl_var != '')
$this->_tpl_vars[$tpl_var] = &$value;
}
引数が2つあるから
Missing argument 2 for assign_by_ref()
が出るんだよ。
0851850
2005/07/15(金) 03:27:54ID:???Smartyが仕様変更したんかな?
function setArrayByRef(&$array) {
$keyArray = array_keys($array);
for ($i = 0; $i < sizeof($keyArray); $i++) {
$key = $keyArray[$i];
$this->engine->assign_by_ref($key,$array[$key]);
}
}
0852nobodyさん
2005/07/15(金) 13:35:11ID:???0853nobodyさん
2005/07/15(金) 14:11:04ID:???かなり素敵な変更なので、4.4.0は残念ながら見送り決定。
正しい仕様になったというが、なんか納得できない。
0854nobodyさん
2005/07/15(金) 14:35:16ID:???スペルミスとかの可能性大ですが、Mapleの使い方がよくわかってないため設定が正しいのか知りたいです。
どなたかよろしくお願いします。DIContainer2を使ってます。
ちょっと略してますので、以下の設定であっているのなら他の部分を当たってみます。
■Menu.class.php(アクション)
class Menu {
var $logic; var $dto;
function execute(){
$this->logic->makeMenuArray($this->dto);//<--この行でエラー
//Fatal error: Call to a member function on a non-object in PATH TO FILE line XX
中略
return "success";
}
以下セッタ・ゲッタ
}
■Menu_Logic.class.php
class Menu_Logic {
var $menuDao;
function makeMenuArray(&$dto){
$this->menuDao->makeMenuArray($dto);
}
以下セッタ・ゲッタ
}
■Menu_Dto.class.php
class Menu_Dto {
var $result;
var $a;//リクエストパラメータ
以下セッタ・ゲッタ
}
0855854続きです
2005/07/15(金) 14:36:07ID:???class Dao_MenuDao {
function makeMenuArray(&$dto){
return true;
}
■maple.ini
[DIContainer2]
filename = dicon.ini
[InjectRequest]
menuDto =
[Action]
logic = ref:menuLogic
dto = ref:menuDto
[View]
success="menu.html"
■dicon.ini
[DIContainer]
menuLogic = "component://menu.logic"
menuDto = "component://menu.dto"
menuDao = "component://dao.menudao"
[menuDao]
[menuLogic]
menuDao = ref:menuDao
[menuDto]
a = 1
どなたかよろしくお願いします。
0856nobodyさん
2005/07/15(金) 14:40:23ID:???おしえてあげません♥
0857854
2005/07/15(金) 14:55:41ID:???すみません。コメントだけいれてそのままでした。
Fatal error: Call to a member function on a non-object in PATH TO Menu.class.php line XX
0858854
2005/07/15(金) 16:13:00ID:???(Mockで確認しました。)設定の仕方が拙そうなのですが
どなたか
前記のAction Logic DTO DAO を使用した設定ファイルmaple.ini, daicon.iniの
書き方を教えていただけないでしょうか。
よろしくお願いいたします。
0860nobodyさん
2005/07/15(金) 19:18:24ID:???でないかも。
0861nobodyさん
2005/07/15(金) 20:02:42ID:???DIContainer2のdicon.iniで
コンテナ内のコンポーネントを参照するには
dicon://ComponentKey
と書きます。つまり
[menuLogic]
menuDao = "dicon://menuDao"
こうなります。
0865nobodyさん
2005/07/17(日) 01:36:27ID:2PxbHQ5lセッション使わないページの閲覧でも、モジャ内部でユーザコンテナの初期設定してるから
セッションリソースが消費されてくじゃん。
数十万アクセス/日程度になると、
そんな実トランザクションの伴わないリソース消費も半端じゃなくなると思う。
ハンドラ書き換えて、モジャ内初期設定しかされていなければ
DBへの書き込みは行わない等の処理を行えば防げそうだけど、
そんなことしてる人いる?
もっとキレイに出来ないものかとも思うけど。
0866865
2005/07/17(日) 01:51:32ID:???authenticated|b:0;attributes|a:0:{}secure|a:0:{}
がセッションハンドラのwriteメソッドに渡ってくるから、
それならDBへのinsertは無視するの。
かなり無理矢理感あるけどどうでっしゃろ。
0868nobodyさん
2005/07/17(日) 04:28:19ID:???factories.iniに
[storage]
param.auto_start="Off"
って書けばいいんじゃないの?
もしくは>>867のようにStorage自分で書くか。
0869865
2005/07/17(日) 06:26:51ID:???ストレージってM3だよね?
使ってるのM2なんだスマソ。
M2でもセッション使わない設定できるけど、
ログインユーザにはセッション使いたいから、
一括で使用禁止にはできない。
とはいえ、
ゲストユーザ(おそらく大多数)のアクセスのたびに
セッションがいちいち作られちゃうのは、リソースがもったいない。
だからセッション変数を読むだけの時は、
たとえsession_startしていてもリソースを保存しないように
しようってことです。
0870nobodyさん
2005/07/17(日) 18:34:27ID:???こりゃ使えんなぁ…
0871nobodyさん
2005/07/18(月) 07:34:11ID:???0872nobodyさん
2005/07/19(火) 05:17:48ID:???Actionの成果物を渡すだけだから
ほとんど書くことないよなー
もっとシンプルにできねーもんかな
0873nobodyさん
2005/07/19(火) 13:12:59ID:???例えばテンプレートがテーブルとかで形成されててそのセルに
html的なのを差し替えて入れなきゃならない場合なんか
Actionでデータを入手してViewで整形したり結構するんだけど
普通はActionとかでやっちゃうのかな。
0874nobodyさん
2005/07/19(火) 21:14:18ID:???入っちゃってるパターン。
>>873はテンプレートとプレゼンテーションロジックを
キッチリ分けてるパターン。
俺は>>873派。
0875nobodyさん
2005/07/21(木) 12:56:22ID:???フレームワーク導入に疑問がわいてきた…
導入の過程で学ぶ部分は多かったけど…
0877nobodyさん
2005/07/21(木) 14:07:22ID:???そんなことを憶測で語られてもw
まあ色んな意味で標準的なモノ作るのには有用だと思うけどね。
ポータル級のアクセスを前提とした場合、
既存フレームワークを使うのは違うと思う、たぶん。
0878nobodyさん
2005/07/21(木) 14:19:45ID:???別に憶測で言っているわけじゃないよ。
目的にあった道具を選ぶ事ができない -> プログラミングに向いてない、って言ってるだけだもの。
そもそも、フレームワークを使うメリットの無いところにフレームワーク使ってるだけじゃないの?
でもって、素(変な表現だけど)のphpで書いた方が圧倒的に早い! -> フレームワーク導入に疑問が!
って発想が理解できない。
そもそも何の為にフレームワーク導入しようと思ったわけ?
0879nobodyさん
2005/07/21(木) 20:26:01ID:???俺も全然使わなくても済むような事にMojavi使ってるよ。
遅くなるけど、使いたいから使ってる。
でもs2php5(フレームワークじゃねないけど)を使うメリットがわからない・・・。
わざわざMojavi内で使う必要もないと思うし。
それを必要とするくらいなら、素直にJava使う。
0881877
2005/07/21(木) 21:34:50ID:???実際に使ってみないことには向いてるか向いてないかなんて
わからないじゃん。
まあおかげでロジックは独立性が高いんで、
フレームワーク自体を差し替えるのもかなり簡単だよ。
Javaと同じ方向を目指すんじゃなくて、
PHPのアドホックな良さを生かすフレームワークが出てきても
いいんでないかなぁと思う。
美しさや整合性よりも実用性こそがPHPの美徳なのに、
行儀の良さのためにパフォーマンスを犠牲にするのは
ちょっと違くないかなぁと思う部分はあるなぁ。まあ好みだろうけど。
0883nobodyさん
2005/07/22(金) 01:53:49ID:???そういえば夏休みの時期か。
0885nobodyさん
2005/07/22(金) 08:11:38ID:???画像、パスはどうしてますか。
0886nobodyさん
2005/07/22(金) 10:31:50ID:???0887nobodyさん
2005/07/22(金) 21:32:53ID:???ウンコですねぇw
変更に強いようにフレームワーク使ってるのに
画像のことまでは頭回りませんか?
もう一度言いますけど。
ウ ン コ で す ね ぇ w
0888nobodyさん
2005/07/23(土) 00:27:29ID:???画像のリンクどーやってるのか不思議です。
たとえば
HTML
http://fandc.co.jp/engine/module/catalog/action/detail/item/1
画像パス
src=/media/catalog/pc/fc01/majo2.jpg
どうやってるんでしょうか。
0892nobodyさん
2005/07/23(土) 12:35:11ID:???そのサイト、以前もURL貼ってたな・・・
下手な宣伝乙
0894nobodyさん
2005/07/23(土) 16:51:26ID:???0895nobodyさん
2005/07/25(月) 14:34:17ID:???本家サイトのフォーラムにいろいろ貼ってあるよ
M2
ttp://www.weddingworld.co.uk/
ttp://xchangezone.com/
ttp://www.onpointtactical.com/
ttp://www.redcarpethost.com/
ttp://www.linkamigo.com/
ttp://www.maximonline.de/index.php/Maxim/Index
M3
ttp://reportcafe.com/
http://www.kuato.org/
まだまだM3ベースのサイトは少ないみたいね
0897nobodyさん
2005/07/25(月) 16:10:54ID:???フレームワークのせいで遅いと判断するんだw
0898nobodyさん
2005/07/25(月) 16:34:58ID:???実際自分で作ってても遅いし。
快適性よりも、
それだけ負荷がかかっていると考えると、
アクセスが集中した時がコワイとおもふ。
0899nobodyさん
2005/07/26(火) 02:00:11ID:???http://reportcafe.com/index.php
↑ここ見てみたが、全然速いじゃん。
0901nobodyさん
2005/07/26(火) 02:20:46ID:???0902nobodyさん
2005/07/26(火) 08:53:42ID:???もっと晒せよ
韓国のやつよかったわ。
0903nobodyさん
2005/07/26(火) 12:02:00ID:???いや、でもサインアップして中をのぞいたわけじゃないから何とも言えないけど。
ユーザー登録とかして色々使ってみた香具師いたら感想求む。
あと、韓国語読める香具師の感想も求む。w
0904nobodyさん
2005/07/26(火) 17:37:24ID:???0905nobodyさん
2005/07/26(火) 17:42:23ID:???最近adSenseって引数付きURLでも問題なく広告出るようになったんだね
Mojavi使うならmod_rewriteでhtmlっぽいURLに偽装しなくちゃなあと思っていたが。
0907nobodyさん
2005/07/26(火) 19:49:35ID:???パフォーマンスに問題なしってことでおk?
0908nobodyさん
2005/07/26(火) 20:11:36ID:???つーことはM3?
レス数が900を超えています。1000を超えると表示できなくなるよ。