のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,652,905人
昨日:no data人
今日:
最近の注目
人気の最安値情報

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

php覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
601 = :

WEBの基礎知識をすっ飛ばしちゃうから
登竜門としては Perl/CGI の方が良いと思うけどなぁ。

PHPから始めた人て、HTTP通信のバックエンドや、文字コードを理解して無い人が多いよね
multipartなPOSTデータをパースしたり、URLエンコード/デコードしたり、クッキーやセッションの仕組みを理解してなかったり、etc

バグが発生した時に、原因の切り分けが出来なくて困ってる人をよく見る。

602 = :

それは言語関係ないと思うけどな

俺はPHPからだったけどWebカメラいじりたくてソケットから弄りだした
まぁその前がC/C++だったから、文字列の扱いが超簡単で楽だったなぁ

603 = :

変数のスコープが関数単位だから、処理を局所化したコードの書き方が身につかない。

604 = :

>>603
前半と後半のつながりがさっぱりわからん

605 = :

PHPしか知らないとそうなる。

606 = :

関数内でさらに局所かしたいってこと?
確かにできたほうがいいけど、関数をあまり巨大化させなければそれほど問題にならないのでは?
PHPのだめな所はもっと他にあるだろ

607 = :

たぶん、複数の関連性の強い関数群と、それらの間だけで欲しいデータとかのこと言ってるんじゃ
ないかな、603は。
PHPだとそれらを別ファイル分けて書いて見通しだけは良くしても、結局includeだから同一ソース
ファイルに全部放り込んでるのと変わらん、データの独立性が…とか言いたいのかも。

まあ、クラス使えばいいと思うけど、そういうのは。

608 = :

603はクラスも知らん子ということですか。

609 = :

CやPerlと同じ。書き手の裁量が大きい。
つまり糞がかけば糞になる程度がやや大きい。

その程度の話なんだが言語やOSの話になると痛いのがわんさか沸いてくる。

610 = :

みんな喧嘩すんなよ

611 = :

スコープが関数単位なのって、PHPとJavaScriptぐらいなものなんだ。もっともJavaScriptですら新しいバージョンじゃブロックスコープになるが。

612 = :

>>611
> スコープが関数単位
今まで知らなかったよ。
今までのいろんな謎が一気に解けた。ありがとう。

614 = :

>>612
えっ?なんだと思ってたの?

615 = :

>607がアホだという事は分かった。

俺も関数を短くするタイプだから、ブロックスコープはあまり必要性を感じないな。
ブロックの中が10行超えたら大抵メソッド化しちまうから特に困らん。
勿論ブロックスコープが悪いとは思わんが、初心者の学習コストを上げるほどのメリットを感じない。

616 = :

ブロックスコープってそんなにいいの?何か効果が分かる例出して

617 = :

行の長さに応じてメソッド化するとか意味不明すぎる

618 = :

だいたい1メソッド20行超えるようだったら能毎分割できるだろう、
とかみたいな目安の話じゃろ。わりとよく聞く話だとおもうけど

619 = :

むしろ、途中で変数宣言するとかの方がおかしいと思うのだが
全部関数の初めでやればいいじゃん。

620 = :

それもなんだかなぁ

621 = :

関数の最初に全部ってのは廃れたやり方だな

622 = :

最初に宣言しないと用途わからなくなるくらい冗長ってことだしなぁ

623 = :

>>621
そうなの?
じゃあ流行のやり方はどうなってんの?

624 = :

>>623
自分は処理毎の先頭で纏めて初期化している。

意識して関数の先頭で全て宣言する事もあるけど、
あまりメリットを感じない。

625 = :

途中で宣言するのは for文とか、カウント系だけかな
あとは全部頭で初期化してる

626 = :

クラスプロパティとかは頭におくけど、
メソッド内のローカル変数なんて必要になったら宣言すりゃいいんじゃね
よほど長ったらしい関数とかを書くとかじゃない限り分けて宣言するメリットなくね

