[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 17:09 / Filesize : 129 KB / Number-of Response : 666
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】フレームワークについて語るスレ7【総合】



1 名前:nobodyさん [2007/06/09(土) 09:48:36 ID:6f8TWb7Z]
前スレ
【PHP】フレームワークについて語るスレ6【総合】
pc11.2ch.net/test/read.cgi/php/1171896620/

[PHP]フレームワークについて語るスレ5[総合]
pc10.2ch.net/test/read.cgi/php/1159579507/

[PHP]フレームワークについて語るスレ4[総合]
pc8.2ch.net/test/read.cgi/php/1151706907/
[PHP]フレームワークについて語るスレ3[総合]
pc8.2ch.net/test/read.cgi/php/1145971945/
[PHP]フレームワークについて語るスレ2[総合]
pc8.2ch.net/test/read.cgi/php/1135847024/
【PHP】フレームワークについて語るスレ【総合】
pc8.2ch.net/test/read.cgi/php/1123608068/

326 名前:nobodyさん mailto:sage [2007/07/22(日) 17:59:50 ID:???]
俺は関数でもいいと思う派だけど、
関数の場合、初めから用意されてるヘルパーがFW側に置いてあるのはどうかと思う。
コマンドでアプリケーションのディレクトリ構造を展開したときに、アプリ側に展開して欲しい。

クラスにした方がいいと思ったらクラスを作る。libなイメージ。

327 名前:nobodyさん mailto:sage [2007/07/22(日) 18:03:24 ID:???]
staticクラスで、ヘルパー関数を一旦ラップするのをお勧めする

328 名前:nobodyさん mailto:sage [2007/07/22(日) 18:10:22 ID:???]
viewにview helperがmixinされるような形のが一番いいよ
$thisを書くのは必要経費で

329 名前:nobodyさん mailto:sage [2007/07/22(日) 18:19:34 ID:???]
うーんmixinかー
メソッド名が元のviewと被ったら?

330 名前:nobodyさん mailto:sage [2007/07/22(日) 18:33:50 ID:???]
unit test時にわかるでしょ

331 名前:nobodyさん mailto:sage [2007/07/22(日) 18:56:57 ID:???]
>>327
意図は?

staticクラスというのはstaticメソッド群からなるクラスのことだと思うが、
staticメソッドでラップしても関数を関数でラップするのと変わらない。

クラスの(static)プロパティも使用しいくつかのヘルパー関数群を
関連するものとして扱うなら、それはstaticよりもインスタンスにして
投げるインスタンスで振る舞いを変えられるようにしたほうが意味があると思うのだが。

332 名前:nobodyさん mailto:sage [2007/07/22(日) 19:04:54 ID:???]
そこまでやるなら、既存のヘルパ関数なんかそもそも使わん。ヘルパー用クラスを
書くよ。保守を考えてstaticにするのは同一関数(メソッド)名で、とりあえずヘルパ使ってるってことを
明示しつつ拡張するため。関数を同一関数名でラップすることは出来ないからね。

333 名前:nobodyさん [2007/07/22(日) 19:18:21 ID:3PPkob3E]
単にネームスペースの代わりだね。俺もやるよ。

334 名前:nobodyさん mailto:sage [2007/07/22(日) 19:28:48 ID:???]
まあFW側で直接定義されてるfunctionじゃな
オーバーライドすらできんしな、FWのソースを書き換えとか御免だ
ラッパーがstatic/dynamicどっちがいいとかは抜きにして
ラップして使う事自体に意味はちゃんとある



335 名前:nobodyさん mailto:sage [2007/07/22(日) 19:34:02 ID:???]
関数だとどこで定義されているか、わかりにくいしねえ。

336 名前:nobodyさん mailto:sage [2007/07/22(日) 19:37:03 ID:???]
うん、grepすりゃいいからそれは別に困らないがw

337 名前:nobodyさん mailto:sage [2007/07/22(日) 19:50:04 ID:???]
関数ヘルパでも接頭辞付けたらラップできるな

338 名前:nobodyさん mailto:sage [2007/07/22(日) 20:44:06 ID:???]
〜〜すれば〜〜が無くてもおk
って発想を減らしていかないと「誰でも使えるフレームワーク」にならないんだろうね
わかってる人だけでいじるならこの思想の方が楽でいいんだがw

>>319
CodeIgniterも関数じゃなかったかな?

339 名前:nobodyさん mailto:sage [2007/07/22(日) 20:56:10 ID:???]
「誰でも使えるフレームワーク」とか要らん

340 名前:nobodyさん mailto:sage [2007/07/22(日) 22:16:39 ID:???]
誰でも使えないフレームワーク誕生の瞬間である

341 名前:nobodyさん mailto:sage [2007/07/23(月) 00:56:07 ID:???]
>>317
変数はグローバルスコープに登録されてるわけじゃないよ
メソッド中のローカルスコープにテンプレートを読み込んでるだけ。
テンプレートを基準にして見るとグローバルスコープかと思えるけど。

342 名前:nobodyさん mailto:sage [2007/07/23(月) 07:09:56 ID:???]
>>338
FWが機能を実装してなくてもいいんじゃないのかね。
外部ライブラリの導入やユーザ拡張がしやすい設計(MVCが可能な限り疎結合的)
であることが、いいFWの第一条件だと思うよ。
その上で個別に、XXのルータクラスは使いやすいとか、モデルが書きやすいとか、
そういう評価が出てくると思う。

343 名前:nobodyさん mailto:sage [2007/07/23(月) 12:45:58 ID:???]
>>342
FWとは何か?を理解してないやつが語ってるんだからしょうがあるまい。

こう書くと誤解を招く恐れもあるんだが、「仕様こそがFWである」とでも書いておくかな。
じゃないと、いつまで経ってもFWとライブラリの違いも判らん奴が妙な書込みを続けるし。

344 名前:nobodyさん mailto:sage [2007/07/23(月) 20:12:12 ID:???]
>仕様こそがFW
ワケワカラン



345 名前:nobodyさん mailto:sage [2007/07/23(月) 21:56:37 ID:???]
こう書くと誤解を招く恐れもあるんだが、
「『仕様こそがFWである』こそ妙な書込み」とでも書いておくかな。
じゃないと、いつまで経っても妙な書込みとそうでない書込みの
違いも判らん奴が妙な書込みを続けるし。

346 名前:nobodyさん mailto:sage [2007/07/23(月) 22:58:29 ID:???]
フレームワークこそがFWである。

347 名前:nobodyさん mailto:sage [2007/07/24(火) 01:46:05 ID:???]
最近出てきてるとかを見ると、バッドノウハウの温床だな。


348 名前:nobodyさん [2007/07/24(火) 02:52:11 ID:Wl3XMVYJ]
Fireworks

349 名前:nobodyさん mailto:sage [2007/07/24(火) 09:36:30 ID:???]
Firewall

350 名前:nobodyさん mailto:sage [2007/07/24(火) 11:38:30 ID:???]
Frank Williams

351 名前:nobodyさん mailto:sage [2007/07/24(火) 11:45:34 ID:???]
>>347
たとえば?典型例は?

352 名前:nobodyさん mailto:sage [2007/07/24(火) 12:58:42 ID:???]
for ( $i=0,$count=count($contents); $i<$count; $i++ ){

}
ループ中のカウントを減らすためにこういう書き方すんのって
バッドノウハウですか?普通にあり?

353 名前:nobodyさん mailto:sage [2007/07/24(火) 13:07:30 ID:???]
>>352
アリじゃね?

354 名前:nobodyさん mailto:sage [2007/07/24(火) 13:35:50 ID:???]
「for文の条件内でcount()を使うな」はバッドノウハウではないと思うけど
その書き方はどうかと……

$count=count($contents);
for ( $i=0; $i<$count; $i++ ){

}

の方が見る人が理解しやすいと思うなぁ



355 名前:nobodyさん mailto:sage [2007/07/24(火) 14:12:03 ID:???]
激しくどっちでも良過ぎて溜息が漏れる

356 名前:nobodyさん mailto:sage [2007/07/24(火) 14:12:23 ID:???]
なにが「どうかと……」だよ。いたって普通だろうが。

357 名前:nobodyさん mailto:sage [2007/07/24(火) 14:33:10 ID:???]
ワンライナーで書けるものは書けばいいじゃんっていう空気が
phpはあんまりないよな言語仕様による要因が大きいけれども
rubyとかは仕様も使う側もそういう空気に満ち溢れてるから
コードは短いけど行単位の情報量が必然的に多くなる

358 名前:nobodyさん mailto:sage [2007/07/24(火) 14:44:56 ID:???]
forの式1はカンマ区切りで複数とれるのね。しらんかったよ。

359 名前:nobodyさん mailto:sage [2007/07/24(火) 14:49:19 ID:???]
>>352
forループで関数呼び出しを避けたほうがいい
lint.s1.x-beat.com/up/img/up12059.jpg


360 名前:nobodyさん mailto:sage [2007/07/24(火) 15:02:17 ID:???]
>>359
せっかくだから環境も分かるようにしてくれよ。
いつのベンチかわからん。


361 名前:nobodyさん mailto:sage [2007/07/24(火) 15:04:45 ID:???]
>>359
>>352 の関数呼び出しは、評価部分ではなくて、初期代入部分だから、
そのベンチはあてはまらんだろ?

362 名前:nobodyさん mailto:sage [2007/07/24(火) 15:19:32 ID:???]
>>359
よく読め

それを避けたいから
for ( $i=0; $i<count($contents); $i++ ){
でなく
for ( $i=0,$count=count($contents); $i<$count; $i++ ){
なんだろ

363 名前:359 mailto:sage [2007/07/24(火) 15:22:22 ID:???]
>>361
>>352の書き方でいいよといいたかった

364 名前:nobodyさん mailto:sage [2007/07/24(火) 19:12:05 ID:???]
たしかに、自分がPHPで書くときは出来るだけワンライナーは避けてるなぁ。
他者が関わる場合は、極端に言えば本当の初心者が見ても解るように書いてる。
コードの「格好良さ」より、「解りやすさ」重視って感じかな。



365 名前:nobodyさん mailto:sage [2007/07/24(火) 19:56:24 ID:???]
俺もそう。
なんかワンライナーの方がかっこよくみられるけどね。
わかりやすい方がいい。

Rubyみたいに . で右につないでいけると、
ワンライナーも使いやすくなるんだけど。

366 名前:nobodyさん ◆wSaCDPDEl2 mailto:sage [2007/07/24(火) 20:10:07 ID:???]
ワンライナーでなんか書いて

367 名前:nobodyさん mailto:sage [2007/07/24(火) 21:03:40 ID:???]
おとこわりだ!

368 名前:nobodyさん mailto:sage [2007/07/24(火) 21:07:06 ID:???]
どう考えても>>354のほうが視認性があるだろ。


369 名前:nobodyさん mailto:sage [2007/07/24(火) 21:31:29 ID:???]
for文のループに関する議論は、確かsymfonyで話題になったことが
あったみたいだけど、コレすなわち「FWを利用することによるバッドノウハウ」
とはならんよね。

370 名前:nobodyさん mailto:sage [2007/07/24(火) 22:02:50 ID:???]
一方ロシアは
foreach ($contents as $i => $content) { }
を使った

371 名前:nobodyさん mailto:sage [2007/07/24(火) 22:32:45 ID:???]
>>370
なるほど
それいいな
パフォーマンスも問題ない?

372 名前:nobodyさん mailto:sage [2007/07/24(火) 22:38:28 ID:???]
それは、パフォ的にありまくり。使っちゃいけないだろうな。


373 名前:nobodyさん mailto:sage [2007/07/24(火) 22:44:17 ID:???]
えええええ
ロシア駄目じゃん

374 名前:nobodyさん mailto:sage [2007/07/24(火) 22:46:08 ID:???]
手元のテストループで言えば、ロシアは1.5倍増の時間がかかってる。
ロシアの負け。



375 名前:nobodyさん mailto:sage [2007/07/24(火) 22:51:50 ID:???]
つーかPHPならforeachふつうに使うだろ。。
おまえら本当にPHP使ってるのか。

376 名前:nobodyさん mailto:sage [2007/07/24(火) 22:55:11 ID:???]
連想配列なら使うけど普通の配列なら使わない

377 名前:nobodyさん mailto:sage [2007/07/24(火) 22:55:26 ID:???]
for使う事自体が少ないしな

378 名前:nobodyさん mailto:sage [2007/07/24(火) 22:59:14 ID:???]
連想配列の話してるわけじゃないんだけどね。

379 名前:nobodyさん mailto:sage [2007/07/24(火) 23:06:02 ID:???]
・中身だけ使う
foreach ($array as $value) { }
・キーだけ使う
foreach (array_keys($array) as $key) { }
・両方使う
foreach ($array as $key => $value) { }

for使うってのは滅多にないな
しかしFWのスレなのに重隅論議だな

380 名前:nobodyさん mailto:sage [2007/07/24(火) 23:12:00 ID:???]
前にも出た結論な気がするけど
FW使うってだけでそんな重隅最適化なんてぜんぶチャラだよなw

381 名前:nobodyさん mailto:sage [2007/07/24(火) 23:19:46 ID:???]
最適化っていう視点じゃなくて綺麗で視認性がある書き方したい
ってことで見れば別に重箱でもない。

382 名前:nobodyさん mailto:sage [2007/07/25(水) 00:38:21 ID:???]
>綺麗で視認性がある書き方したい
そんなもんPHP使ってる時点で(

383 名前:nobodyさん mailto:sage [2007/07/25(水) 00:46:56 ID:???]
お前みたいな思考停止はイラネ

384 名前:nobodyさん mailto:sage [2007/07/25(水) 01:11:06 ID:???]
ブロックスコープのある言語の使用者にとっては、ブロック内での使い捨ての変数は初期化式で宣言するのが当たり前なんだけどな。
この辺にペチパーの底力を感じる。



385 名前:nobodyさん mailto:sage [2007/07/25(水) 01:34:40 ID:???]
つーか>>370では>>352と挙動が別物なんだがな

386 名前:nobodyさん mailto:sage [2007/07/25(水) 02:26:41 ID:???]
人を見下さずに普通に発言できんものですかねおまいら

387 名前:nobodyさん mailto:sage [2007/07/25(水) 18:00:18 ID:???]
仕様です

388 名前:nobodyさん mailto:sage [2007/07/26(木) 01:09:42 ID:???]
>>351
ページごとにいちいちサブコントローラ(Action)を書かないと動かないような、
無駄にStrutsの汚点を継承しているEthnaとか。

処理系の実装してる組織のくせに言語仕様じゃなくて
コーディングルールでゴリゴリ縛ってるZendとか

しょうもない所でPEAR::DBに依存してるくせにDB::getAll()がラップされてなくて、
結局メンバのPEAR::DBインスタンスに直接アクセスするしか解決方法が無かったりとか

どうせ作業の流れなんて機能単位でしかやらないのに
ファイル構成でモデルとビューのディレクトリががロンドン・パリなみに離れてるわ
さらにそれぞれアクション命名規則に縛られてかなりディープなディレクトリ構成になるわで
Eclipseの画面からはみでてしまって小さい修正のたびに
スクロールバーいじらんなんハメになってたりとか

PHPなんて標準でフォームバリデータとモデル仕様がないから面倒なだけなのに
FWなんて大げさなもんにして一生使いもしないクラスを多重に内包して無駄なメモリ・CPU時間食ってる
PHP用FWの存在意義とか。



389 名前:nobodyさん mailto:sage [2007/07/26(木) 01:14:46 ID:???]
今度は>>388が素晴らしいFWを教えてくれるそうです。

390 名前:nobodyさん mailto:sage [2007/07/26(木) 01:23:09 ID:???]
ページごとにサブコントローラを書かずに動くとしたらどんなの?

391 名前:nobodyさん mailto:sage [2007/07/26(木) 02:59:01 ID:???]
簡単さでいうと、
ちいたん>CodeIgniter>CakePHP>Symfony
ですか?

392 名前:nobodyさん mailto:sage [2007/07/26(木) 09:27:58 ID:???]
>>388
最近の、って言っときながらほとんどEthnaの話だけかよw
Ethnaみたいな旧態依然なFW使ってりゃそりゃBKだらけになるわなw

393 名前:nobodyさん mailto:sage [2007/07/26(木) 11:28:09 ID:???]
BKって何?

394 名前:nobodyさん mailto:sage [2007/07/26(木) 11:33:52 ID:???]
>>モデルとビューのディレクトリががロンドン・パリなみに離れてる
こんなん自分で変えたらいいだけじゃね



395 名前:nobodyさん mailto:sage [2007/07/26(木) 11:47:08 ID:???]
ディレクトリ構成自体がFWの設計であるということも
わからない奴はFWを触るなよ


396 名前:nobodyさん mailto:sage [2007/07/26(木) 11:50:57 ID:???]
こう書くと誤解を招く恐れもあるんだが、「ディレクトリ構成こそがFWである」とでも書いておくかな。

397 名前:nobodyさん mailto:sage [2007/07/26(木) 11:53:52 ID:???]
>>393
ja.wikipedia.org/wiki/BK
好みのものを選んでくれ

398 名前:nobodyさん mailto:sage [2007/07/26(木) 14:20:46 ID:???]
>>388
> 処理系の実装してる組織のくせに言語仕様じゃなくて
> コーディングルールでゴリゴリ縛ってるZendとか
これはまさにその通りだな。
つーか、PHPの開発チームってどういう構成になってるんだ?

399 名前:nobodyさん mailto:sage [2007/07/26(木) 14:36:21 ID:???]
>>397
俺はBerryz工房だな

400 名前:nobodyさん mailto:sage [2007/07/26(木) 14:37:54 ID:???]
FW(的なもの)ありきなものがいいんなら
勝手にcoldfusionなりwebobjectsなりやってくれ

401 名前:nobodyさん mailto:sage [2007/07/26(木) 16:45:14 ID:???]
>>398
コーディングルールでゴリゴリ縛ってるって具体的にどういう所?
クラスの命名規則ってこと?

402 名前:nobodyさん mailto:sage [2007/07/26(木) 22:00:26 ID:???]
>>399
俺は美少女教育が気になる

403 名前:nobodyさん mailto:sage [2007/07/26(木) 22:03:45 ID:???]
>>401
これらね↓
ttp://framework.zend.com/manual/ja/coding-standard.html

?>書かないのも気持ち悪い〜とか思ってたけど、
自然と書かなくなったな。なんかめんどうだから。

404 名前:nobodyさん mailto:sage [2007/07/26(木) 22:31:48 ID:???]
へー。
?>省略は糞だろうなあ。
単にヘッダの空文字列送出防ぐためにやってるんでしょ?
本末転倒だ



405 名前:nobodyさん mailto:sage [2007/07/26(木) 22:59:42 ID:???]
さっさと <?php を省略できるようにしろよ、糞Zend

406 名前:nobodyさん mailto:sage [2007/07/27(金) 00:16:54 ID:???]
sigilは好みもあるからどっちでもいいけど、つけるんだったらコレくらいはパースしてほしい。

<?php
$a = array('a'=>1);
print "$a['a']\n";
?>
↑エラー

#!/usr/bin/perl
%a = ('a'=>1);
print "$a{'a'}\n";
↑「1」。当然の勝利。

407 名前:nobodyさん mailto:sage [2007/07/27(金) 00:32:26 ID:???]
片方を文法に従わず書いて他方を文法に従って書いて何が勝利なのか全然わからんがw
既存の文法が気に食わないならソースにパッチ当ててオリジナルのPHP作って使ったら?

408 名前:nobodyさん mailto:sage [2007/07/27(金) 00:57:19 ID:???]
要するにPHPのパーサーがヘボってこと。

409 名前:nobodyさん mailto:sage [2007/07/27(金) 01:36:06 ID:???]
要してねーだろ
ヘボいのはPHPの文字列解釈仕様であってパーサはその仕様の通りに正常に動いてるんだろーが
自分が何を気に入らないのかすら理解できてないアフォですか?

410 名前:nobodyさん mailto:sage [2007/07/27(金) 01:47:46 ID:???]
仕様って…w。
まあ、PHPはprint $a['a']."\n";とやるしかないわな。
$a = 0 || 100;とか3項演算子の左結合とか、たいそうな仕様だわ。
こういうのが積み重なって、PHPのヘボソースが出来上がる。

411 名前:nobodyさん mailto:sage [2007/07/27(金) 02:17:30 ID:???]
print "{$a['a']}\n";
何もそんなに自信満々で無知をひけらかすことはないと思うんだ。

412 名前:nobodyさん mailto:sage [2007/07/27(金) 02:19:41 ID:???]
print "$a[a]\n"; もしくは print "{$a[a]}\n";

PHPの糞仕様を擁護する気はさらさらねーが
悪口言いたい一心で研究不足を自慢されてもバカじゃね?としか思えん

413 名前:nobodyさん mailto:sage [2007/07/27(金) 02:49:11 ID:???]
>>411
その{}を面倒と思わないなら、それでいいよ。俺はノーサンキュー。

414 名前:nobodyさん mailto:sage [2007/07/27(金) 02:51:10 ID:???]
>>412残念
配列ですべきこととしてはならないこと
なぜ、$foo[bar] は使用できないのか?
www.php.net/manual/ja/language.types.array.php



415 名前:nobodyさん mailto:sage [2007/07/27(金) 09:26:41 ID:???]
>>412は釣りだろ?でなきゃ考え付かない


416 名前:nobodyさん mailto:sage [2007/07/27(金) 15:20:29 ID:???]
codeigniterのリンクヘルパの仕様おかしくね?
引数の順序はfunc(label,uri…)だろ、感覚的に考えて。
anchor(uri,label)ってなめてんのかこの野郎

417 名前:nobodyさん mailto:sage [2007/07/27(金) 15:44:12 ID:???]
<a href="url">label</a> の順序に従ってるんじゃないか?
感覚の問題だから一概には言えないが俺もlabelが前の方が自然だと思う

418 名前:nobodyさん mailto:sage [2007/07/27(金) 15:57:50 ID:???]
<a href="url">label</a>において
href…属性
label…内容
重要度から言えば内容>属性だから、
第一引数は内容=labelがふさわしい

419 名前:nobodyさん mailto:sage [2007/07/27(金) 15:59:34 ID:???]
>>416 のanchor(uri,label) しか見てないけど、
labelは省略可能な気がするから(urlで代替できる)、
それでいいんじゃない。
省略可能かどうかは知らんが。

420 名前:nobodyさん mailto:sage [2007/07/27(金) 16:00:16 ID:???]
フレームワークでは標準的な、
「mod_rewriteを使ってindex.phpを隠す方式」の正式な名称って何ですか?

421 名前:nobodyさん mailto:sage [2007/07/27(金) 16:01:22 ID:???]
>>419
symfony様に喧嘩売ってんのか

422 名前:419 mailto:sage [2007/07/27(金) 16:05:30 ID:???]
マニュアル見たらurlで代替すると書いてるじゃん。
userguide.cilab.info/helpers/url_helper.html
だからこれでいい。

423 名前:nobodyさん mailto:sage [2007/07/27(金) 16:15:18 ID:???]
>>420
正確に指し示すこれっていう名前はないなそう言われてみれば
WEBFWのほぼ標準的な仕様なのにな

424 名前:nobodyさん mailto:sage [2007/07/27(金) 16:33:38 ID:???]
PATH_INFO方式とはまた別なの?



425 名前:nobodyさん mailto:sage [2007/07/27(金) 16:51:30 ID:???]
>>424
PATH_INFOの場合は、..../index.php/foo/barが機能するから直接の関係性はない。

426 名前:nobodyさん mailto:sage [2007/07/27(金) 16:58:19 ID:???]
隠れディスパッチャ方式でok






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<129KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef