PHPで作られた有名サイトってあるの?
■ このスレッドは過去ログ倉庫に格納されています
あるわけないかな。
ウェブ系言語で一番しょぼい言語だし。 Perlはいろんなやり方があって
人それぞれ書き方が違うからだめだろう。 >>563
具体的に何かダメか言ったら?言えないんだろうけどw
お前がPHP知らないようだから書いておくわ。
PHPのオブジェクト指向機能
・classキーワードで簡単にクラスが定義できる
・もちろんクラスを定義するだけで、newでインスタンスが作れる
・interfaceキーワードでインターフェースも作れる
・public、private、protectedスコープがある(カプセル化)
・コンストラクタ、デストラクタがある
・オーバーロードもある
・finalキーワードもある
・extendsで継承ができる
・implementsでインターフェースも継承できる
・abstructで抽象クラス、抽象メソッドが作れる
・traitでトレイトが使える
・クラス定数、インターフェース定数が作れる
・クラスメソッドが作れる
・イテレーターも作れる
・タイプヒンティングがある
・名前空間がある
・無名関数(クロージャー)がある >>565
クラス名の命名方法が恣意的。階層が使えないから「工夫」するしかない。
あ、工夫すれば大丈夫だから大丈夫なんだっけ、PHPerは。 >>566
え? それだけ?
ネーミング規約の話で終わりなんだw ネーミング規約ならある
http://framework.zend.com/manual/ja/coding-standard.naming-conventions.html
Zend Framework では、クラスの名前が保存先ディレクトリに直接対応するような
命名規約を採用しています。Zend Framework 標準ライブラリの最上位レベルの
ディレクトリは "Zend/" ディレクトリです。一方、Zend Framework 追加ライブラリの
最上位レベルのディレクトリは "ZendX/" ディレクトリです。この配下に、すべてのクラスが階層構造で保存されます。
クラス名には英数字のみが使用できます。クラス名に数字を使用することは可能ですが、
ほとんどの場合はお勧めしません。アンダースコアはパス区切り文字としてのみ使用可能です。
ファイル名が "Zend/Db/Table.php" の場合、クラス名を "Zend_Db_Table" としなければなりません。 >>568
それがPHPの標準だよなw
それを知らずに変な名前をつけることができますとか
言う奴は頭おかしいと思う。
Perlだって変な名前をつけることできるだろう。 CakePHPだとキャメルケースにしろって書いてあるよねー(棒) >>569
だからさー、requireする時とクラス名呼び出す時で名前が違って
その規約ってのが実装で異なるってのがおかしーだろって話だよ。
そもそもrequireが実行ファイルからの相対パスおよび絶対パスとか、
他にそんな言語あんのか? Perlもuse MyClassとやって、
そのMyClass.pmの中に、HogeHogeって
クラス名を付けられるけど。
そもそも、一ファイル一クラスなんて
ありえない仕様なわけで、
ファイル名とクラス名は一致しないことも多い。 > それがPHPの標準だよなw
出たよ。「工夫すればなんとかなる」
お前らそれしか言えないじゃん。
>>568
>>569
よく使われている方法というだけでPHPの自体の標準ではない。
そもそもクラス名の階層をアンスコでつなげて一意の文字列として扱うって
素っ頓狂な発想は他の言語には一切ない。
階層だとRubyが若干汚いかな。requireが。
クラス名についてはPerl方式ででPHPのようなことはない。
>>572
話の本筋から外れた言いがかり乙
Rubyも同じだけど、回避方法がマニュアルに明記してあるのと実装間で
バラバラのお約束しかない言語を並べてどーすんの。 おもしれー想像以上にPHPとPHPerが糞でワロタ
5でマトモになったんだとばかり思ってた Perl厨って、反論するとなんでも
「出た、工夫すればなんとかなる」
いや、同じ事ばっか言ってんのはお前ですからwww >>563
>>551-552
>>565
Perl厨はとっとと廃業しろよw >576 名前: nobodyさん Mail: sage 投稿日: 2012/07/22(日) 20:19:59.63 >577 名前: nobodyさん Mail: sage 投稿日: 2012/07/22(日) 20:24:49.76 ID: ???
>>577
お前、>>565がPHPの機能だって気づかなかったのかwww
PHP厨の中でも最低レベルだなwww腹いてえ あ〜、日本語が苦手な方なんですねw
Perl厨って日本語が苦手なやつばっかですねwww >>557
グローバルスコープ君は、
・保守がいらないならPHP
・保守がいるならPerl、Ruby
ということだな
つまり
・PHPは保守性が低い
・保守契約がないクライアントには、
保守性が低いものを納品してもいいと思っている
ということだろうな
PHPで保守性を高めることもできるんだが、
それ以上に、品質が低いものを納品してもいいと思ってる奴に
依頼したくねーなwww最悪w >>583
論点をずらそうとしてるのか、日本語が苦手なのか分からんなw PHPの仕様が糞レベルって話に反論できないから人格攻撃に転じてるのは
お前の方じゃん。
まるでグローバルスコープ以外に欠点がないようなミスリードもしてるし、
なぜかPHPをDisる奴は全員Perl厨だって設定になってるし。 >>585
・反論できている
・人格攻撃に転じるのは、「PHPerはPHPしか書けない」とか決めつけて
PHPをDisる奴のほうが多いだろ
・欠点がないとは言ってない、PHPが腐ってる具体例をあげろと言ったら
グローバルスコープを持ち出したからだろ
・Perl厨か聞いたら返答がなかったから、そう判断した >>586
だめだこりゃ。
グローバルスコープ以外にもクラス名とかrequireのパスとかでツッコまれてるし、
反論って結局「工夫すれば大丈夫」であって他の言語に劣る点は変わってないじゃん。 >>587
「クラス名とかrequireのパスとか」ってもっと具体的に書けよw
んで反論すると「「工夫すれば大丈夫」で逃げる」って
逃げてるのはどっちだよwww
いいよな、反論されたら「出た、「工夫すれば大丈夫」」って言えばいいんだからw その言葉そんなに嫌いなら、
フレームワーク使えば大丈夫。に変えてやろうか? キーワードで逃げるなっつってんだよ
それより「クラス名とかrequireのパスとか」を具体的に書けよ 連投すまんが、PerlのOOこそ「工夫すれば大丈夫」の例だよなw
>>551 requireのパス問題
require_once(__FILE__) . 'lib/App/Frontend/Customer/Login.php';
汚い。こんな汚いのは他の言語には現在出てくることはないが、PHPの
プロダクトはこれがデフォ。
クラス名の問題
パスから一意の文字列を生成するしかないしお約束がフレームワークの実装に
よって違う。どちらも他の言語には見られない。
グローバルスコープ
スコープ内でも関数名はグローバルスコープ。つまりスコープが偽物。
しかもこれを抑制する方法が全くない。
はい、具体的な反論どうぞ。「こう工夫すれば大丈夫」じゃなくてな。
Perlのクラスは工夫だらけだが、Perl4の実装が良かったので前方互換としては
まあマシ。PHP5はPHP4がゴミなのに前方互換を持たせた結果今だにゴミ
Perlを例に出したのは途中で仕様がガラッと変わった言語ってあまりないからだ。 >>592
なげーよw
とりあえずrequireのパスについては、
別に __FILE__ . 'lib/....
がデフォってわけではない
include_pathを適切に設定して
require_once 'Zend/Controller/Front.php';
とでもすればいい話
相対パスが嫌なら、include_pathで相対パスを含めなければいい
で、どの辺が糞なんだ? そんなことより同じ関数なのにバージョンによって挙動が違ったり、
バグを放置する開発陣の怠惰とか、セキュリティホール頻発とか、
それがいつまで経ってもFIXされないとか、セキュリティホールを
埋め込むのを推奨してるとしか思えない関数(サニタイズ系とか)とか、
オープンソースのソースコードが全然「工夫できてない」とか、
1レスじゃ収まんないくらい欠点あるぞ。 >>593
>include_pathを適切に設定して
>require_once 'Zend/Controller/Front.php';
>とでもすればいい話
だからそれが「工夫すれば大丈夫」なんじゃん。
自覚ないから怖い。 >>592
> クラス名の問題
>
> パスから一意の文字列を生成するしかないしお約束がフレームワークの実装に
> よって違う。どちらも他の言語には見られない。
これはよく分からんかったが、命名規約がフレームワークによって違う、
ってことか?
もう少し詳しく説明し、「他の言語には見られない」ではなく
それによってどういった問題が発生するか説明してくれ >>595
だ〜か〜ら〜
「工夫すれば大丈夫」で逃げんなって書いてんだろ
何が問題なのか、逃げずにもっと具体的に書けよ >>593
「長い」という理由で反論を拒否。さすがだな。
つまり反論する代わりに人格攻撃。
さすがすぎる。 >>598
長いから順番だろ
拒否じゃねーよ
「反論する代わりに人格攻撃」ってレス番示してくれ
さすがすぎるのはお前だよwww >>596
そう。CakePHPはキャメル、Zendはアンスコ区切り。
文字列だし公式な仕様が存在しないかあシンタックスハイライトしなくて読みにくい。
公式な仕様がないってことは何とでも書けるわけで、あとは分かるな。
他の言語にもセキュリティホールはあるけど、「関数の実装が変だった
ゴメン」みたいなアホなセキュリティホールは他の言語にはない。
PHPだけで何でもしようとした弊害。
セッション絡みとか酷かったけどあれ治ったの? >>600
まあ、公式な命名規約があったほうがいいのは認める
PEAR、Zendがどちらかというと主流でCakeが亜流というイメージはある
ただ、
自由度が高い→糞
制約が多い→素晴らしい
とは限らず、トレードオフの側面はある
個人的にはもう少し縛りがあったほうがいいとは思うが >>592
スコープ内の関数がグローバルスコープになることについては
確かにまずい
これは直して欲しい なんだ話通じるじゃん。喧嘩吹っかけてゴメンよ。
ぶっちゃけ単純なお問い合せフォーム程度だったらPHPでやるし、
まあCRSFなんかは気をつけないといけないけどそれしきのことで
JavaとかPerlとか持ち出すのはそれはそれで何か違う気がする。 http://d.hatena.ne.jp/nekoruri/20051207/perlvul
Perlのprintf関数において、format stringに悪意のある値を与える事で
任意のコードを実行されてしまう脆弱性 (Perl format string integer wrap vulnerability)
http://jvndb.jvn.jp/ja/contents/2012/JVNDB-2012-001069.html
Perl の Encode モジュールにおける一つずれエラーの脆弱性
概要
Perl で使用される Encode モジュールの Unicode/Unicode.xs 内に
ある decode_xs 関数には、一つずれ (Off-by-one) エラーの脆弱性が存在します。 元々、
「PHPは仕様がイマイチ」に対して
「イマイチではなくて腐ってる、なぜならグローバルスコープが・・・」
ってグローバルスコープ君がイチャモンつけてきたっていうのが
いきさつだからな
仕様とか実装にまずい点があるのは分かってるって
ただ、言語にはそれぞれメリット、デメリットがある
メリットを考えずに欠点だけ挙げて、
「腐ってる」「劣ってる」っていうのは違うだろ、って言いたいだけだよ
言語の優劣に絶対的、普遍的な基準はあるのか??? 結局、大した問題じゃないねってのが
みんなの共通した意見である。 http://vinelinux.org/errata/5x/20100820-2.html
perl に含まれている Safe モジュール(Safe.pm)に 脆弱性が発見されました。
攻撃者に、アクセス制限を回避し任意のコードの挿入と 実行を許す可能性があります。 >>605-608
そりゃどの言語もセキュリティホールはあるよ。
PHPのは「セッションの取り扱い勘違いしてましたテヘ(セッション破棄系のバグ)」
みたいな恥ずかしい脆弱性は見たことがないがな。
あと>>605以外はモジュールのエラーだからPerlの実装とは全く関係ない。
Encodeのはセキュリティホールなの?
PHPは本体自体がボロクソ、PEARなんか穴だらけだろ。恥ずかしくないのかよ。
PHPの言語実装が他の言語に比べて著しく劣ってる意識があるならそれ以上は
言わんよ。「工夫すればなんとかなるからそんなのは問題ない」みたいのが
湧くから指摘してるだけでさ。 PHPしか書けない俺がきましたよ。
>>594 がいちばんPHPの糞具合をもっともらしく表現してるきがするんだけどね。
それ以外のゴチャゴチャ書いてる所で困ったこと無いからシラネ。
でもさ、PHPって実際案件多いよ?
PHP一本で社員数人を普通に食わしていけてるから、
そんな糞でもないのかなーと思ってるよ。
糞ってのがほんとだったらこんなに使われてないだろ。
>>607
おれもそう思うなぁ。
どんな言語にしろ、作り手次第でしょ。
アホが作ってカルボナーラにならない言語があったら教えてくれ。
それなりに「工夫できる」作り手だったら、
何でつくってもいいシステムできるよ。
つまりさ、糞なのはPHPじゃなくてアホな人間ってことなんだろ? Perlは例外がないのがダメだな。
dieするしかないが、dieにはスタックトレース機能がない。 >>610
「仕様が糞」っていう議論なのだったら、案件が多いから糞じゃないってのは
あんまり関係ない。
OSで言うとUN*X・Mac>>>>Windowsだと思うんだが、普及してるのは
Windowsなわけで。もちろんWindowsにも優位性があってそれで普及してる
のはあるんだけど、それがOSの仕様として優れてる証左にはならない。
シシャモだってカラフトシシャモがダントツで売れてるけど、本物のシシャモ
より美味しいからじゃない。
PHPは綺麗に書ける人が1人で書くにはいいけど多人数開発になるとカルボナーラ
になりやすいから何で書いても一緒ってのはちょっと違う。言語がコードを
強制するって大事なんだよ。良くも悪くもね。 セキュリティホールに関しては、通信機構の大半を本体が持っているPHPのが分が悪いわな
これもトレードオフだけど Perlはやり方は色いろあるがモットー
言語がコードを強制していないよな。
例えば基本的なクラスの書き方でも、いろんな書き方とモジュールがあるし。
Moose、Mouse、Class::Accessor、Class::MethodMaker
多人数で、自分の好きな方法でクラスを書きたまえって
いえば、簡単にカルボナーラになる。 >>612
言語がコードを強制していなければ、
コーディング規約で強制するか
使うフレームワークの作法にあわせるか
するだけのことだろう。
お前はPerlで言語がコードを強制していない所は
どうするつもりだ? Perlは欠点もセキュリティホールもないから
工夫しないでも誰でも保守性が高いコードを作成できる
PHPは仕様が糞で腐ってる
腐敗臭がする
PHPerは他の言語を知ってる奴は1人もいない
だからPHPが糞であることも分からない
保守が必要な案件でPHPを採用することはあり得ない
でも保守契約してくれない糞みたいな客には糞みたいなPHPで作る
柔軟性、自由度が高いことは糞であって腐ってる
言語というものは制約がきついほど優れている
自由度が高い言語は明らかに劣っている
設定や規約で変えることができても、それは工夫だからだめ
工夫しちゃだめ、言語が提供してなきゃだめ >>616
なんか・・・あんたが糞だってことはよくわかった。
それ以外は・・・よくわからん なぁ、つまりさ、
「仕様が糞」=「使えネェ」ってことじゃないんだよな? >>617
一生懸命Perl厨の思考を分析してみただけだよ >>619
な〜んだ、そうか。
じゃ、Perl厨が糞ってことでいいんだな? >>620
Perl厨が糞なのかは知らんが、これまでの主張をまとめると
>>616に近いだろ
PerlをJavaに置き換えても、遠からずだと思う >>615
また同じことの繰り返しかよ
>言語がコードを強制していなければ、
>コーディング規約で強制するか
>使うフレームワークの作法にあわせるか
PHPはほんと「工夫すれば大丈夫」これ至言だな。
安く掻き集めた人間がそんなこと守るわけないという。
高い賃金払うならもっとマシな言語を選ぶ。
言語として糞とは言わないが、仕様が糞なのはPHPerは認めないとヤバいよ。
すぐPerlを引き合いに出す奴もさー、実はPHPとPerlしか書けないんじゃねーの?
世の中その2択じゃないんだからさ。 繰り返してるのは >>622 だな
煽るだけで具体性が皆無だしw 工夫しちゃだめ、言語が提供してなきゃだめ
PerlのOOは工夫じゃなくて慣習だからいい Perlはやり方は色いろあるがモットー
言語がコードを強制していないよな。
例えば基本的なクラスの書き方でも、いろんな書き方とモジュールがあるし。
Moose、Mouse、Class::Accessor、Class::MethodMaker
多人数で、自分の好きな方法でクラスを書きたまえって
いえば、簡単にカルボナーラになる。
>>622
どんな言語でもコーディング規約作るでしょ。
コーディング規約作るのが「工夫」で
工夫することがダメというのなら、
お前のコードが汚くなるのは当たり前。 >>625
つuse strict
これ書いとけばやりすぎた独自の記法とスコープの問題はあらかた解決する。
これがなくて規約任せにするとカルボナーラになるのがPHP。
ちなみに「やり方は色々あるが読みにくくはならない」がPerlのモットー。
下手するとカルボナーラになるのはどの言語も一緒。ただカルボナーラが
ガチガチに固まってて全く解けないってのがPHP。 PHPは、作りながら仕様を決めてくようなスタートアップのWebサービスを作るなら、これしかないってくらいの手軽な言語だと思う。 >>627
ほんの僅かな差しかないと証明されたはずだが? PHPでグローバル変数がどうとか言ってる奴は、
クラス使えないんじゃないかって思う。
馬鹿だよな。
クラス使っていれば問題は一切起こらないのに。 PHPのグローバル変数がなんでそんなに問題なのかいまいちわからん・・・ なんでこの人達はPHPのスコープをDisられた時に、
「グローバルスコープ君」って呼ぶくせに
「グローバル変数の何が問題か不明」とか言うんだろうか?
本当はグローバルスコープの問題点を分かってるんじゃね? 正しい回答
グローバル変数は、特別な場合を除き
使いませんので、グローバルスコープが存在しても
我々まともなプログラマには、一切問題はありません。
問題だって思っている奴が、
ヘボプログラマってだけじゃねーの? >>635
おまいさんがグローバルスコープが変数にしか影響しないと考えている
ヘボプログラマなのはよく分かった。 というか、>>631>>632>>635全員同じ見解なんだよな。
一人で頑張ってるのか、PHPerはみんなその見解なのか、どちらにしても
痛いわ。 >>638-639
たまーに連投自演を見かけるけど、おまえ同じ人でしょ。
老婆心ながら自演やりたいなら半日くらいは置いた方がいんじゃね?
しかも全く反論できていないため痛さ倍増って感じだし。4,5年ROMって
みてはいかがだろうか。 >>640
639は別人だよ
反論できないからって自演呼ばわりかよwww
イタすぎるw >>641
まんま釣られてるお前の方が痛いわ。マジで2,30年くらいROMった
方がいんじゃね?
反論は>>636でやったけど、2人ともスルーだよねー(棒) >>636
> おまいさんがグローバルスコープが変数にしか影響しないと考えている
> ヘボプログラマなのはよく分かった。
お前、問題の本質がわかってないだろw
グローバル変数がなぜダメなのかっていうのは、
どこからでも変数の中身を変えられるからだぞ。
グローバル関数ってのは変数じゃないから全く関係ない話。 あとそれに、クラスを使っていれば、
グローバル関数とは区別できるから
どっちみち問題ない。 何人もいるとか言っときながら同時に寝たのかすごいなww
> あとそれに、クラスを使っていれば、
> グローバル関数とは区別できるから
でた。工夫。
普通の言語はそれをしないように(あるいはファイルスコープに)強制できるのに
便利関数みたいのを作ってそこら辺に置いたりするわけよ。で行方不明になる。
もっとたち悪いのは組み込み関数をオーバーライドする馬鹿。 まあ今普通に使われてる言語ではjavascriptが一番糞な気はする。
クライアントサイド、早く他の言語で置き換わって欲しい。 >>648
言語が実装すればねえ。それこそ「工夫でなんとかしてる」状態だからな>jQueryの類 >>645
でたw
工夫しちゃだめ、言語が提供してなきゃだめw
それに>>636が反論って・・・ 仕事でPHPのデバッグやってるんだけどさ……。
まず「早い安い」が売りのPHPがOOで綺麗にきっちり書かれてる
可能性なんかほとんどゼロだろ経験則上。このカルボナーラのゲロ
みたいなコードはモダン言語ではまず見かけない。口先で「OO完璧に
やれば綺麗です(キリッ」とか言われてもなー。
でさ、PHPの変数って参照するだけで何か変わったりすんの?
printfデバッグやったらCでよくある「printf文挟んだだけで挙動が変わる」
って現象が起きるんだけど。
function foo(){
if($hoge !== $fuga){
.....
}
print "----¥n";
}
こんな位置関係のprint文を入れたり外したりすると挙動変わるんすよ。 あ、return文入れるの忘れた。print文の後にreturn文ね。 >>651
printf挟んだだけで挙動変わらないと思うけど、
再現できるコードある? >>653
やぱし。Cでは良くあることだけどスクリプト言語だから珍しいと思った。
3000行もある変態クラスでその中でしか再現しないし、さすがにこれうp
したらクライアントに殺されると思うので他の人に再現してもらうのは厳しいんよ。 >>645
それで、クラスにすれば(普通する)
解決する話ってことに異論はないよね? >>651
> まず「早い安い」が売りのPHPがOOで綺麗にきっちり書かれてる
> 可能性なんかほとんどゼロだろ経験則上。このカルボナーラのゲロ
きっちり書かれている?
誰かが書いたものを修正することしか無いの?
当たり前だろうけど、お前が書いたら綺麗になるよね?
>>654
> やぱし。Cでは良くあることだけどスクリプト言語だから珍しいと思った。
ねーよw
いよいよお前がヘボいってことが明らかになってきたなw
>>654
全部うpは無理だろうが、局所的に再現できるコードはないの?
あとPHPのバージョンとバグもチェックしといたほうがいいかも
ちなみに昔Javaでも数万行の変態クラスを見たことあるから
PHPだけではないぞ >>654
30000行もあるとか言い訳でしかないよ。
再現できるコードをアップしろって言われて、
ソース丸々アップするなんて考えてる時点で素人の発想そのもの。
ほんとお前の技術力がいよいよ怪しくなってきたな。
言っとくが、ソース丸々アップされても誰も見ない。
再現できるコードをアップしろっていうのは、不要なコードを削除して
再現可能な必要最小限のコードをアップしろってことだよ。
再現する必要最小限にすれば、アップしてもクライアントに殺されねーだろ。
わかったら、早くアップしろ。
アップできるかできないかでお前が技術力がわかる。
今、お前は試されてる状態になってるぞ。 クラスを使うなんて、工夫でも何でもない。
ifばっかり使ってる人にswitchを教えたら、
そんな工夫をして楽をするのはずるい!
って怒られて気分。
普通にやることを、工夫と言われても困る。
単にお前が知らないだけだろと
ツッコミ入れたくなる話だな。
>>657
そりゃ綺麗になるけど他の言語選ぶかな。
だからPHPは基本誰かが書いたものをいじることが多くなるね。
>>658
?
だれと戦ってるんだ?
Cだと、mallocのNULLフィル忘れとかでprintfした時にメモリ内の状況が
変わってprintf入れたら挙動が変わるってのはよくある話。
printf入れて挙動が変わったらメモリ関係疑えってのは定石中の定石だと思うけど。 >>662
他の言語選ぶかどうかなんて聞いていない。
> そりゃ綺麗になるけど
このレスだけで十分。
綺麗かどうかって、言語のせいじゃないんだよ。
書いている奴の問題。
> Cだと、mallocのNULLフィル忘れとかでprintfした時にメモリ内の状況が
> 変わってprintf入れたら挙動が変わるってのはよくある話。
printf関係ない。他の何かをやっても挙動は変わる。
ようするに「バグがあるコードはどんな挙動をしてもおかしくない」ってだけだろ ■ このスレッドは過去ログ倉庫に格納されています