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

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    601 : nobodyさん - 2009/09/07(月) 05:04:58 ID:??? (+3,-29,-130)
    WEBの基礎知識をすっ飛ばしちゃうから
    登竜門としては Perl/CGI の方が良いと思うけどなぁ。

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

    バグが発生した時に、原因の切り分けが出来なくて困ってる人をよく見る。
    602 : nobodyさん - 2009/09/07(月) 05:20:04 ID:??? (+57,+29,-55)
    それは言語関係ないと思うけどな

    俺はPHPからだったけどWebカメラいじりたくてソケットから弄りだした
    まぁその前がC/C++だったから、文字列の扱いが超簡単で楽だったなぁ
    603 : nobodyさん - 2009/09/07(月) 06:41:11 ID:??? (+91,+29,-25)
    変数のスコープが関数単位だから、処理を局所化したコードの書き方が身につかない。
    604 : nobodyさん - 2009/09/07(月) 10:46:40 ID:??? (+70,+29,-5)
    >>603
    前半と後半のつながりがさっぱりわからん
    605 : nobodyさん - 2009/09/07(月) 10:53:21 ID:??? (+52,+29,-12)
    PHPしか知らないとそうなる。
    606 : nobodyさん - 2009/09/07(月) 11:26:17 ID:??? (+57,+29,-37)
    関数内でさらに局所かしたいってこと?
    確かにできたほうがいいけど、関数をあまり巨大化させなければそれほど問題にならないのでは?
    PHPのだめな所はもっと他にあるだろ
    607 : nobodyさん - 2009/09/07(月) 11:34:03 ID:??? (+99,+29,-63)
    たぶん、複数の関連性の強い関数群と、それらの間だけで欲しいデータとかのこと言ってるんじゃ
    ないかな、603は。
    PHPだとそれらを別ファイル分けて書いて見通しだけは良くしても、結局includeだから同一ソース
    ファイルに全部放り込んでるのと変わらん、データの独立性が…とか言いたいのかも。

    まあ、クラス使えばいいと思うけど、そういうのは。
    608 : nobodyさん - 2009/09/07(月) 11:42:30 ID:??? (+57,+29,-2)
    603はクラスも知らん子ということですか。
    609 : nobodyさん - 2009/09/07(月) 12:08:07 ID:??? (+53,+29,-53)
    CやPerlと同じ。書き手の裁量が大きい。
    つまり糞がかけば糞になる程度がやや大きい。

    その程度の話なんだが言語やOSの話になると痛いのがわんさか沸いてくる。
    610 : nobodyさん - 2009/09/07(月) 18:10:57 ID:??? (+52,+29,+0)
    みんな喧嘩すんなよ
    611 : nobodyさん - 2009/09/07(月) 19:14:09 ID:??? (+89,+23,-42)
    スコープが関数単位なのって、PHPとJavaScriptぐらいなものなんだ。もっともJavaScriptですら新しいバージョンじゃブロックスコープになるが。
    612 : nobodyさん - 2009/09/07(月) 21:03:02 ID:??? (+103,+29,-21)
    >>611
    > スコープが関数単位
    今まで知らなかったよ。
    今までのいろんな謎が一気に解けた。ありがとう。
    613 : nobodyさん - 2009/09/07(月) 21:10:03 ID:??? (-1,-29,-6)
    array array array array がめんどくさい
    614 : nobodyさん - 2009/09/07(月) 21:40:15 ID:??? (+71,+29,-8)
    >>612
    えっ?なんだと思ってたの?
    615 : nobodyさん - 2009/09/07(月) 23:23:59 ID:??? (+76,+30,-96)
    >607がアホだという事は分かった。

    俺も関数を短くするタイプだから、ブロックスコープはあまり必要性を感じないな。
    ブロックの中が10行超えたら大抵メソッド化しちまうから特に困らん。
    勿論ブロックスコープが悪いとは思わんが、初心者の学習コストを上げるほどのメリットを感じない。
    616 : nobodyさん - 2009/09/07(月) 23:26:06 ID:??? (+57,+29,-20)
    ブロックスコープってそんなにいいの?何か効果が分かる例出して
    617 : nobodyさん - 2009/09/07(月) 23:40:34 ID:??? (+54,+26,-15)
    行の長さに応じてメソッド化するとか意味不明すぎる
    618 : nobodyさん - 2009/09/07(月) 23:44:47 ID:??? (+57,+29,-51)
    だいたい1メソッド20行超えるようだったら能毎分割できるだろう、
    とかみたいな目安の話じゃろ。わりとよく聞く話だとおもうけど
    619 : nobodyさん - 2009/09/07(月) 23:57:18 ID:??? (+57,+29,-5)
    むしろ、途中で変数宣言するとかの方がおかしいと思うのだが
    全部関数の初めでやればいいじゃん。
    620 : nobodyさん - 2009/09/08(火) 00:02:55 ID:??? (+52,+29,+0)
    それもなんだかなぁ
    621 : nobodyさん - 2009/09/08(火) 00:06:12 ID:??? (+91,+29,-7)
    関数の最初に全部ってのは廃れたやり方だな
    622 : nobodyさん - 2009/09/08(火) 00:08:19 ID:??? (+57,+29,-6)
    最初に宣言しないと用途わからなくなるくらい冗長ってことだしなぁ
    623 : nobodyさん - 2009/09/08(火) 00:11:52 ID:??? (+104,+29,-7)
    >>621
    そうなの?
    じゃあ流行のやり方はどうなってんの?
    624 : nobodyさん - 2009/09/08(火) 00:23:20 ID:??? (+71,+29,-28)
    >>623
    自分は処理毎の先頭で纏めて初期化している。

    意識して関数の先頭で全て宣言する事もあるけど、
    あまりメリットを感じない。
    625 : nobodyさん - 2009/09/08(火) 00:31:02 ID:??? (+57,+29,-10)
    途中で宣言するのは for文とか、カウント系だけかな
    あとは全部頭で初期化してる
    626 : nobodyさん - 2009/09/08(火) 00:33:15 ID:??? (+57,+29,-60)
    クラスプロパティとかは頭におくけど、
    メソッド内のローカル変数なんて必要になったら宣言すりゃいいんじゃね
    よほど長ったらしい関数とかを書くとかじゃない限り分けて宣言するメリットなくね
    627 : nobodyさん - 2009/09/08(火) 00:33:52 ID:??? (+69,-30,-48)
    条件によって途中で関数を抜けるような場合は、頭で初期化してしまうと無駄な気分に・・・
    宣言と初期化分ければそんなに気にならないけど、あまり意味は無い気もするし。


    // $hoge を使わない場合がある。
    function hoge()
    {
    $hoge = new Hoge();
    if (xxxx) return;
    $hoge->hogehoge();
    }
    628 : nobodyさん - 2009/09/08(火) 00:41:51 ID:??? (+62,+29,-38)
    普通はifとかwhileとかのブロックの中でしか使わない変数は、そのブロックの中で宣言するんだよ。
    が、PHPの場合、関数の最初の方で宣言しとくのが分かりやすいと言えば分かりやすい。
    が、そうすると変数名の衝突が起きやすいので、長い変数名を使わざるを得ない。よって、記述が冗長になる。
    629 : nobodyさん - 2009/09/08(火) 00:41:55 ID:??? (+57,+29,-34)
    ブロックスコープ無いってことは、関数呼び出すときに変数を全部初期化してるんじゃないの?
    何かそんな資料を昔見たようなうる覚え
    630 : nobodyさん - 2009/09/08(火) 00:42:18 ID:??? (+52,+29,-14)
    お前らそろそろスレ違いに気付け
    631 : nobodyさん - 2009/09/08(火) 00:53:55 ID:??? (+47,+29,+0)
    はぁい
    632 : nobodyさん - 2009/09/08(火) 00:57:15 ID:??? (+41,+13,-13)
    全部グローバル変数にするのが一番かっこいい書き方
    633 : nobodyさん - 2009/09/08(火) 01:19:29 ID:??? (+6,-21,-37)
    C言語って関数スコープだっけ? ブロックスコープだっけ?
    634 : nobodyさん - 2009/09/08(火) 01:27:39 ID:??? (+17,-5,-25)
    Cはブロックスコープ
    635 : nobodyさん - 2009/09/08(火) 01:28:50 ID:??? (-9,-27,-1)
    ググレカス。
    636 : nobodyさん - 2009/09/08(火) 08:10:48 ID:??? (+22,-5,-1)
    全部関数の先頭で宣言するとか、VBじゃあるまいしw
    637 : nobodyさん - 2009/09/08(火) 08:46:05 ID:??? (+57,+29,-61)
    このスレって、伸びてるなと思って覗いたら、フレームワークとは
    全く関係ない話題で埋め尽くされてることが多いよな。
    相応しいスレはいくらでもあるんだから、そっちでやれや。
    638 : nobodyさん - 2009/09/08(火) 08:57:46 ID:??? (-1,-29,-36)
    そういやVBもブロックスコープじゃなくって、関数単位だったな。VB.NETはブロックスコープになったんだっけ。
    639 : nobodyさん - 2009/09/08(火) 11:39:27 ID:??? (+37,-29,-60)
    >>611
    >スコープが関数単位なのって、PHPとJavaScriptぐらいなものなんだ。?x2028;ダウト。
    変数宣言のない言語はたいてい関数スコープ。PythonもRubyもそう。
    640 : 578 - 2009/09/08(火) 12:25:14 ID:??? (+84,+30,-209)
    お返事が遅くなって申し訳ない。
    ・・・まぁ、この流れはある程度想定の範囲内。
    フツー、「んなもんスクラッチで書けよ」って思うよなw

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

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

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

    >>590
    あることぁあるが、PHP4の時代のヤツなんでねぇw>俺俺ライブラリ
    ま、正規表現は確かに苦手だ。eregとpregでビミョーに違うのもややこしいしw
    641 : nobodyさん - 2009/09/08(火) 12:31:29 ID:??? (+50,+17,-25)
    >>639
    Rubyはブロックスコープだが。
    642 : nobodyさん - 2009/09/08(火) 18:43:17 ID:??? (+55,+23,-17)
    どのフレームワークのコーディングがきれい?
    643 : nobodyさん - 2009/09/08(火) 19:28:03 ID:??? (+6,-29,-7)
    >>642
    好みが大きいと思うけど、標準的なPHPという点ではZFかな?
    644 : nobodyさん - 2009/09/08(火) 19:41:42 ID:??? (+0,-28,-46)
    ZFはコーディング規約の為のFWと言っても過言では無いからなw
    645 : nobodyさん - 2009/09/08(火) 19:42:43 ID:??? (+62,+29,-16)
    あぁ、クエリを弄れる人がいないのか
    646 : 645 - 2009/09/08(火) 19:44:11 ID:??? (+7,-10,-1)
    誤爆スマソ。
    647 : nobodyさん - 2009/09/09(水) 02:15:12 ID:??? (+59,+26,-3)
    >>627
    その例は設計が悪い
    648 : nobodyさん - 2009/09/09(水) 03:38:43 ID:??? (+9,-26,-21)
    >>647
    具体的に何が?割とよくあるコードだと思うけど?
    return に限らず throw とかも含めてね。
    649 : nobodyさん - 2009/09/09(水) 04:07:50 ID:??? (+50,+22,-9)
    使わないのなら関数で処理分けろよ
    バグの温床じゃん
    650 : nobodyさん - 2009/09/09(水) 04:39:08 ID:??? (+72,+29,-96)
    バリデーションとか含めるとどうしても >>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 スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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