627 = :

条件によって途中で関数を抜けるような場合は、頭で初期化してしまうと無駄な気分に・・・
宣言と初期化分ければそんなに気にならないけど、あまり意味は無い気もするし。


// $hoge を使わない場合がある。
function hoge()
{
$hoge = new Hoge();
if (xxxx) return;
$hoge->hogehoge();
}

628 = :

普通はifとかwhileとかのブロックの中でしか使わない変数は、そのブロックの中で宣言するんだよ。
が、PHPの場合、関数の最初の方で宣言しとくのが分かりやすいと言えば分かりやすい。
が、そうすると変数名の衝突が起きやすいので、長い変数名を使わざるを得ない。よって、記述が冗長になる。

629 = :

ブロックスコープ無いってことは、関数呼び出すときに変数を全部初期化してるんじゃないの?
何かそんな資料を昔見たようなうる覚え

630 = :

お前らそろそろスレ違いに気付け

631 = :

はぁい

632 = :

全部グローバル変数にするのが一番かっこいい書き方

633 = :

C言語って関数スコープだっけ? ブロックスコープだっけ?

634 = :

Cはブロックスコープ

636 = :

全部関数の先頭で宣言するとか、VBじゃあるまいしw

637 = :

このスレって、伸びてるなと思って覗いたら、フレームワークとは
全く関係ない話題で埋め尽くされてることが多いよな。
相応しいスレはいくらでもあるんだから、そっちでやれや。

639 = :

>>611
>スコープが関数単位なのって、PHPとJavaScriptぐらいなものなんだ。?x2028;ダウト。
変数宣言のない言語はたいてい関数スコープ。PythonもRubyもそう。

640 = :

お返事が遅くなって申し訳ない。
・・・まぁ、この流れはある程度想定の範囲内。
フツー、「んなもんスクラッチで書けよ」って思うよなw

>>587
相手についての考察は大体そのとおり。だからpear使いたくなかったんよ。
レンタルチャットでは多分無理。少なくともかなりのカスタマイズしないといけないんで、結局手間はあんまり変わらないと思われ。

>>588
これは知らなかった。ORマッパ無しというのもいいかも。
少し調べてみるっす。感謝>fitzgerald

エスケープ/サニタイズは、まぁPHPは結構便利な関数があるからそんなに面倒ではないんだけどね。
ま、>>578のとおり、そんなにがっちり組む必要もないんだし、
>大体バリデーションつっても、入力文字の<>&あたり置換すりゃ早々問題なんて起きんだろうし
>ログだってファイルにはいていいんじゃね、小一時間もありゃ書けるでしょ
でいいっちゃいいと思うんだがね。

>>590
あることぁあるが、PHP4の時代のヤツなんでねぇw>俺俺ライブラリ
ま、正規表現は確かに苦手だ。eregとpregでビミョーに違うのもややこしいしw

641 = :

>>639
Rubyはブロックスコープだが。

642 = :

どのフレームワークのコーディングがきれい?

643 = :

>>642
好みが大きいと思うけど、標準的なPHPという点ではZFかな?

645 = :

あぁ、クエリを弄れる人がいないのか

646 = :

誤爆スマソ。

647 = :

>>627
その例は設計が悪い

648 = :

>>647
具体的に何が?割とよくあるコードだと思うけど?
return に限らず throw とかも含めてね。

649 = :

使わないのなら関数で処理分けろよ
バグの温床じゃん

650 = :

バリデーションとか含めるとどうしても >>627 みたいなコードは発生するよ。

A処理、B処理、C処理を連続して順番に処理する事を保証する場合、
内部的にメソッドを分けたとしても、PGに提供するメソッドは一つにするのが普通だろ。
その場合、途中の処理でこけた場合、どの処理でこけたかを判断する為に、return もしくは throw 等を使う。

それをしない方がバグの温床になると思うんだが・・・


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について