05/10/07 23:26:18
>>368
フレームワークとオブジェクト指向とは関連性があるわけじゃないとも思う
って関連ありまくりじゃん。
OOのエッセンスが分かちがたい程たっぷり入ってると思うよ。
OOを使わずともライブラリ集は作れるだろうが、
フレームワークは作りにくいだろう。
370:nobodyさん
05/10/08 00:07:12
>>368
今時「PHPでOOPすると性能が落ちる」とか言ってるのは時代錯誤もいいとこ。
371:367
05/10/08 01:39:24
ViewHelperで解決した(゜д゜)
372:nobodyさん
05/10/08 01:55:47
デストラクタもないのにオブジェクト指向ってありえるんだろうか?
373:nobodyさん
05/10/08 02:24:56
なんだこの掃き溜めは
374:nobodyさん
05/10/08 02:26:59
デストラクタがないとオブジェクト指向なプログラミングができない、
という思考回路が判らない。言語仕様に捉われすぎてる悪寒。
375:nobodyさん
05/10/08 02:28:24
ありだと思うな。
Cでもオブジェクト指向でまとめられたライブラリやツールキットは山ほどあるし。
オブジェクト指向プログラミング自体はべつに大抵の言語で可能だとおもう。
たしかにPHPはオブジェクト指向言語として設計されたわけじゃないが、
これとPHPでオブジェクト指向プログラミングをする事は矛盾しないだろう。
376:nobodyさん
05/10/08 02:45:50
てか5にはデストラクタもあるよ。
でもウェブアプリでデストラクタを使う機会はあんまりないだろ。
377:nobodyさん
05/10/08 05:08:37
>>372
あるよ
378:nobodyさん
05/10/08 05:09:53
>>370
時代錯誤というより、単に知識が乏しいだけだと思う。
379:nobodyさん
05/10/08 05:32:22
このスレでPHPによるオブジェクト指向プログラミングを否定している
連中は、オブジェクト指向じゃなくてC++ or Java指向になってるんじゃないか?
rubyもデストラクタは持ってないしな(GCがあるからだけど)。
380:nobodyさん
05/10/08 06:07:15
確かにウェブアプリじゃデストラクタなくても、なんとかなる。どうせ1回こっきりでプロセスごと終了するんだから。
そうすると、こったオブジェクト作ってもしょうがないじゃん。シングルトンとか、ウェブアプリでどれくらい意味あるのか。
381:nobodyさん
05/10/08 07:48:43
>>380
SingletonはDB接続に関するクラスで使ってるな俺は。
スゲー便利だしすっきりするなぁって思ったね。
要は使い方によるかなと。
382:nobodyさん
05/10/08 07:56:41
ほっといてやれよ。
383:nobodyさん
05/10/08 08:43:12
>>381
1回のアクセスでオブジェクトが全部ご破算になるWebアプリでシングルトンの意味はある?
$_db_ = new MyDB();
function getDB() {
global $_db_;
return $_db_;
}
:
:
//実際使う場所
$db = getDB();
これでいいんじゃない?
384:nobodyさん
05/10/08 09:07:34
>>383
グローバルオブジェクトを利用したSingletonの実装の一形態だろそれ
いいんじゃない? と言われりゃそうですねと言うしかないな
Java厨って実装から何から全部Javaと一緒じゃないと否定したがるのがうざいな
385:nobodyさん
05/10/08 09:16:29
>>383
意味が無いと思ったら使わなければいいだけの話じゃん
386:nobodyさん
05/10/08 09:45:38
PHP5にはデストラクタあるだろ。
387:nobodyさん
05/10/08 10:47:02
あるって何回も書かれてるってw
388:nobodyさん
05/10/08 10:56:20
383のやり方だとグローバル空間が汚れるじゃん。
_を使うのはやっぱり苦肉の策だし、クラシックな作法だろう。
389:nobodyさん
05/10/08 11:00:17
おれはsingltonならstaticで書きます。
390:nobodyさん
05/10/08 14:36:34
DB_DataObjectなんかは>>383みたいな感じだね
Java厨というよりJavaを意識しすぎたPHPユーザー、みたいな印象を受ける
Javaを意識するあまり、「PHPじゃないと出来ないことをしないといけない」みたいな傾向ってあったと思う
最近はその対象がRubyに移ってきたみたいだけど
391:nobodyさん
05/10/08 16:18:59
俺はDB接続部分をSingletonにして、各テーブルに発行するSQL文などを集めたクラス
がgetInstanceするって感じに使ってるけど、おかしいのかな?
各テーブルというと語弊があるかな。ある程度のテーブルを纏めたクラス。
JOINする場合(というかJOINしない場合が珍しいけど)は基となるテーブルのクラスに入れる。
$a = Atables();
$b = Btables();
print_r($a->getSelect());
print_r($b->getSelect());
って感じで。
全然スマートじゃないなぁとは思うけど、
DB周りはどうやったらスマートになるのか
全然わからん。解説サイトではロジック部(?)とSQL発行部
が混じっているが、個人的にそれはすごい抵抗があるし。
誰かご教授下さい・・・。
あ、今月のPHPプログラマーズマガジン無料だって!
JPSPAN扱ってるね。あれ@ITかなんかで廣川さんが
解説してて、それ以来使ってるけど、あれ使ってる人って
聞いたことないから不安になってた。
スレ違い&長文すまん。
392:nobodyさん
05/10/08 16:42:29
OOにデストラクタを重視する奴は意味が分からないな
前時代の遺物的存在じゃん
後片付けは言語側で勝手にやってくれる方が今風だし、キレイだ
393:nobodyさん
05/10/08 17:14:13
C++でOOP入りした人は感覚的に染み付いていて、抵抗あるんじゃないかな。
オレも昔はそうだった。ruby, PHP, C#で、すっかり骨抜き?にされたけど。
なんつーか最初の頃は堕落した感じがしたもんだ。
(良い悪いとかじゃんくて、楽チン→堕落、みたいな妙な感覚)
394:nobodyさん
05/10/08 17:52:40
お、お前ら・・・お前ら何言ってんだ??
お前らの会話の内容がサッパリ分からんぞ、DQNな漏れは。
もうね、難しいとか難しくないとかいうレベルじゃない。
何の予備知識もないスワヒリ語を聞いてる感じ。
395:nobodyさん
05/10/08 18:06:12
>>394
それはDQNだからじゃなくて単にオブジェクト指向開発用語を知らないだけだと思う
つまりそれを勉強すればこの会話の意味はすっかり解るだろうし
勉強して損ないものなのでぜひ習得してみるべし
396:nobodyさん
05/10/08 18:38:45
>>395
勉強できる Web をうpきぼん。
397:nobodyさん
05/10/08 19:05:01
>>392
勝手に行うのはメモリ開放だけだろ。
さらにPHPはfinally構文がない。
398:nobodyさん
05/10/08 21:14:56
finally構文ってオーバーライドを禁止するfinalのことか?
finalならPHP5にあるが。
399:nobodyさん
05/10/08 21:17:47
>>398
例外処理のfinallyでしょ。
Javaなら以下のように書けるけど、PHPではfinallyが書けないので
リソースの破棄を行いたい場合などに二度手間になることがある。
try {
例外の起こりそうな処理
} catch (Exception e) {
例外発生時の処理
} finally {
例外が起きても起きなくても実行したい処理
}
400:383
05/10/08 22:26:28
>>390
> Java厨というよりJavaを意識しすぎたPHPユーザー、みたいな印象を受ける
JavaはHelloWorldくらいしか書いたことないな。
俺のよくいじる言語はSmalltalk, Ruby, PHP, JavaScriptだよ。
あとSchemeも好きだな。
わざわざclass定義してstatic変数用意して2つもメソッド書いて、
結局>>383のたった6行でできることをかえって複雑にするのはアホらしい
ってことだ。
401:nobodyさん
05/10/08 22:41:27
まあ、「Singletonって書きたいだけちゃうんか」というコードが多い
という気はする。
402:nobodyさん
05/10/08 22:43:38
>>309
>>他にもデメリットとして、smartyのようなテンプレートエンジンを使うと実行速度がぐっと下がるし、
これはウソでしょ。
403:nobodyさん
05/10/08 22:45:32
Singletonパターンってイディオムみたいな感じだよね。
確かに無理して本に乗ってる書き方通りにしなくても良いとは思う。
Javaみたいにマルチスレッド環境になることもないし。
404:nobodyさん
05/10/08 23:03:48
383の書き方だと、呼び出し側のコードを見ただけでは
それがSingletonなのかどうかは判別できないじゃん。
確かに伝統的な書き方は記述が面倒だけど、
一人の思考ではなかなか太刀打ちできない強度があるもんだよ。
たくさんの頭脳を経た思考の蓄積や時間による淘汰は馬鹿に出来ない。
405:nobodyさん
05/10/09 00:09:28
>>400
わざわざ冗長に見える記述をするのはそれなりの理由があるからで、
それが感じられないならオブジェクト指向自体が冗長だろう
ていうかSmalltalkとかRubyのほうがよりオブジェクト指向が強いと思うのだが
406:nobodyさん
05/10/09 00:13:58
冗長って何?
407:nobodyさん
05/10/09 00:26:12
>>406
君は初心者向けの本とかをたくさん読んできなさい
フレームワークスレはまだ早い
408:nobodyさん
05/10/09 01:17:58
>>400
class aClass {
function &singlton(){
static $me;
if(!is_object($me)) $me =& new aClass;
return $me;
}
}
$instance =& aClass::singlton();
これがそんなに複雑かな?
わざわざgetDB()とか$_db_とかというのをグローバルな名前空間に
つくる方が複雑化を招く気がする。
実際に作る時はこのままではなんとなく気持ち悪くてスタティックな
コールであることを保証したりしちゃうから、そういうときはたしかにphp4で
ちょっと損した気分になるね。
409:nobodyさん
05/10/09 03:49:12
PHPでのシングルトンには、「リソースを効率よく使うため」ではなくて
「意図を表すコーディング」としての効果を期待しろ、ということで。
410:nobodyさん
05/10/09 07:15:34
>>400
なんか実用的なプログラム書いた事無くて、頭の中で屁理屈こねくり回してるって印象を受けるな~
411:nobodyさん
05/10/09 07:19:12
PHPに限らずアクセスレベルなんかも、
実際に使っちゃうリスクへのヘッジというよりも
意図を埋め込む意味合いの方が強いよね。
412:nobodyさん
05/10/09 11:23:06
意図なんてコメントとして書いておけばよい。
413:nobodyさん
05/10/09 12:57:50
>400
そもそもシングルトンで重要なのは、コンストラクタを private とかにして、
オブジェクトの生成が出来る箇所を限定することの方だろ。
414:nobodyさん
05/10/09 14:48:09
↓これはシングルトン?
/**
* シングルトンとして使ってください(オブジェクトは1度だけしか生成しないでください)。
*/
class Example
{
:
}
415:nobodyさん
05/10/09 14:58:42
プログラムは改変されていくものだから、
コメントがいつの間にか嘘の説明にならないよう、
むしろ少なめ推奨がモダンな作法。
独善的持論をぶってる奴はもう少し勉強しれ。
416:nobodyさん
05/10/09 15:04:08
DB鯖がセッション用と顧客データ用と別だったりとかさー
DBオブジェクト複数接続先で使いたい時とかって割と無い?
417:nobodyさん
05/10/09 15:06:04
↑解かりづらいか、「DBオブジェクトを接続先別に複数生成したい時」と言い換え
418:nobodyさん
05/10/09 15:18:56
俺はSingletonなDBオブジェクトにコネクションコンテナを持たせてる
419:nobodyさん
05/10/09 16:51:24
>>415もまた独善的持論なわけだが。
420:nobodyさん
05/10/09 16:53:47
ハイハイそうだね
421:nobodyさん
05/10/09 18:16:42
あー、415のせいで荒れ始めただろ……責任とって下さい、415
422:nobodyさん
05/10/09 18:49:57
何で糞ガキがこんなスレに迷い込んできたんだ…。
423:nobodyさん
05/10/09 18:52:26 j3jR0Qvz
ままー おなかすいたー
424:nobodyさん
05/10/09 18:56:57
>>415
>プログラムは改変されていくものだから、
まあ、その通り。
>コメントがいつの間にか嘘の説明にならないよう、
確かに気をつけないと。
>むしろ少なめ推奨がモダンな作法。
いきなり妄想が入ってきました。
>独善的持論をぶってる奴はもう少し勉強しれ。
独善的持論乙
425:nobodyさん
05/10/09 19:30:17
>>424
だから勉強してから書けって言ってるだろ?
お前の浅薄な意見なんて何の参考にもならねーんだよ。
426:nobodyさん
05/10/09 19:38:21 QrQMlw6M
ソースのコメントを少なめ推奨している、モダンな作法とやらのポインタくれ。
427:nobodyさん
05/10/09 19:38:25
お子ちゃまたちは
XP(エクストリーム・プログラミング)についてなど
調べてみようね。
最近よく出版されてる軽めのプログラミング読本も
結構参考になるよ。
428:nobodyさん
05/10/09 19:39:39
底が知れたなw
一瞬俺の知らない技術体系が発生してるのかとおもた
429:nobodyさん
05/10/09 19:45:20
XPってコメント少なめ推奨してるのか?
430:nobodyさん
05/10/09 19:50:40
コメントなきゃ判らんコードはリファクタリング候補ってこと
量が少ないほうがいいとかモダンとか言うのはオカルトつーか誤認
431:nobodyさん
05/10/09 19:56:38
>>430
同じことを簡単に言ってるだけだろ。
まあケチつけたいだけの奴は
Singletonをコメントで実現しとけばいいんじゃねーの?
432:nobodyさん
05/10/09 20:03:13
全く違うよ。XPのレトリックが読めてない典型ワナビー君じゃん。
コードとの差異が出ないようにコメントを最小化する、なんてのは
アジャイルでもなんでもないし、リファクタリングしないことが前提の
固定的な開発思想でしょ。
433:nobodyさん
05/10/09 20:07:19
ここはフレームワークについて語るスレですよ。OOPの話は↓でしない?
PHPでオブジェクト指向プログラミング
スレリンク(php板)
434:nobodyさん
05/10/09 20:18:50
よしフレームワークにおけるアノテーションやAOPの意義について考えようぜw
435:nobodyさん
05/10/09 20:29:41
>>432
あー、お前の言うことにも一理あるね。
というか、お前が俺の言葉をどのように捉えたのかは理解したよ。
言葉のツラだけ捉えればまさにオカルトという言葉が相応しいかもしれない。
世の中には言葉をそういう風に使って金儲けや愚かな事をする輩が溢れているから
ダイレクトにそう捉えられたのも無理はないと思う。
だけど俺が言いたいのはそういうことじゃないんだよ。
なんか議論がつまらない方向に発展していきそうなのでこのへんで切り上げますが。
436:nobodyさん
05/10/09 20:35:02
>>435
上の流れがあるから指摘の意義は判ってる奴は普通に判ってるだろ
幼稚な煽りで見れたものじゃないがな
437:nobodyさん
05/10/09 22:21:08
>>434
PHPでリフレクションを利用したコメントアノテーションはちょっと興味ある
言語仕様になくても無理矢理実現できるのがPHPらしいというかなんと言うか
438:nobodyさん
05/10/09 22:33:52
まあ今のとこお守りみたいなもんでコメントと大差ないけどね
439:nobodyさん
05/10/09 23:00:25
>>434
XPはコメントとかコード外のメタデータや宣言を否定するわけじゃないっつの
それがリファクタを困難にするとも言ってない
読めるコードを書けっていう当たり前のことが言いたいだけなんです
440:nobodyさん
05/10/09 23:22:19
みんな理屈はいいから結論を書いてくれよ
>>414はアリ?ナシ?
441:nobodyさん
05/10/09 23:24:45
お子ちゃまは寝る時間ですよ
442:nobodyさん
05/10/09 23:40:49
オフィシャルではアノテーション導入する気はないみたいだなあ。
やっぱりコンパイラが対応してくれないと…フレームワークレベルでは実効力に欠ける。
Maple以外でDI+AOPなフレームワークってないのかな?
443:nobodyさん
05/10/10 00:43:37
>>440
本当に理屈は要らないんだな?
ナシ。
444:nobodyさん
05/10/10 02:00:10
フレームワークのメンテナが提供してるサンプルは
どれもこれもシンプル過ぎていまいち参考にならないなぁ
もっと踏み込んだサンプルをチボンヌ
445:nobodyさん
05/10/10 07:29:44
議論を読んでない俺が思うのは、開発手法の議論は他のスレでやってくれということだ。
つーかガチガチのクラス使いたいならJavaでやれ。
PHPでやらなきゃならん制約があるなら新スレでも立てるろや。
446:nobodyさん
05/10/10 07:35:31
俺が思うのは
フレームワークの開発がどれも停滞し過ぎということだ。
447:nobodyさん
05/10/10 09:25:29
YAMLってJSONみたいな物?
448:nobodyさん
05/10/10 09:35:59
>>442
上にも出てたけどpok。
実務レベルでどうか知らんけど、勉強用にはとても良かった。
>>446
最近はMapleが活発になってきたんじゃないかな?
449:nobodyさん
05/10/10 10:57:46
MapleってM3のDecoratorみたいな
CompositeViewを実現する機構がなくない?
そこが俺的には痛いッス
450:nobodyさん
05/10/10 11:04:05
>>447
違うね。
451:nobodyさん
05/10/10 11:09:10
>>450
どっちも汎用の構造化データ記法でしょ?
同じような物じゃないの?
452:nobodyさん
05/10/10 11:45:47
>>451
JSON と XML が同じようなものである程度には,
JSON と YAML は同じようなものだとは思うが,
一般的には「違うもの」として捉えられていると思う.
てゆーかJSONって形式としちゃ汎用とはいえ
例えばPHP→Javaのデータ転送にJSON形式使う奴なんていないんじゃないかと……
453:nobodyさん
05/10/10 11:50:50
構造をあらわすっていう超大雑把な括りに何か意味あんの?
454:nobodyさん
05/10/10 11:55:22
>>452
だがJSONはそれでいい
455:nobodyさん
05/10/10 12:03:23
>>453
意味っていうかプロトコルの一種だろ
やりとりのための約束ごととして決めておく。
絶対的な必然性はなかなかありえないから
「どっちでもいい」に落ち着きそうな気はする。
456:nobodyさん
05/10/10 13:49:15
強いて言えば
人間に読みやすく設計されてるのがYAML
JavaScriptに読みやすく設計されてるのがJSON
誰もが読みにくい代わりに高機能なのがXML
って感じかねぇ?
457:nobodyさん
05/10/10 13:54:12
確かにYAMLは人が見やすいなぁ
中庸っぽさがPHPと似てるかも
JSONも嫌いじゃないけど
458:nobodyさん
05/10/10 14:37:54
JSONは専らJavaScriptと連携するときに使う印象。
ところでMapleはPHP5には対応しないのかな?
Mapleの目指す方向からしてPHP5で書いた方がずっと楽&適してるように思うんだけど。
459:nobodyさん
05/10/10 14:44:41
前から4で続けると明言してる
やったことないけど、5じゃ動かんの?
460:nobodyさん
05/10/10 17:11:33
っていうかつまらん議論してるならコンピュータなんて捨てちまえ!!!
別に無くてもあまり生活に困らないぞ。
461:nobodyさん
05/10/10 17:17:24
>>460
この議論がつまらんと思うなら460にはそれが良かったんだろうな
幸せな人生を歩んでくれ
462:nobodyさん
05/10/10 19:13:07
Mapleって4なんだ。
プレゼンテーション層をActionだけにしたところは共感してるんだけど
機能的にはまだMojavi系の方が厚いっぽい。
463:nobodyさん
05/10/10 19:28:10
DIってのは簡単に言うと
器だけおいておくとフレームワークが勝手にオブジェクトを
放り込んでくれるウンコホウリナゲ!( ゚∀゚)つ=====o
みたいなことを言ってるのかな?
464:nobodyさん
05/10/10 19:38:53 +MnfvWOk
>>463
そんな感じかな。
465:nobodyさん
05/10/10 21:11:32
ウンコホウリナゲ!( ゚∀゚)つ=====oられるために
Mapleは設定ファイルを用意、
guessworkはプロパティーを用意すると。
Actionだけを見てざっと把握できるから
その点ではguessworkがいいかな…。
466:nobodyさん
05/10/11 12:40:17
勉強してる余裕ないから、いまだにguessworkしか使えない。(´・ω・`)ショボーン
467:nobodyさん
05/10/11 18:13:27
Mojaviで
属性をメソッドから返す作法が面倒くせーと思ってたけど(プロパティー用意で良くね?と)
内部条件によって属性を変えられるメリットがあるんだな。
Mojaviは知るほどに、「よく考えられているなー」という部分がある。
468:nobodyさん
05/10/11 19:47:53 G45STU1Q
>>467
Mojaviだからではなくて、ただの情報隠蔽だろ。
469:nobodyさん
05/10/11 20:54:40
mojavi4って一応作ってるんだな
ソース見る限りでは、完成には程遠いけど
470:nobodyさん
05/10/11 21:58:17
>>468
それもあるだろうね。
ただそれだけじゃなく、コードを書くことを前提としてると思うよ。
471:nobodyさん
05/10/11 23:15:49
>>470
??
属性をセッターゲッターで操るのはMojavi独自の実装ではなくて定石だろ?
472:nobodyさん
05/10/11 23:33:22
だな。俺もコードを書く時に「ゲッターロボ GO-!!」とか[セッターロボ GO-!!」とか言いながらやってるよ。
473:nobodyさん
05/10/11 23:34:34
単なるセッターゲッターじゃなくて
Actionにとっての設定的な項目を
メソッドの形で実装して返すのがMojavi流じゃん。
しかもプロパティーに対するアクセサじゃないから
セッターゲッターじゃないし。
設定ファイルで済むようなことを
なんでメソッド書きまでしなきゃいけないのかと疑問だったのだが、
確かに利はあるな、と思ったということ。
474:nobodyさん
05/10/11 23:35:27
利→理だね
475:nobodyさん
05/10/12 00:49:34
>>473
セッターゲッターの存在意義わかってる?
476:nobodyさん
05/10/12 02:03:55
>>475
いや当然普通に分かってるけど…。
なんかいまいち伝わらないみたいだな。
477:nobodyさん
05/10/12 10:36:29
>>476
RubyとかRailsの人のよく言う言語重要てやつのことかね。
設定ファイルなどに頼るな、言語で一回だけ書きゃいいのだ。というあの信条。
うちではJava系のひとのStrutsアレルギーでMojaviは使っていないのだけれど。
478:nobodyさん
05/10/12 15:07:00
>>181
遅レスだが
firefoxならOSXでも使えるんだね
昔はMacなんて置いてけぼりだったのに便利な時代になったなぁ
479:nobodyさん
05/10/12 18:11:38
オブジェクト指向的にSQLを組み立てられるソリューションをどなたか知りませんか?
分散DBにしたいので、DBアクセス部分はこっちで書こうと思っています。
SQLのみを書いて欲しいのですが、それに機能を限定したものが
なかなか見つかりません。
480:nobodyさん
05/10/12 23:10:35
PHPで最適なフレームワークはなに?
481:nobodyさん
05/10/12 23:23:10
一長一短で、定番はないよ。
482:nobodyさん
05/10/13 09:49:24
長所短所を比較しているところってないですか?
483:nobodyさん
05/10/14 04:53:33
>>476
いやいやわかってないってw
484:nobodyさん
05/10/14 07:20:42
?
分からないのはむしろ君の頭の中だが…。
そもそもがセッターゲッターの話じゃないわけで。
Mojaviを実際に使ったことあるかい?
485:nobodyさん
05/10/14 07:52:01
>>475と>>483はほっとけ
スルーしてりゃ消えるでしょ
486:nobodyさん
05/10/14 11:51:40
この板の人達はスルーすることを知らない
487:nobodyさん
05/10/14 13:55:39
技術者だから基本まじめなんだよ。
だいたいフレームワークスレで煽る意味が分からない…。
488:nobodyさん
05/10/15 13:24:45
>>487
煽る→怒った奴の中に自称女が現れる→女と証明してみろブサイコと煽る
→怒った女は、オッパイやパンツ写真をUP→みんな素人エロ画像にマッタリ
489:nobodyさん
05/10/15 16:04:32
>>488
うむ、とても平和な流れだ。
その流れを、このスレに当てはめるとどうなるんだろう。
490:nobodyさん
05/10/15 23:57:37
ここPHPのフレームワークスレだよね。。。
いま作ってるんだけど、需要あるのかなぁ。
491:nobodyさん
05/10/16 16:16:44
>>490
既存のフレームワークより優れた点があるのなら
492:nobodyさん
05/10/16 16:30:50
既存フレームワークも大分広まってるから
あまりにも独自だと、
学習コストが比較的高くなって普及しないかもね。
かなり戦略的でないとこれから普及されるのは難しいと思う。
493:nobodyさん
05/10/17 01:25:22
>>492
今ある奴で開発がとまり気味のものとか、今あるものをベースに
進化させてくれるひとがいたら結構いいと思うけどな
494:nobodyさん
05/10/17 01:40:18
またforkふえるのか!
agaviかmojavi4に統一しようよもう。
495:490
05/10/19 19:41:56
どうも490です。
今作成してるのはHTMLテンプレートをベースにF/W的なことをやろうって
感じで実装しています。
機能としてはテンプレート>PHPの置き換えのオーバーヘッドを少なくするために
中間コードをキャッシュさせる機構や、携帯電話の絵文字変換(キャリア相互変換)、
標準で使えるDBラッパー(MySQL.PostgreSQL,Oracle,SQLite)等です。
基本的には汎用クラスで動くように作ってあります。
といっても画面に出力するためにコントローラが必要ですが。
プログラム自体の実装は1クラス1モジュール扱いで、テンプレートから呼び出す
メソッドがコントロールメソッドでその中で他のメソッドを呼び出すのが
モデルメソッドみたいな感じです。んで、HTMLテンプレートがViewです。
たぶんMVC的構造になっています。
クラス実装する前のスケルトン自動生成機能なんかもつけようかと
思ってます。
テンプレート中のタグ類は専用タグを使い
条件設定(ifに相当するorやandも可とその逆の動作)タグや、
プログラムに渡すオプション値タグ、繰り返し(ループ)タグ、
絵文字変換タグなんかを組み合わせてViewを書くといった感じです。
496:nobodyさん
05/10/19 19:59:15
>>495
DBラッパーはPDO以上なん?
HTMLテンプレートはSmarty以上なん?
497:nobodyさん
05/10/19 21:33:26
今からだとDB抽象クラスはPDOで十分だと思うけど
テンプレートは Smarty 以上である必要なんてないじゃん。
(そもそも何をもって「Smarty以上」とするのか)
Smarty は高機能で普及もしてるけど個人的には良いとは思わないし。
テンプレートエンジンとフレームワークが密に連携するってのも面白いと思うよ。
携帯絵文字は Vodafone のエスケープシーケンス使う奴がウザいね。
DoCoMo や EZweb の絵文字は比較的扱いやすいんだけど。
498:nobodyさん
05/10/19 22:21:53
絵文字変換なんていいんじゃない?
そういうアプローチのフレームワークはまだないし
499:nobodyさん
05/10/19 22:58:41
>>498
絵文字変換だけならフィルターとか掛けてやるだけじゃん
500:nobodyさん
05/10/19 23:18:29
>>499
絵文字はSJISでテンプレートとかDBはEUCJP推奨だから、特にsmarty使うとき色々面倒
501:nobodyさん
05/10/19 23:35:39
iMode/EZwebの絵文字はSJISの私用領域を使ってて、PHPならSJIS-win/eucJP-win/UTF-8 で相互変換可能。
端末が表示できるのはSJIS(-win)だけだけど、ちゃんと変換してやれば途中の処理を eucJP-win/UTF-8 でやっても大丈夫。
あと最近はUTF-8でも(EUCは知らない)携帯キャリアのゲートウェイがSJISに直してくれるっぽい。
とりあえず基本的な絵文字が見られればいいってことなら、EZweb/Vodafoneの絵文字を
iModeの絵文字に変換しておくのがいちばん簡単かな?
iMode絵文字なら他のキャリアでもゲートウェイが端末に応じた絵文字に変換してくれるし。
502:nobodyさん
05/10/20 03:09:08
>>500
smartyを使いこなせていない予感。
503:500
05/10/20 03:16:14
>>502
むしろ使うためにsmartyをハックした
504:nobodyさん
05/10/20 11:28:03
>>503
スーパーハッカーこわー
505:nobodyさん
05/10/20 20:20:44
絵文字変換なんかまさにフィルターの仕事。
506:nobodyさん
05/10/22 00:38:22
ドコモの絵文字をDBに入れるときどうすればいいの?
EUCに変換したら消えちゃうよね?
DBをSJISにするの?
507:nobodyさん
05/10/22 02:52:18
URLリンク(itpro.nikkeibp.co.jp)
Zendが「Zend PHP Framework」なるものを作ってるとのこと。
最終的にはこれに収斂されるのかな。
508:nobodyさん
05/10/22 10:02:06
>>506
絵文字を入れたいタプルをBLOB型に設定してBINARYフラグを有効にする
509:nobodyさん
05/10/22 14:03:08
>>508
そんなことしてオーバーヘッド大丈夫なの?
少量ならそりゃ大丈夫だろうけど、全文検査とかどうよ?
postgresqlのsjisパッチあてるとかは?
510:nobodyさん
05/10/22 18:35:14
>>506
俺は文字参照に変換してる。
511:nobodyさん
05/10/22 20:53:13
CakePHPのソースを漫然と眺めていたんだけど、その語尾の特殊変化の設定ファイルに
penisとtestisがあったよ。これで下品なソースでも安心だね。アダルトサイトにも最適。
でもこれいいわ。なんて言うか、流れに身を任せればとても楽。コンパクトだから見通しもいい。
それにやっぱり死にかけのプロジェクトよりも生きのいい方がいいしね。
512:nobodyさん
05/10/23 02:30:29
>>511
>語尾の特殊変化の設定ファイル
なにそれ
513:nobodyさん
05/10/23 02:34:17
>>510
?xA0; みたいなやつ?
他キャリアのつもみんなドコモのやつに置き換えるの?
てか、フレームワークすれでこんなこと聞いてすまん。
514:nobodyさん
05/10/23 06:55:11
cake
515:nobodyさん
05/10/23 16:59:56
>>512
cakeはRails系なので、規約は設定に勝るっていう哲学で作られてる。
たとえば、Userというモデルが対応するテーブルはUsers決め打ちになる。
だから、特殊な場合の変化形を自前でもっとく必要がある。
もちろん、大抵の規約は上書きすることができるけど、それだとcakeの意味がないしね。
516:nobodyさん
05/10/23 20:58:51
>>507
JavaのJakartaプロジェクトみたいなものかな。
今後の標準になるようなものを作って欲しいなぁ。
517:nobodyさん
05/10/23 21:58:24
>>516
Zend自身が乗り出してるから標準を目指してるんだろうね
これをふまえて今の草の根フレームワークはどう動くんだろ?
Mojavi4は完成するのか…
518:nobodyさん
05/10/23 23:50:08
>>517
Zendはどうせ金になるエンタープライズ領域しか目に入っていないだろうから
既存のフレームワークとは競合しないような予感。
あとは、ZendStudio必須とか、余計なことしちゃいそう。
519:nobodyさん
05/10/24 00:45:36
>>518
たしかに余計なことしちゃいそう
よく考えるとZend提供のPHP関連サービスに
いい評判はあまりないもんなぁ。
520:nobodyさん
05/10/24 03:51:45
URLリンク(www.symfony-project.com)
mojavi + rails = symfony
てか、もう迷うのも面倒なんで
そろそろ定番出てきてホスィ…
521:nobodyさん
05/10/24 04:36:42
定番を望むのもわかるけど、
何でもできる=どれも中途半端な性能
てことが往々にしてあるので、すきなの見つけて自分で
進化させていくのがいいかも。
できればsourceforgeとかつかってw
522:nobodyさん
05/10/24 15:04:10
Zend PHP Framework
あれどうなってんの?
523:nobodyさん
05/10/24 15:04:59
>>519
Smartyとか?
524:nobodyさん
05/10/25 10:38:07
SmartyってZend発?
525:nobodyさん
05/10/25 12:33:45
違うと思う
526:nobodyさん
05/10/25 22:39:29
まぁZendの事だから、期待出来ないな。
今までノータッチだったけど、Ethnaって良さそうだなぁと思い、
本家のML見て見てみたら、ら○じぃがいるじゃねぇかよ。
あいつ嫌いなんだよな・・・。
坊主憎けりゃ・・・じゃないけど、なんかEthnaやだなぁ・・・。
藤本神は好きなんだけどなぁ・・・。
527:nobodyさん
05/10/25 23:01:50
そんなこと言うもんじゃありません
528:nobodyさん
05/10/25 23:04:45
URLリンク(netevil.org)
アクレコキタコレ
529:nobodyさん
05/10/26 07:10:19
ZendのFrameworkはお布施用にきまってるだろ
530:nobodyさん
05/10/26 08:56:51
いやフレームワークでは金は取らないじゃないか?
531:そりゃないか
05/10/26 09:23:36
Zend Framework Lite 無料
Zend Framework Enterprise 有料
532:nobodyさん
05/10/26 14:00:18
DB周りのコンポーネントとか有料かもな
533:nobodyさん
05/10/27 03:34:49
Zend Studioお布施済みの俺としては、Studio対応で無問題。
534:nobodyさん
05/10/28 21:50:40 geHxPjMK
Mojaviで
モバイル/PCの分岐はどこでどんなふうにやってる?
535:nobodyさん
05/10/29 01:43:09
>>534
やったことないけど、フィルタでforward分けしたらいいんじゃない?
536:nobodyさん
05/10/29 02:16:56
>>534
なにを目的として分岐をするかによる。
機能を分けたいならActionを分けるだろうし、
表示を分けたいだけならViewだろう。
537:nobodyさん
05/10/29 13:30:02
Mojaviのフィルタって好きなだけ作れるけど
プリフィルタしか使わない場合とかポストフィルタしか
使わない場合とかってある?
538:nobodyさん
05/10/29 23:44:53
それはよくあるでしょ。
539:nobodyさん
05/10/30 11:03:38
agavi api 日本語訳
URLリンク(www.geocities.jp)
540:nobodyさん
05/10/30 11:22:35
>>539
乙
541:nobodyさん
05/11/01 22:33:59
php5のひとはどのフレームワークつかってんの
agaviとか?
542:nobodyさん
05/11/01 23:23:56 D/XKY8a/
Mojavi3を使っているんだけど、
複数のActionから共通のViewを呼び出すにはどうするのが綺麗なやりかただろう?
543:nobodyさん
05/11/01 23:39:42
>>542
Actionでarrayかえせばええやん
544:nobodyさん
05/11/02 01:36:57
MojaviはActionとViewが
イチイチで対応してるからどうやってもトリッキーになりそうだな。
俺はViewを分けるほどのことないだろと思ってオリフレ作ったけど。
ViewHelperの仕込みとか結構ごちゃつくから分けてもよかったかもと
思ったりもする。
545:nobodyさん
05/11/02 01:46:12
>>544
日本語変。
546:nobodyさん
05/11/02 18:54:03
>>543
ActionでArrayをかえすってどういう具体的にどうすること?
547:nobodyさん
05/11/03 02:43:18
*** すべてのPHPユーザーに告ぐ ***
URLリンク(www.hardened-php.net)
URLリンク(www.hardened-php.net)
URLリンク(blog.ohgaki.net)
PHPに深刻な脆弱性がある事が発表されました。今まで見つかったPHPの脆弱性の中でも「最悪」の脆弱性です。全てのPHPユーザは今すぐ対処を行う必要があります。
548:nobodyさん
05/11/03 12:11:06
>>546
俺も意味が分からなかった
549:nobodyさん
05/11/03 13:09:55
>>546
Mojavi3ではActionの戻り値として、
第一要素がモジュール名第二要素がビュー名の配列をかえすことによって、
遷移先を指定できる。
550:nobodyさん
05/11/03 16:33:22
>>549
そうなんだ
そりゃ便利だね
551:nobodyさん
05/11/04 23:32:52
テンプレートエンジンをSmarty-lightにしてる人いる?
Smartyとほとんど変わらず使えて、しかも軽くなるなら、
結構お得だと思うけどどうなんだろう。
552:nobodyさん
05/11/05 00:49:33
おいagavi使ってるやついるか
553:nobodyさん
05/11/05 02:20:18
10分で作るCakePHPアプリ for Windows - p4life
URLリンク(p4life.jp)
cakeってここまでやってくれるのか・・・
554:nobodyさん
05/11/05 21:01:35
>>553
それだけ見ると Rails と変わらないよね
555:nobodyさん
05/11/05 21:21:51
簡単すぎて不安になるな
鯖一つで収まるようなシンプルなアプリにはかなり最強かも…
556:nobodyさん
05/11/05 21:37:15
つーか、rubyの勢いはマジですごい。
557:nobodyさん
05/11/05 21:47:05
海外の連中はそのうち業を煮やして、Rails 用の Ruby を
fork させそうな勢いだよな。
558:nobodyさん
05/11/05 21:49:19
ワロスww
559:nobodyさん
05/11/05 23:42:35
EthnaでPEAR::DBじゃなくてADODBって使えるのかな?
560:nobodyさん
05/11/05 23:55:13
>>559
Ethna 専用スレがあるよ
【PHPフレームワーク】Ethna【スケルトン自動作成】
スレリンク(php板)l50
561:nobodyさん
05/11/05 23:59:23
>>560
お、サンクス。
ちょうどその辺りの話題のレスがあるね。
562:nobodyさん
05/11/06 01:02:45 1KuwxXQW
S2PHP使ってる方いますか?
どんな感じでしょう。
563:nobodyさん
05/11/06 11:37:34
>>562
流石に仕事に使ってる人はいないだろうね。
触った感じは面白いよ。上の方に出てたpokフレとして。
まぁ当然まだまだなんだけど、将来はかなり楽しみ。
564:nobodyさん
05/11/06 12:29:44
Mojaviの
index.php/param/value/param/value
形式のURIってmod_rewriteとの併用前提なんだね。
間にindex.phpがまるだしでダセーURLになるなーとオモッテタ…
565:nobodyさん
05/11/06 16:28:01
>>564
ソースは?
566:nobodyさん
05/11/06 19:17:49
>>564
mod_rewrite使わなくても、index.phpに相当するファイルをForceTypeしちゃえばいいと思うよ。
567:nobodyさん
05/11/06 22:26:13
>>564
別に mod_rewrite 前提ってわけじゃないっしょ。
568:564
05/11/07 05:38:11
>>565
そうじゃないかな?と思っただけでソースはないよ
>>566
(入口)URLリンク(hoge.com)
(出口)URLリンク(hoge.com)
これをForthTypeでやるにはどうすればいいの?
考えてもいまいち分からなかった
>>567
まあ検索エンジン対策という意味では
index.phpがあってもなくても関係ないからなぁ
569:nobodyさん
05/11/07 10:02:24
path_info形式にすると
ブラウザがドキュメントURLを誤認識するのが面倒くさいね
リンク全部絶対URLにしなきゃならんのか。
570:nobodyさん
05/11/07 10:39:05
>>564
(入口)URLリンク(example.com)
(出口)URLリンク(example.com)
は無理だけど、
mv index.php hogehogeして、
(入口)URLリンク(example.com)
ならどうよ?
571:nobodyさん
05/11/08 00:44:57
PHPプログラマーズマガジンで Seagull ってのが紹介されてるね。
立ち読みしか読んでないけど。
これ、フレームワーク? CMS?
572:nobodyさん
05/11/08 03:42:16
>>570
さんくす。
よくよく考えたら、mod_rewriteでindex.phpを無条件にはさむと、
他のファイルへのアクセスに支障が出るから、
そういう方法しかないかもしれない。
573:nobodyさん
05/11/09 02:42:24
URLリンク(longinus.org)
初めて見たんだけど、これの中ちゃんと読んだことある人いる?
574:nobodyさん
05/11/09 09:10:03
>>573
ぱっと見Mojavi系と似てるね
デフォルト拡張子がincなのはセキュリティー上
推奨できないと思う
575:nobodyさん
05/11/09 09:21:44
フレームワーク大杉
576:nobodyさん
05/11/12 16:50:24
Synfony勢いとかサイトのクオリティーで抜きん出てる気がする
これからはこれか?
577:nobodyさん
05/11/12 17:07:53
Symfonyのムービー見たらテンプレートにphp生書きで、
しかもテンプレート中から$user->getAttribute()とか平気でしてる。
最近Smartyみたいなテンプレートエンジンの
意義みたいなものに疑問を感じてきた俺には示唆的だった。
実際テンプレートエンジンから
独自文法の解釈外したら馬鹿みたいに短いコードで書けるんだよね。
もともとPHPはob_系関数があってキャッシュの実装なんかも
やろうと思えばすぐ出来る環境だし。
578:nobodyさん
05/11/13 01:22:28
デザイナーにはHTMLを触らせず、cssだけいじらせる時代になってしまえ
579:sage
05/11/13 08:33:59 nNKS4KNy
>>578
当方デザイナ(つーかコーダかな)ですが、それ大いに賛成です。
開発者からページに掲載するデータの定義だけ教わって
あとはxhtml&cssと格闘するみたいな。
もしくはxhtmlの出力フォーマットだけもらってもいいや。
tableタグ使ったレイアウトに決別すると、
どうしてもそういう方向になってくる気がします。
580:nobodyさん
05/11/13 09:24:35
もう一歩進んでhtml作るときにtdiary互換のcssを参照するようになったりしたら、
webデザイナーの仕事が減っちゃうかもしれないよ?
でも、むしろその方が本来のグラフィックデザインの実力で勝負できていいのかな。
581:nobodyさん
05/11/13 17:30:56
おまいの作るhtmlは、えらく目的が限定されとるな。
582:nobodyさん
05/11/14 02:43:58
php5なんだけど、何がおすすめ?
583:nobodyさん
05/11/14 11:50:11
これは既出?
URLリンク(www.pm9.com)
何でもいいがFirefoxでもちゃんと見れるように作ってよ・・・orz
584:nobodyさん
05/11/14 12:29:09
ドキュメントとかしっかりしてるみたいだけど,
商用ライセンスってのが・・・
585:nobodyさん
05/11/14 14:49:17
>>583
■クラスタリング
高負荷サイトの為のWebサーバ、DBサーバの並列化に対応しています。
これが気になるなー
ちょっと見てみようかな
586:nobodyさん
05/11/14 21:59:02
>580
tdiary互換のcssって...なんでtdiaryなの?
587:nobodyさん
05/11/15 01:06:37
tDiaryのテーマを変えて喜んでるだけの厨房だから
588:nobodyさん
05/11/17 09:26:30
mojavi2ってsession_destroyは手動でやるしかない?
589:nobodyさん
05/11/19 15:36:29
Symfony見たらActionにショートカット用メソッド
(getRequestParameterとか)付けてたから俺もそうした。
何か綺麗さが損なわれるような気がしてヤセ我慢してたけど。
590:nobodyさん
05/11/21 03:01:02
mojaviを勉強しはじめました。
参考になるソースを見ようかなと思うのですが、お勧めのオープンソースなものって
ありませんか?
できればmojavi2系
できれば、smartyとかadodbとか使ってたり
携帯の処理なんて書いてあるとさらに素敵です。
591:nobodyさん
05/11/21 22:25:36
cakePHPってデータベース絡みには結構よさげだけど認証や権限関連が弱いな
592:nobodyさん
05/11/21 23:12:08
mojaviでFPDF使っている人いる?
なんかIEで表示されないんだけど、原因は何?
593:nobodyさん
05/11/21 23:14:05
>>592
あんたもか!漏れもだわ。
594:nobodyさん
05/11/22 00:24:11
>>592
あぁ、それIEのバグ
対処法はいくつかあるけど
595:nobody
05/11/22 12:19:16
mojaviの外に出たら、うまくいった。
596:nobodyさん
05/11/22 12:52:15
view_noneじゃなくてexitすると動くことがある
597:nobodyさん
05/11/22 16:52:59
>>591
Controller の beforeFilter と PEAR::Auth を組み合わせればカンタン。
aclがいらないなら5行もあればできる。
でも、組込み認証の是非に関する議論は一応やってたと思う。
個人的にはこれ以上Controllerは太らないで欲しいんだけど...
598:nobodyさん
05/11/22 19:29:40
>>597
早とちりかな?
認証はともかくとして、権限をどうやってPEAR::AUTHで簡単に?
五行のコード載せてみて
599:nobodyさん
05/11/22 20:31:33
> aclがいらないなら
acl = 権限ジャマイカ?
600:nobodyさん
05/11/22 20:39:40
>>594
対処法キボンヌ
601:nobodyさん
05/11/23 15:11:58
>>598
権限 = acl のつもりだったんだけど、どうしてもAclが欲しいなら今でもMyAclを使える。
うろ覚えで書くとたとえばこんな感じのメソッドをAppControllerにでも追加すればいいはず。
beforeFilterに_aclCheck、componentsにはMyAclを追加してね。
function _aclCheck(){
$this->auth =& new Auth(...);
$this->auth->start();
if(!$this->MyAcl->check($auth->getUserName(),
$this->params["controller"]."/".$this->params["action"]))
$this->_permFailed();
}
たぶんこのままでは動かんと思うけど、流れは大体こんな感じ。
権限不足画面などのViewを含めると5行はハッタリだったね、慌てさせてごめんよ。
nightlyにはさらに高機能なdbAclもあるらしい。
602:nobodyさん
05/11/24 22:26:05
agavi で DBに接続したんですけど、下記
$db = $this->getContext()->getDatabaseManager()->getDatabase()->getConnection();
クエリーを発行するにはどうしますか。
MySQLDatabase.class.phpにはメンバー関数がないようだし。
603:nobodyさん
05/11/25 14:25:00
MVCのModelにあたる部分は、Mojaviで言うとどの部分になるのでしょうか?
actionsでしょうか?
処理の部分をどこに書けばいいのかがわからなくて困っています。
MVCの記事をかなり読んだのですがどの部分がModelなのかちょっとよくわかりませんでした。
604:nobodyさん
05/11/25 14:28:18
>>602
よくわからんけどたぶんmysql_queryでやるんじゃん?
>>603
MojaviにModelあるけど
ActionはMVCのC
605:nobodyさん
05/11/25 14:37:14
Action内から呼び出す自作またはModelをextendsしたクラスあたりと思っていればよいかと。
606:nobodyさん
05/11/25 15:44:35
おいおいお前ら正気か
CってControllerのCじゃないんかよ
ビジネスロジックを担当するんだからActionクラスはModelだろ
それとももっと違う次元の話か?
607:nobodyさん
05/11/25 16:00:45
Action内でビジネスロジックを実行する場合はAction=M
Actionから一層掘り下げてModelを呼ぶ場合は
Action=Cになるんじゃないの?
前から思ってたがあまり峻別できない概念だよな。
MVCがお互いを包摂し合ってる部分がある。
音楽のジャンル分けみたいなもんだな。
厳密な区分が最初からあるわけじゃない。
608:606
05/11/25 16:09:51
なるほどね
まあ確かにそう使う場合もある罠
もともとWebアプリの世界の話じゃないしな、曖昧になるのは仕方ないというかなって当然
そういう意味ではDBの設計と似てるところがあるかな
MVCにとらわれすぎてクソな実装かますのが一番ダメダメ
つーか実際書き始めるとMVCとか結構どうでもよくなってくる
設計段階での指針程度にとどめておくべきだろうな
609:nobodyさん
05/11/25 16:20:05
結論
>>603
MVCとかどうでもいいからまず動くように書いてみろ、話はそれからだ
どうしても気持ち悪ければあとでいくらでもリファクタリングするよろし
その過程でだんだんMVCになることもあればそうでない場合もある
っつーのが本質だと思うんだな俺は。
610:nobodyさん
05/11/25 17:24:45
なるほど勉強になりました。
明確な区別はないんですね。
実はもうコーディングをしててformsの下とかviewsの下にもロジックを書いたりしていて
多分違うんだろうなぁ~と思って聞いてみました。
VIEWを返しているあたりは、action=Cと思ったんですけど、その前に処理を書こうかなと
思います。
formsはどこに当たるかといったら、まぁModelと考えておけばいいですかね。
そういうことがナンセンスなのかもしれませんが。
611:nobodyさん
05/11/25 21:04:56
PHP5.1.0リリースだというのに静かなものだね・・・。
俺が思うに、ある程度知識がないとMojavi使いきれないと思うよ。
とりあえずMojaviでいうViewが必要ないフレームワークにしてみたら?
612:nobodyさん
05/11/26 01:25:15 a7zffmpw
mojavi2.0を使っています。
URLリンク(www.stackasterisk.jp)
ここを参考にディレクトリ構造を変えたのですが、
レンタルサーバでhtdocsをベースに指定する事って出来るのでしょうか?
613:nobodyさん
05/11/26 04:50:35
そんな解決はできても難しいし、やるべきじゃない方法だよ。
多分、フレームワークの理解を根本的に間違えてるんじゃないかな。
DocumentRootにindex.phpを置いて、外部からアクセス禁止してる箇所にmojaviフォルダとwebappフォルダを置く。
あとはpath調整して動かすんだよ。
614:nobodyさん
05/11/26 08:50:15
そうそう
わかんないうちはとかくなにもかもマニュアルの通りにしないといけない、と鵜呑みにしがちだけど、
少し冷静に考えてみるとどうでもいい事なんてたくさんあるぜよ。
つーわけでindex.phpはどんな名前のディレクトリにあろうがブラウザから参照できる位置に置くべし
まーほとんどのレン鯖の場合public_html以下に適当な名前のディレクトリ作ってほりこんでるんでないかね。
615:nobodyさん
05/11/26 10:50:33
mojaviで "class IndexAction extends Action"のようにIndexでactionを指定しても
"URLリンク(xxx)"とわざわざ書かないと
Only variable references should be returned by reference と怒られてしまって困ってます。
環境は
PHP 4.4.1-pl1
mojavi 2.0.3 beta です。
616:nobodyさん
05/11/26 11:21:14
それは困りましたね^^;;;;;
617:615
05/11/26 11:41:56
すみません、解決しました
618:nobodyさん
05/11/26 12:33:18 2543W0TM
>>617
最近流行ってるね
619:nobodyさん
05/11/26 13:54:07
>>618
よくわかったね
620:nobodyさん
05/11/26 14:23:28
>>619
スキだからさ
621:\_________/
05/11/26 15:15:03
V
_____
/::::::::::::::::::::::::::\
/::::::::::::::::::::::::::::::::::::::\
|:::::::::::::::::|_|_|_|_|
|;;;;;;;;;;ノ \,, ,,/ ヽ
|::( 6 ー─◎─◎ )
|ノ (∵∴ ( o o)∴)
/| < ∵ 3 ∵>
::::::\ ヽ ノ\
:::::::::::::\_____ノ:::::::::::\
622:nobodyさん
05/11/26 15:36:40
PHPでフレームワーク(笑)
623:nobodyさん
05/11/26 20:37:10
あなたも技術者の端くれなら何か有用な情報を書き込んでください。
ここはWebプログラミング"技術"の板です。
煽りは必要ないです。
624:nobodyさん
05/11/26 21:19:29
>>623
迷惑掛けて申し訳ない
しばらくロムります
625:612
05/11/26 22:44:49
>>613,614
レスありがとうございます。
なるほど。アドバイスありがとうございます。
出来るだけアドレスを短くしたいんで
index.phpはDocumentRoot直下に置きたいんです。
でもレンタルサーバを借りているんで、そうするとmojaviフォルダとwebappフォルダも
DocumentRootになってしまうなと思いお聞きしました。
外部からアクセス禁止してるフォルダのあるレンタルサーバってあるのでしょうか?
それとも.htaccessで禁止するしかないでしょうか?
626:612
05/11/27 00:27:09
自宅鯖を立てることにしました。ありがとうございました。
627:nobodyさん
05/11/28 02:21:48
mojavi3のviewにあるdecorator ってプロパティーはどんないみあるの
628:1-627
05/11/28 10:56:11
すみません、全て解決しました。
629:nobodyさん
05/11/28 16:28:05
>628
流行ってんの?
630:nobodyさん
05/11/28 17:36:24
なあに、かえって免疫力がつく
631:nobodyさん
05/11/30 04:52:05
cakephpでADODBって実質使えないな…
selectLimitらへんとか、あの作り方じゃまともな対応期待できそうにないな
632:nobodyさん
05/11/30 17:47:33 yPyLs/p1
>>631
詳しく
633:nobodyさん
05/11/30 17:48:31
>>495
これどうなったんだろ
携帯に対応しやすいフレームワークって面白いかと思ったんだけど
Mapleの半角<-->全角とかも日本らしいくて、こっちも携帯とか期待できるのかな
634:nobodyさん
05/11/30 18:21:22
>>632
一番てっとりばやいのは、oracle8iとかDB2とか動かすこと。
まともにうごかない。
cakephpのselectLimitのソース見るとわかるけど、adodbの機構一切つかわず
Limit生書き。コメントにも、「adodbがlimit句のsql文取得するためのもの持ってないんで対応できませーん」
みたいなこと書いてある。
635:nobodyさん
05/11/30 22:27:42
ほんとだ...
でもこれ、lastInsertId()が単なるプレースホルダーで、呼んだ瞬間にdie()だから、
動かないのは当然だよね? Model::save()で死ぬし(w
wikiのドキュメントにあるadodb対応っていう看板はまだ外しておくべきだな。
636:nobodyさん
05/12/01 13:07:20
でもよく考えたら adodb にdbごとの適切なLimit節文字列を返す機構ってあったっけ?
adoのドライバのレベルの話?
AdoConnection::selectLimit() を使えよって話なら、そもそも "to get correct limit string"
するためのものじゃないし、上のレベルのModelはこのために全面改装が必要になるし。
637:nobodyさん
05/12/01 13:12:50
関係ないがadodbはReplaceの形でinsertとupdateもできるようにしてくれ。
あとautoquote時に数字もquoteしてくれ。
text型に入れてても000000が0になる。
638:nobodyさん
05/12/01 15:46:10
どのフレームワークでもいいんですが、フレームワークを使ったオープンソースな
ソフトってご存じないですか?
639:nobodyさん
05/12/01 15:57:03
存じております
640:nobodyさん
05/12/01 16:17:39
URLリンク(www.horde.org) の IMP や Chora とか。
Mojavi の知りたい。
641:nobodyさん
05/12/01 16:57:05
>>636
>でもよく考えたら adodb にdbごとの適切なLimit節文字列を返す機構ってあったっけ?
文字列を返すのはないよ。
適切に実行することはできるけど
642:nobodyさん
05/12/01 21:07:40
>>639
存じておりましたら存じているものをここへ書いて下さい
643:nobodyさん
05/12/01 23:21:16
quickformでプルダウンメニューの入力チェックしたいんだけど、addruleでやってもうまく機能しません。
何故?
644:nobodyさん
05/12/02 01:43:30
BasicSecurityFilter使うと無限forwordループならね~か?
645:nobodyさん
05/12/02 06:04:33
>>642
WaWaWa
>>643
多分書き方がおかしい
>>644
使ったこと無い
646:nobodyさん
05/12/02 07:05:58
日経システム構築に、
セキュリティーの観点からは
DB格納の直前にもバリデーション行うべきって書いてた。
確かにそう思うけど、
となるとフレームワーク使った場合、
プレゼンテーション層とビジネスロジック層の
両方でバリデーションすることになるよね。
そのあたりどうしてる?
同じ一つの定義を読むのか、
ビジネスロジック層のバリデーションを簡易的なものにするか…
647:nobodyさん
05/12/02 07:11:52
>DB格納の直前にもバリデーション行うべき
なにこれkwsk
648:nobodyさん
05/12/02 07:28:41
>>647
普通はだいたい、
フレームワークに用意されたバリデーションをまず行ってから、
そのデータをDAO的なクラスに渡してDBに書き込むじゃん。
DAO的なクラスでも、
一度バリデーションを受けてるはずだからといってデータを信用するのではなく、
そこでも精査すべきだということ。
コードコンプリートでいう
防御的プログラミングというやつだね。
649:nobodyさん
05/12/02 08:58:48
>>648
了解
djb的思想だね
650:nobodyさん
05/12/02 10:37:43
みんなDAOな作りしてんの?
なんかDAOにしちゃうと、リッチなSQL書けなくならない?
又は、ビジネスロジックがDAOに入っちゃう。
だって、リッチなSQLってビジネスロジック含むじゃない?
651:nobodyさん
05/12/02 14:09:33
RDBMSはオブジェクト指向じゃないから。それをオブジェクトで取り出そうとすると、どこかしらに無理が出てくるのはしょうがない。
652:nobodyさん
05/12/02 14:37:00
そんなのは前提としてさあ
653:nobodyさん
05/12/02 14:37:10
DAOって再利用性けっこう低くない?(スキル低いだけって言われそうだけどorz)
再利用性を高くしようとすると、SQLを直につっこんでもあんま変わらないし。
特定の用途にカスタマイズすると再利用がだんだん難しくなるし。
できる奴はうまいことDAO作ってんのかな?
それともDAOって毎回がんばって作る宿命?
654:nobodyさん
05/12/02 16:01:31
>>653
DAOを上手く利用しようとするなら自分独自のクエリーを作ってそれを
各SQLに対応したクエリーに変換するclassを自分で作るしかない。
今の段階のDAOは・・・あまり意味がない。
655:nobodyさん
05/12/02 16:12:42
一人で開発してて、手が早いひとならSQLを直に書いたほうがいいんじゃないの。
大規模開発なら、APIを統一しないとやってられないだろうね。
656:nobodyさん
05/12/02 21:18:36
mojavi2ってPHP5で動かないの?
657:nobodyさん
05/12/02 21:37:14
mojavi3 が PHP5 用。
658:nobodyさん
05/12/02 22:16:38
>>657
mojavi3は終了して今mojavi4作ってます。
agaviも0.10 目指してガンガッテます。
659:nobodyさん
05/12/03 02:41:18
>>658
Mojavi4進んでなくない?
これじゃagaviと合体する前に消滅の悪寒。
660:nobodyさん
05/12/03 06:50:17
シンフォニー力入ってんなぁ。
661:nobodyさん
05/12/03 06:53:47
新興フレームワークの方が発展していきそうだね
いずれにしろまだどれも固まってないから実務には使えない…
662:nobodyさん
05/12/03 10:52:29
今一番日本語のドキュメントがまとまっているのがEthnaかな?
現在勉強中。
663:nobodyさん
05/12/03 11:44:20
maple、DI入ってるからよさそう。EthnaはまだDIないし。
664:nobodyさん
05/12/03 11:45:19
まあ、Struts→Ethna Seaser→Mapleっていう構図だよな。
665:nobodyさん
05/12/03 13:18:46
>>663
そうだね。
Spring frameworkの紹介記事読んでMapleに興味持ったけど、
フレームワーク初心者にはちとドキュメントが足りない・・・。
後、データアクセス層のサポートがホスィな。
666:nobodyさん
05/12/03 19:53:00
EthnaやMapleは絶対にスタンダードにはなり得ない。
Mojaviでギリギリだろ。実質Zendフレームワークのだけじゃね?
EthnaやMapleなんか勉強しても無駄だからやめておけ。
667:nobodyさん
05/12/03 20:18:20
>>666
できればその理由なんかも・・・
668:nobodyさん
05/12/03 20:30:55
リリースされたZEND謹製フレームワークを見て
ケツから血を流すがいいです
669:nobodyさん
05/12/03 20:46:32
kunitタンはEthna,Maple,Seasar PHPと手を広げすぎないで
完成度を高めてほしい、というのはある。どれも中途半端。
670:nobodyさん
05/12/03 21:37:16
どっちかっていうとDI/AOPやらRoRやら概念的なことに手を広げすぎているような
あれもこれも取り入れたいってのは分かるんだけどね・・・いつまでたっても完成は出来んわな
671:nobodyさん
05/12/03 23:22:07
mojavi2を使用しているのですが、
php4.4.1でエラーが発生する事を今知りました。
もう開発は終わっているとの事ですので、修正される事はないんですよね?
このような点を考慮するとagaviというのを使った方がいいのでしょうか?
レンタルサーバの関係でphp5での使用は考えていません。
mojaviは気に入っていたのでmojavi系が良いと思っています。
672:nobodyさん
05/12/03 23:31:37
ソースはあるんだし、修正すればえぇやん
673:671
05/12/03 23:58:35 QwnhGijP
>>672
確かにその通りです。
今回のエラーは修正できますが、割と時間がかかりそうな場合や
自分では修正できないような時を考えてできるだけメンテが活発に行われている
物を使用したいと思ったまでです。
674:nobodyさん
05/12/04 00:14:45
どっかにパッチあったよ。
どっかに。
675:nobodyさん
05/12/04 00:34:35
>>671
URLリンク(www.stackasterisk.jp)
676:671
05/12/04 00:50:01 OBVYrvMK
>>675
どうもありがとうございます。
助かりました。
677:nobodyさん
05/12/04 02:19:47
>>676
というか、バグがあるからmojaviJapanのエラーの修正入っているやつにしれ
678:nobodyさん
05/12/04 02:25:41
ユーザ登録、メール送信、URLのクリックで認証というのをmojavi2でやりたいんですが
そういうコードないですかね
679:646
05/12/04 04:33:57
一番嫌なのが巨大なデータをSQLに仕込まれることなので、
データのサイズチェックだけすることにしたよ。
後はサニタイズだけちゃんとしておけば致命的にはならないだろう。
680:671
05/12/04 22:56:24 gXRf3OY+
>>677
そんなのがあるんですか。知りませんでした。
681:nobodyさん
05/12/05 02:11:12 dkL9yz1o
>>666
PHPの言語仕様自体がころころ変わっている最中なのに、
スタンダードなものは作れないと思われ。
でもオレオレフレームワークで好き勝手に作るよりは、上手い人の
エッセンスを流用して作る方がいいと思うので、現時点でマニュアルが
充実してて、開発を放棄されていない奴を選べばいいのでは?
682:nobodyさん
05/12/05 09:12:05
>681
そうですね、私は別にスタンダードじゃなくても、使いやすければいいか、と思ったりします。
フレームワーク使い始めるまでは無手勝流でコード書いてたし、いまだにmojavi2使ってるし。
また新しいのがでてた。
XOAD
URLリンク(www.xoad.org)
683:nobodyさん
05/12/05 12:48:08
フレームワーク祭りだなほんまに
決め手にかけるところがPHPらしいというかなんというか・・・
684:nobodyさん
05/12/05 16:13:57
Mjavi2が主流ですか? それともEthnaやMapleですか? おすすめ教えて
685:nobodyさん
05/12/05 16:17:35 dKNEsuCU
>>684
個人的には maple。
もっとも、そのままじゃ実用に耐えないからかなり改造して使ってるが。
686:nobodyさん
05/12/05 16:20:36
俺は大したもん作らないからguessworkの自主改造版ぐらいで丁度いい。
687:nobodyさん
05/12/05 16:20:50
>>685
ありがとう。Mapleは実用に耐えられないわけですね。 やはりMojavi2かな。
688:nobodyさん
05/12/05 16:21:48
>>686
ありがとう。guesswork ってののあるわけですか・・・。 guessworkはいいですか?
689:nobodyさん
05/12/05 16:22:28
M2も結構手入れしないといけないから
グチャグチャになりがち
690:nobodyさん
05/12/05 16:27:15
>>688
guessworkはvalidatorが貧弱だったりするからその辺を補完して、認証とかサイト毎に
必要な機能を付ければ俺的には充分。
作成するファイルが少ないってのも俺好み。
691:nobodyさん
05/12/05 16:37:22
PHP5用のguessworkは結構期待してるんだが
なかなか出ないね
692:nobodyさん
05/12/05 16:43:21
mojavi2ってPHP4用ですよね?
一応ご確認あれ>>684
日本語の資料が一番まとまってそうなのは速構Web Frameworkかな?
URLリンク(www.pm9.com)
但し有料。
次点はEthnaじゃなかろうか?
URLリンク(ethna.jp)
693:nobodyさん
05/12/05 16:45:27
つーかガキじゃないんだから日本語の資料とかいらんでしょ?
英語でも読めて当然だろ、普通のSEなら大学ぐらい出てるんだからさ。
694:nobodyさん
05/12/05 16:55:24
>>690
guesswork素敵でつた。 補完したのコッソリ下さい。
695:nobodyさん
05/12/05 16:59:09
「このフレームワークを選ぶ理由は何ですか?」
つー質問に答えなきゃいけない立場の人は大変だろうねぇ。
696:nobodyさん
05/12/05 17:12:31
>>693
なにいきり立ってんの?
日本語の資料の充実度っていう軸でみてなんか不都合でも?
697:nobodyさん
05/12/05 17:14:56
>>696
たとえばメンテナの数や、たとえばコーディングのしやすさ
先に見るべき場所がほかにあるでしょ。
日本語マニュアルなんて、あればいいな程度のものを最初に持ってくる神経を疑う。
698:nobodyさん
05/12/05 17:22:54
>>697
まあそうだけど、フレームワークの概念自体を勉強したいっていうニーズだって
あっていいでしょ?
自分がプロのSEだからって視野が狭すぎ。
>>684が学生か社会人かもわからんだろうに。
699:698
05/12/05 17:25:34
あ、でも貴方の意見には全面的に賛成なんで、プロの目からみたお勧め教えて。
700:nobodyさん
05/12/05 17:33:00
理解するためのコストが高いと
取り組むリスクが大きくなるから
日本語資料があるに越したことはないね。
701:nobodyさん
05/12/05 17:34:02
>>699
俺が使ってるのはmojavi系。正確には2.00にパッチ当てたりして少しだけ拡張した奴。
メンテナの数が違う…が2,3,4,agaviとメンテナが分離気味なので動向を見守っているところ。
ことフレームワークなどに関しては、勝ち馬に乗るべきだと思ってる。
俺もメンテナが多いのが生まれたらそれに乗り換える。
ただ残念なのは、そうやってフレームワークが普及しても思ったよりネットでのコード共有が進まなかったこと。
みんな自分の書いたものは見せずに、他人のものばかり見たがる。俺もだがw
702:nobodyさん
05/12/05 17:34:38
英語の出来ない部下を持つ身としては、日本語資料は必須。
703:nobodyさん
05/12/05 17:38:15
言い方キツかったのは謝るよ。
すまないね。
>>702
それ結構悲惨だな…でもサンプルコードあったら理解してくれない?
PEARとでも英語しかマニュアル無いもの結構あるけど、どうするんだよ。
704:nobodyさん
05/12/05 17:43:02
>>703
サンプルを用意してあげて、ケツを蹴る。
705:nobodyさん
05/12/05 17:45:54
日本人雇わなきゃいいだけ
706:698
05/12/05 17:55:32
>>701
どうもありがとう。参考になります。
mojaviはagaviと統合してから手を出そうかと思ってました。
こちらも英語ができない部下(しかも直属じゃない)がいて、
しかも自分を含めて本職はSEじゃ無かったりします。
なんで、「わからないならソース嫁」と言いたいところですが飲み込むこともありw
でもメンテなの多さは魅力だな。早いうちにmojaviの資料にも当たっておこう。
707:nobodyさん
05/12/05 18:05:20 dKNEsuCU
mojavi はゴチャゴチャしててちょっとなぁ…。
708:nobodyさん
05/12/05 18:24:01
>693
うはっw
こういう奴ってまだいるんだw
709:nobodyさん
05/12/05 18:28:40
愛して欲しいのさ、本当はね
710:nobodyさん
05/12/05 18:33:47
お師様、温もりを…
711:nobodyさん
05/12/05 20:31:13
俺もmojavi4を待ってる状態だな。
邪魔になるかなとは思いつつTylerにメールして進捗を聞いたりした
11月の中ごろにはあと2ヶ月くらいで出来るとのことだったがその後音沙汰がないのが心配だw
712:nobodyさん
05/12/05 20:33:12
>>707
ごちゃごちゃしてるか?
mojavi2系に限ってならだけどかなりシンプルにまとまってると思うが・・・
713:nobodyさん
05/12/05 20:33:25
PHP4はもう置き去りですね・・・
714:nobodyさん
05/12/05 23:03:05
PHP4でもPHP5でも使えるやつってある?
715:nobodyさん
05/12/05 23:06:57
4.40以降に対応してる奴は多分両方いけるでしょ。
意味無いから試してないけどね。
716:nobodyさん
05/12/06 02:35:30 8b+BGlil
待ってたらいつまで経っても開発できないじゃん
現状ではメジャー技術を参考にしつつ自前開発するしかなさげ
だいたい大きな考え方はどのフレームワークにも共通するしね
717:nobodyさん
05/12/06 09:29:17
mojavi3いいよ。
オブジェクトの使い方とか理解しやすい。
718:nobodyさん
05/12/06 12:37:55
PHPについて初心者にも良く分かるように説明したサイトありませんか?
書籍の紹介でも構わないのですが。
719:nobodyさん
05/12/06 12:43:24
スレ違い
720:nobodyさん
05/12/06 12:45:34
>>718
URLリンク(www.php.net)
コレ
721:nobodyさん
05/12/06 13:20:37
どうしてこういう事を書けるのかホントに疑問だな>>718
スレタイ読まないのはまあ百歩譲るとして他のレスちょこっと読めばわかるもんだろ普通
722:nobodyさん
05/12/06 15:21:22
誤爆しただけです。すみませんでした。
723:nobodyさん
05/12/06 15:27:03
あっそう
724:nobodyさん
05/12/06 15:34:12
釣ってみただけです。すみませんでした。
725:nobodyさん
05/12/06 15:35:58
はいはい
726:nobodyさん
05/12/06 15:40:42
>>722
URLリンク(www.jca.apc.org)
727:nobodyさん
05/12/06 15:44:53
全て私一人の自作自演です。済みませんでした。
728:nobodyさん
05/12/06 18:30:42
>>716
そうやって沢山のフレームワークが出てきているこの現状
開発手伝ってやれや
729:nobodyさん
05/12/06 20:01:58
>>653
DAOとO/Rマッピングの区別ついてる?
730:nobodyさん
05/12/06 20:10:08
Agaviあたりが一番無難だと思う。
薄っぺらだから、把握するソースも少なくて済むし。
正式リリースはされてないけど、svnは着々と新しいクラスも
作られてる。
至れりつくせりなフレームワークは、いまのところ完成度が
低いものばかりなので。
pradoは完成度的には高いけど、XMLファイルの設定とか
結構面倒。
個人的にはsymfonyに期待してるんだけどね。
731:nobodyさん
05/12/06 22:51:06
結局Mojaviですよね
732:nobodyさん
05/12/06 23:32:14
あのー、function & getAuthorizationHandler ()
この、& の意味は何ですか?
733:nobodyさん
05/12/06 23:36:36
それってフレームワーク関係ないでしょ
734:nobodyさん
05/12/06 23:38:54
あのー、じゃあ何ですか?
735:nobodyさん
05/12/06 23:39:38
PHPのくだらない質問スレ
736:nobodyさん
05/12/07 00:25:58
>>732
山椒だよ。
737:nobodyさん
05/12/07 00:26:56
ピリリと辛い
738:nobodyさん
05/12/07 04:47:59
フレームワークのControllerを開始するメソッドの名前が
dispatchで、辞書で調べると
「打ち負かす」とか「急送する」とかの意味らしい。
いまいち合ってない気がするけど
何か言われがあるのかな。
executeで良くね?と思うんだが。
739:nobodyさん
05/12/07 04:59:46
実際の処理(ビジネスロジック)をする(execute)のはControllerじゃなくてModelだし、
Controllerは単にリクエストを適切なActionへ発送(dispatch)するからじゃね?
740:nobodyさん
05/12/07 05:49:46
あーなるほど。
741:nobodyさん
05/12/07 06:05:54
dispatchはどっちかというと「割り当てる」って意味だよ。
そこらのフレームワークはStrutsの影響だと思うけど、元々はOSのスケジューラがスレッドをCPUに割り当てるって意味。
MVCフレームワークではリクエストに応じてactionだのviewだのを割り当てるってこと(>>739はその意味で当たってると思う)。
loadなんかも「積む」って意味をこえて、メモリからレジスタにデータを読み込むって意味だったものが、ファイルなどの内容をメモリに読み込むって意味に転じて、果てにはWebサーバからブラウザにデータを読み込むってことにまで使われるようになった例だし。
742:nobodyさん
05/12/07 10:15:56
>>736
ありがとう。ピリリと解決。
743:nobodyさん
05/12/07 17:30:53
>>730
agavi.jpの更新が完全に止まっちゃってるのが残念だね。
744:nobodyさん
05/12/07 20:43:55
最近はここだよ。
翻訳してくれてる。
agaviユーザ多いかな。
URLリンク(www.geocities.jp)
745:nobodyさん
05/12/07 21:00:25
>>744
おお、こんなとこあったんだ。
サンクス。
746:nobodyさん
05/12/07 22:03:43
つか、Ajaviは公式が0.9から全然動きが無いな。
747:nobodyさん
05/12/07 22:05:08
svnは?
748:nobodyさん
05/12/07 23:01:18
>>747
snvでは結構更新あるよ。
749:nobodyさん
05/12/07 23:23:39
zend frameworkキタ━━(゚∀゚)━━━!!!
hURLリンク(www.phparch.com)
750:nobodyさん
05/12/07 23:50:26
>>749
英語のプレゼンだからサッパリわからんが
PHPをピィチピーと発音することは分かった
751:nobodyさん
05/12/07 23:53:53
ははは
もれもそれ思ったよ!これからピィチピーって言おう!
752:nobodyさん
05/12/08 06:40:50
>749
これっていつごろできるの?
753:nobodyさん
05/12/08 08:49:04
けっこうagaviに似てる気がする
754:nobodyさん
05/12/08 18:17:58 v7tgLnK2
>>741
じゃあdispatchからのforwardってなんなの?
755:nobodyさん
05/12/08 18:25:17
>>754
「転送する」とか「回送する」とかの意味があるから、「処理をまわす」と
いう意味合いじゃないの?
つか、ここは英語のスレじゃないんだが。
756:nobodyさん
05/12/08 22:50:03
Zendフレームワークっていつリリースか明記してある?
757:nobodyさん
05/12/08 23:13:00
±1.5ヶ月でね
758:nobodyさん
05/12/09 12:10:21
>>749
プレゼンが下手糞で途中で飽きた。
文章でまとまってるのないの?
759:nobodyさん
05/12/09 12:21:49
流行りだからって何でもかんでもPodcastすればいいってもんでもないよね。
テキストなら大事なとこだけ拾い読みできるのに。
760:nobodyさん
05/12/09 12:43:07
メディアを云々する前にまずGoogleを覚えようぜ
761:nobodyさん
05/12/09 14:16:53
誤爆ですか?
762:nobodyさん
05/12/09 17:59:40 kJFA21a1
Decorator使ってる時にリダイレクトしたら、
サブテンプレート作成中に処理がブチギレるよね。
ポストフィルタでリダイレクトすべきなのか。
そのあたりどうしてる?
763:nobodyさん
05/12/10 14:39:54
質問です。
mojavi2でSmartyを使っています。
XOOPSのテーマを使っていてsmartyのデリミタが<{と}>です。
$lblocks = array(array('title' => 'エラー',
'content' => '<div><{$error}></div>'));
$renderer->setAttribute('xoops_lblocks',$lblocks);
すると<がサニタイズされて>に変換されて、html上表示されてしまいます。
サニタイズさせない方法ってあるでしょうか?
764:nobodyさん
05/12/10 19:34:26
>>763
$smarty->left_delimiter = '<{';
$smarty->right_delimiter = '}>';
てか、、マニュアル嫁
765:nobodyさん
05/12/10 23:53:59
>>764
>>763の
>XOOPSのテーマを使っていてsmartyのデリミタが<{と}>です。
とあるように、その設定はXOOPSのテーマを使うために既にしています。
そのために<と>がサニタイズされて困っているんです。
その設定をしなければ、{と}だけで問題ないのです。
テーマ側に<{$error}>と書けば問題ないのですが、setAttributeで渡そうとすると
サニタイズされてしまいます。
766:764
05/12/11 01:36:43
>>763
>smartyのデリミタが<{と}>です。
これ読めてなかった… すまん、763
767:762
05/12/11 11:51:35
リダイレクト後にexitしてるのが問題だっただけだった。
リダイレクトっていっても
ヘッダに出力するだけで、
処理が止まるわけじゃないんだよな。
768:nobodyさん
05/12/12 19:50:27
mojavi3つかってます。
modelで$this->getContext()->getRequest();するのと、
actionで$this->getContext()->getRequest();してモデルに渡すのと
どっちがmvc的に正しいですか?
769:nobodyさん
05/12/12 20:44:06
>>768
モデルはコントローラやビューと結合していないのが理想なので、action で
リクエストを取得して、それに応じて model に渡すのがよいと思う。
770:nobodyさん
05/12/12 20:44:31
「結合してない」って言い方は悪いな。「疎結合」に言い替える。
771:nobodyさん
05/12/12 20:44:42
>>768
前者の方がmodelとactionの結合が疎になりやすい。
772:768
05/12/12 21:33:07
どうもありがとうございました。
さっぱりしました。
773:nobodyさん
05/12/12 23:43:46
>>769
えええええええええええ?
だったらなんでmodelに
$this->getContext()->getRequest();
できる機能わざわざつけてあるのさ。
actionもMVCのmodelに相当するんじゃないの?
model内で
$this->getContext()->getRequest();とかやって、
actionでgetModelするのが普通だと思うが。
>>772よ。すっきりするのはまだ早い
774:nobodyさん
05/12/12 23:50:24
moja3て、Modelがあんだ~
class HogeModel extends Model って感じ?
775:nobodyさん
05/12/13 00:06:36
>>773
> actionもMVCのmodelに相当するんじゃないの?
違うよ。controllerとmodelのアダプタ(アダプタパターンとは別の意味)。
controllerの一部をコマンドパターンとして抽出したとも見れる。
だから本当はactionはビジネスロジックを書くところじゃないんだけど、ロジックもそのまま書けてしまう手軽さは利点であり欠点でもあると思う。
requestをいじるのはcontrollerであるべきだと思うから俺はaction内でgetRequestして、相応のmodelを呼び出す派。
776:768
05/12/13 01:51:59
やっぱり、model内で
$this->getContext()->getRequest();
のはなんか気持ち悪い。
777:nobodyさん
05/12/13 01:56:13
俺もactionでrequest派。
最初はmodelでやっていたが
そうなると、起点となるactionを見ただけでは
どんなパラメータをいじっているのかが分からず、
流れを把握しにくくなったから。
またリクエストパラメータはどちらかといえば
プレゼンテーション層に属するものなので
プレゼンテーション層であるactionで受け取るのが理にかなっている
とも思う。
バリデーションやコンバートはactionでやってるんだから
ノータッチでmodelに渡していても疎結合とは言えないのでは?
むしろactionで受け取ってmodelに渡すというレイヤパターンにした
方が疎結合といえる気がする。
778:nobodyさん
05/12/13 10:18:09
model で request 処理すると,model の unit test がやり辛くなると思う
それって context と request の両方を外部に依存することになるし
action で request を処理しちゃえば model は request の「値」のみに依存することになり
より疎結合になる
# なんてことを周囲に喋ると「日本語喋れ」とか言われる罠w
779:nobodyさん
05/12/13 11:29:59
記述が楽=疎結合じゃないんだよね
プロトコルを増やすわけだからむしろ記述は面倒くさくなりがち
780:nobodyさん
05/12/13 14:13:53
>>773
フレームワークが許容しているのと、理想的な設計との間には
隔たりがあるってことを理解するべき。
元の質問は
> どっちがmvc的に正しいですか?
‥なので、MVC 的には action に依存しない方が理想だろうね。
>>778 のいう「unit test がやり辛い」ってのは、model がフレームワークと
密接に結合していて使い勝手が悪い証拠。結合度が高いので、再利用しずらい
(再利用する時に、間接的にフレームワークにも依存することになる)。
model と action を分離しておけば、例えば、Web アプリとは別に DB に対する
バッチ処理を PHP で書く必要がでてきた時に model を流用できる。
ただ、理想的な設計が、即座に現場で適用されるべきかというと、それは
また別問題だけどな。
781:nobodyさん
05/12/13 18:51:28
>>780
いや、疎結合とかはlib側で考えるもんなんじゃないの?
>フレームワークが許容しているのと、理想的な設計との間には
>隔たりがあるってことを理解するべき。
許容じゃなくて、意図的に実装してるんだとおもうんだけど。
modelは明らかにactionと密接な連携を取るためのものだと思うし。
>model と action を分離しておけば、例えば、Web アプリとは別に DB に対する
>バッチ処理を PHP で書く必要がでてきた時に model を流用できる。
その流用はlibでつくったもののがやりやすいよね。
782:nobodyさん
05/12/13 18:54:29
>>777
自分は逆にactionはどんなmodelを使ってるかの道しるべとして使ってるから
流れ把握は全然困らない。てかむしろしやすい。
783:nobodyさん
05/12/13 18:59:51
てか、そもそもlibの存在忘れて疎結合とか言ってない?
784:nobodyさん
05/12/13 19:08:07
libって何さ、ライブラリ?
785:nobodyさん
05/12/13 19:10:01
なにこの流れ。
スゴいお勉強になるんだけお。
786:nobodyさん
05/12/13 19:11:38
>>780の言う「許容」ってのはModel内で$this->getContext()->getRequest()できちゃうって話だよね?
>>781と微妙に噛み合ってないみたいだけど。
つーかMojaviに関して言えばContextに一貫性を持たせようとした結果、たまたまModelの中でもRequestが取得できてしまうとも見れると思う。
その意味ではMojaviの欠点の一つかもしれんな。
まあ>>773から反論がない限りはgetRequestはActionでやるべきってのは満場一致でしょ。
その結論に至る思考プロセスが個々人いろいろなのがおもしろいなw
787:nobodyさん
05/12/13 19:18:52
>>786
ん?かみ合ってないのか?
>つーかMojaviに関して言えばContextに一貫性を持たせようとした結果、たまたまModelの中でもRequestが取得できてしまうとも見れると思う。
つまり、Requestだけはmodelでやるべきではないってこと?getControllerやgetUserはありで?
だったらかみ合ってないてのはわかるんだけど。
>>784
いや、libはautoloadで定義するやつよ。
こいつにこそ疎結合を求めるもんだとおもうんだけど…
788:nobodyさん
05/12/13 19:21:40
>>786
ちなみにlibとmodelはどう区切ってる?
789:nobodyさん
05/12/13 19:34:56
M2のactionChainがなくなったのも、デコレータだけじゃなくgetModelが
追加されたからなんだと思うし…
790:786
05/12/13 19:40:45
>>787
いや、「かみ合ってない」って言葉が気に障ったなら気にしないでくれ。
疎結合の話に対してではなく、request云々の方で感じたこと。
> 許容じゃなくて、意図的に実装してるんだとおもうんだけど。
の部分ね。
modelとlibのどちらに疎結合を求めるかってのにはノーコメント。
俺の場合はlibにフレームワークのコンポーネントから外れた自分クラスとかは入れないんで。
多くはModelで、あとはSmartyの実装が微妙だったころに改造したViewとか。(最新バージョンがどうなってるのかはチェックしてない)。
> つまり、Requestだけはmodelでやるべきではないってこと?getControllerやgetUserはありで?
まあそういう風に見るとrequestとuserの非対称性が浮き彫りになるが、俺の場合は結果的にはそういう方針でやってるよ。
Modelの中でgetRequestを呼び出すのはせいぜいsetErrorするときだけだな。
>>788
前述の通り、俺的には「区切ってる」っていう感覚ではあまりない。
共通して使うものをlibに入れるだけ。
791:nobodyさん
05/12/13 19:51:24
フレームワークだから
ある程度の自由度を残してるのは当然ともいえるし
どっちもアリっちゃアリだな。
792:nobodyさん
05/12/13 19:54:09
>>790
なるほど、そういうことね。確かに勘違いだわ。
でも、
>まあそういう風に見るとrequestとuserの非対称性が浮き彫りになるが、俺の場合は結果的にはそういう方針でやってるよ。
getUserもmodel内で使ってるんだ?
ますますわからんくなってきた…
ちなみに
URLリンク(forum.mojavi.org)
ここにあるようなソースはアリなんだよね?
793:nobodyさん
05/12/13 19:56:03
context自体を渡すことがおかしいって言ってるのかと勘違いしてた。
794:nobodyさん
05/12/13 19:59:28
どっちにしても、自分の場合、actionはアダプタじゃなくてmodelで、
action内が複雑になりそうなときmodelに助けを求めるって感じでやってるから。
例えmodel内でgetRequestしても自然なつもりなんだけどなぁ
795:768
05/12/13 20:11:31
じつはagaviでした。
agaviだとみんな食いついてくれないと思ったので.
結果予想以上に皆さんの意見が聞けてよかった。
796:nobodyさん
05/12/13 20:13:34
>>792
うーん、そこのソースのマズイ部分ってとりあえずどこ?w
つーかgetUserをModelでやるのっておかしいかな?言われてみると少し迷うな。
ログインの処理をする専用のModelとかそのままsetAuthenticatedしてるのと、あとはaddCredentialみたいなのもModelの中でちらほらやってしまっている。
もろにビジネスロジックかと思うんだが。
>>794
まあどういう風にやっても間違いってことはないと思う。
Actionにビジネスロジックを書いても結果的には「ロジックとデザインの分離」っていう大元の目的は達成されてるわけだし。
797:nobodyさん
05/12/13 20:28:15
>>795
みなさんというか、2、3人だと思うけどね。自分含めてw
798:nobodyさん
05/12/13 20:31:02
>>797
まーこの板はそういうとこだよなw
799:nobodyさん
05/12/13 20:34:29
>>796
>うーん、そこのソースのマズイ部分ってとりあえずどこ?w
その感想自体が答えですw さんきゅw
>ログインの処理をする専用のModelとかそのままsetAuthenticatedしてるのと、あとはaddCredentialみたいなのもModelの中でちらほらやってしまっている。
まぁたしかにgetUserはその辺の機能があるからね。言われれば気持ちはわかる。
ちなみに開発人数はどれくらい?
自分のとこの場合人数が5人で中途半端だから、下手に縛り設けようにもうまく機能しないことが多いんだよね…
フレームワークで許されている権利は使ってよしってことにしてるからってのもあるかも。
800:nobodyさん
05/12/13 20:35:06
userをmodelでいじるのは全然おかしくないと思う
つまるところセッションだし。
requestはブラウザから直接送られてくるデータだから、
いきなりmodelにいじらせるには生々しすぎる感じがするな。
801:nobodyさん
05/12/13 20:40:49
>>800
いや、それだと話がループする…
802:nobodyさん
05/12/13 20:42:35
>>800
そこはmodelで疎結合かどうかの話でしょ?
803:nobodyさん
05/12/13 20:45:33
>>800
>requestはブラウザから直接送られてくるデータだから、
おいおい大事なget,setAttributeはどこいった?
804:nobodyさん
05/12/13 20:53:12
ひょっとして、getRequest=ブラウザからのデータで話進められてたの?
805:nobodyさん
05/12/13 21:18:59
ああ、attribute忘れてたw
内部パラメータとしてのattributeならmodelでいじってもおかしくはないよね
viewに渡すためのコンテナとしてなら、
modelから受け取ってactionでこめこめするのがいいと思う
806:nobodyさん
05/12/13 21:31:18
modelでごにょごにょしたものはactionにいくのか?
それともviewか?
807:nobodyさん
05/12/13 21:38:24
>>792-793
model に context が渡ってること自体が気に入らない。理由は >>796 の人が
述べてる理由が近いかな。
>>805
attribute も model じゃ触らない。ビジネスロジックはコントローラに封じ込
めるべきってのは大体の人が賛成してくれると思うけど、attribute を
ビジネスロジックに一切関係ない使用例を見たことがない。もしあるなら
示してくれると、すごく嬉しい。
一般的(≒ Java の世界)にはそういう流れになってない?
モデルは POJO (getter/setter だけのオブジェクト) にして、必要に応じて
AOP でDAO や O/R マッピングしなさい、と。
808:nobodyさん
05/12/13 21:51:40
Javaとは言語仕様も実際の使われ方も違うのに、StrutsやIBMのホワイトペーパーと無理にあわせてもしょうがない。
809:nobodyさん
05/12/13 21:55:50
>>807
>model に context が渡ってること自体が気に入らない。
えぇ?なんで気に入らないのに
>>796の人と同意なの?
根本的におかしいぞそれ。
810:nobodyさん
05/12/13 21:56:59
>>807
つまり、>>792のソースもおかしいってことだよね?
811:nobodyさん
05/12/13 21:58:05
>>806
actionにいってからviewじゃない?
直接viewにいくのはなんか気持ち悪いな
>>807
Model=POPOなの?
そこまで疎結合にするならModelをextendsする意味がないような…
俺はModel≒ビジネスロジックという認識だった。
812:nobodyさん
05/12/13 22:00:37
一般的ではなくm3やagaviで開発する上での話をしているので、
>>807の話はお門違いなわけだが
813:nobodyさん
05/12/13 22:04:25
mvc的に正しいのはって聞いてるんだから御門違いじゃないだろう
814:nobodyさん
05/12/13 22:05:40
まぁ、お門違いじゃないにしてもおかしなこと言ってるのは確かだな
815:nobodyさん
05/12/13 22:17:24
807は
モデルはフレームワーク自体からも疎結合である方がいいって意味だよね。
考え方は分からないでもないけど
そこまで疎にする必要がはたしてあるのか…
そもそもフレームワークを採用する時点で
全面的な依存を選択しているわけで、
モデルだけを疎結合することにどれほどの意味があるのか
816:nobodyさん
05/12/13 22:17:28
javaが一般的ってのも今は大分微妙になってるけどなぁ
817:nobodyさん
05/12/13 22:19:09
そもそもMVCモデルってそれぞれが密接に関連してるよなぁ
疎を考えるんなら777の言うようにレイヤーパターンで考えたほうが良いと思う
MVCパターンをレイヤーパターンに置き換えると
VCがプレゼンテーション層
Mがドメイン層とデータソース層
それぞれの層は独立していて別の層を知らないのが理想
actionはドメイン層とプレゼンテーション層の中間層かな?
だからactionは
プレゼンテーションからの入力(リクエストパラメータ)を受け取る
ドメインロジックを呼び出す
パラメータをドメインロジックに渡す
ドメインロジックでゴニョゴニョした結果をプレゼンテーションロジックに渡す
こんな流れがいいんじゃないかなぁ
結論、mojaviのModelクラスはイラネ
818:nobodyさん
05/12/13 22:19:56
>>815
あぁ、激しく同意…
多分agaviも>>815みたいな思想があってああいう設計になってるんだと思う。
819:nobodyさん
05/12/13 22:23:54
>>817
それだとactionがちょっとややこしくなっちゃわない?
820:nobodyさん
05/12/13 22:33:04
>>815
>>817
おまいらユニットテストしないんですか?
>>819
むしろすっきりする
actionにロジック書くわけじゃないからね
あくまでAPIを呼び出して使うだけ
mojavi的にはこんな感じ
$id = $request->getParameter('id');
$service = new HogeService();
$hoge = $service->getHoge($id);
$request->setAttribute('hoge', $hoge);
821:nobodyさん
05/12/13 22:34:10
>>817
最後の結論だけ良く分からない
Model=ドメインロジックで問題なくね?
822:nobodyさん
05/12/13 22:36:37
>>820
autoload.iniが大変なことになりそうだ。
823:nobodyさん
05/12/13 22:49:29
>>820
それってデータベースコネクションはどこでどうやって呼出してんの?
824:nobodyさん
05/12/13 23:00:01
autoload.iniの項目が多いとやっぱり遅くなるの?
おれはできるだけ使わんやつは消しとるよ。
825:nobodyさん
05/12/13 23:04:08
>>821
概念的にはその通りだけど
mojaviのModelクラスに依存したくないという意味でイラネということです
>>822
それすごく悩んだけど
自前のクラスローダーで解決したお
>>823
DB接続用クラスをSingletonで作成してどこからでも呼び出せるようにしてるよ
DB::getConnection()みたいな感じで
といってもどこからでも呼び出してるわけじゃないけどね
826:nobodyさん
05/12/13 23:55:30
>>825
なんかもうそれ自分ルールだらけじゃん…
まぁ別にそれが悪いわけではないけど
827:nobodyさん
05/12/13 23:58:11
>>825
>自前のクラスローダーで解決したお
それはautoload側をいじったのか、ロード関数みたいなのつくったのか
828:nobodyさん
05/12/14 00:01:27
結論
>>825のやってることは、agaviのmodelで解決。
無駄な作業乙
829:nobodyさん
05/12/14 00:34:57
もしかしてSingletonModelってクラス?
Singletonごときでなんであんなものに頼らなきゃいけないのか疑問・・・。
しかもグローバルに呼び出しできなくなるし
830:nobodyさん
05/12/14 00:41:56
PHPでシングルトンってほぼ無意味だよな。
831:nobodyさん
05/12/14 01:27:53
>>830
まあどちらかと言うと、インスタンス2つ以上作ろうとする方が頭どうかしてるもんな。
Controllerとか。
832:nobodyさん
05/12/14 01:43:05
>>830
リクエスト毎にオブジェクトが生成->破棄されるという意味では無意味だな。
ログとかDBコネクションとかでは使えるけど、それもグローバル変数に入れとけばいいみたいな。
833:nobodyさん
05/12/14 01:44:31
HTTPリクエスト単位で記憶が失われるPHPでは
シングルトンって「グローバル変数のオブジェクト指向版」みたいな意味しかない気がする
実際に役に立つのはDB接続みたいなリソース使いまわしくらいって印象が……
834:nobodyさん
05/12/14 01:46:05
>>824
クラスが必要なときのみ読みこむようにその設定があるんだし、そんなに気にしなくてもいいのでは。
まぁ少ないほうが早いに決まってるけど。
835:nobodyさん
05/12/14 03:49:22
>>825=>817
そこまで行くとMojaviの理念から外れてるし、それはもうmojaviから派生した>817のフレームワークであって、
とても「mojaviを使っている」とはいえないと思うが。
なのでmojavi(agavi)でMVCどうやるのか(requestをどう扱うか)っていう話においては参考にならない。
>>820
も同様
ただ、ユニットテストはMojaviの致命的な欠点だとおもう。
本題の"request"の扱いについてはModelはControllerを知るべきではない、
そして"request"はControllerである。よって"request"は"Model"で扱うべきではない。
とおもうが。
実際はModelでしかたなくrequest呼び出したことありますごめんなさい。
設計が悪かった。反省してます。
836:nobodyさん
05/12/14 06:37:08
オブジェクトの依存性の話なのか設計上の規約も含めるのか判らん
837:nobodyさん
05/12/14 06:44:24
誰か両方の意見をまとめてくり
838:nobodyさん
05/12/14 07:15:24
いや、なんか感動。
疑問は晴れてないけど。
839:nobodyさん
05/12/14 10:23:55
図にしてみたぞ♥
Controller
↓
Request ⇔ Action ⇔ Model ⇔ User,Database
↓
Controller
↓
Request ⇔ View ⇔ Model
|
←|→
プレゼンテー | ドメイン層、データソース層
ション層 |
|
俺にとってActionとはControllerの一部であり、Requestの受付とModelの呼び出し以外のことはしない。
Action::executeすげーシンプルウマー(AAry)。>>820、>>835と基本的に同じ。
俺にとってModelとはMojavi内で唯一ビジネスロジックを担当する部分である。
ちなみにModel以外はデータ層に触りません!