PHPで作られた有名サイトってあるの?
■ このスレッドは過去ログ倉庫に格納されています
あるわけないかな。
ウェブ系言語で一番しょぼい言語だし。 >>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関係ない。他の何かをやっても挙動は変わる。
ようするに「バグがあるコードはどんな挙動をしてもおかしくない」ってだけだろ >>660
簡単そうに言うなよ。言われる通りにある程度簡単にしてみたが
ちょっといじると問題は出ない。出現状態がかなり微妙だからPHPのバグの
可能性が高いけど再現性が非常に悪い。
このクラスだけうpしても多重継承してて上位クラスのメソッド呼んだり
してるから動作確認は取れんよ。
しかもクラスメソッドの呼び元によって問題が出たり出なかったりする。
今月中にこれ片付けないとヤバいので何とかしたいのは山々なんだけどな。
>>663
> printf関係ない。他の何かをやっても挙動は変わる。
えーと。printf入れたら挙動が変わるとか良くあるって書いたら「ねーよw」
って言われたんだけど。 >>664
> えーと。printf入れたら挙動が変わるとか良くあるって書いたら「ねーよw」
バグがあるコードによりメモリが破壊された状態
って言わなかっただろ
ブレーキ踏んだら、逆にスピードが上がるとか
よくあるって言ったら、お前なんて答えるんだ?
そんな事故が頻繁に起こってるのか? >>665
最初にprintfデバッグの話を振ったっしょ。まあ勘違いならいいや。 >>664
まともなプログラマなら、言語のバグなんて
なんの検証もなしに言ったりしない。
初心者臭を感じられる。
30000行のコードのまま、
ちょっと変えるで動かすっていうのは
検証じゃないから。
まず自分のバグを疑え。
あとPHPで多重継承はできない。
ここでもまた、初心者臭がw >>666
最初にふった奴はこいつ。
俺は知らん。
> でさ、PHPの変数って参照するだけで何か変わったりすんの?
> printfデバッグやったらCでよくある「printf文挟んだだけで挙動が変わる」
> って現象が起きるんだけど。 >>667
自分のバグじゃなくて。最初からバグがあってそれを直してる。
print文入れるだけで挙動が変わるとか、メソッドの呼び出し元によって再現したり
しなかったりってのはどう考えてもおかしいだろ。サンプルの位置を考えても。
> あとPHPで多重継承はできない。
継承が深いということを書こうとしたんだが、これは恥ずかしい。 NDA結んでやるから、
30000行のクラス、親クラス類、その他一式を
どこかにうpしてみなさい printで挙動が変わる?
そりゃ挙動が変わるだろうさw
printすれば画面に文字が出力される。
printしなければ表示されない。
画面に文字が出力される or されないと
いうふうに動作が変わってるだろw
もちろん、正しい仕様だがな。
つか、printが邪魔で正しくテストできないとうのなら
ファイルにでも出力しろよ。 これがPerlだったらContent-Type問題かもなw
出力してないのにprintしてエラーになった。
ほかから読んだときは出力されてた。
どうせ、似たような問題でしょ。
言語のバグじゃなくて、書いた奴のバグ。 >>670
俺がNDAをクライアントと結んでるので無理。
>>671
問題ありまくりなのは認識。
>>672-673
PerlCGIじゃないからContent-Type問題ではないし、類似の問題はPHPにはないでしょ。
print文の位置を変えると問題が起こらないから出力系の問題ではないのは
切り分け済。ちなみにWebアプリではなくコンソールで動かすタイプのもの
なので文字が邪魔とかそういう問題ではない。そもそも正常動作すれば
コンソールには何も出ないのであえてprint文を使っている。 >>674
再現可能な最小限のコードをアップしないのなら
一人で頑張って判明した結果だけ書いてくれればいいよ。
現時点では、PHPに直すべき問題点(バグ)を
報告する手段は誰にもないから。 >>675
PHPで良くあることかどうか知りたかっただけなので、それで良いです。
なんかおまえら怖いし。
もう工期的な問題で無理矢理問題が起こらないようにして原因不明のまま
逃げるって感じになりそうだけど。
ちゃんと調べてPHP側にバグ報告したいのは山々なんだが工期優先なんでね。 >>676
初心者プログラマには無理だろうねw
そもそもここで聞くのが間違いってわかってる?w 俺だったら15分あれば
問題を修正できるレベルっぽいな。 Cではメモリ破壊は良くあるよね。
PHPでコード量が原因のバグは踏んだ事無いけど、PHPだからなぁwありそうだよなw
許可したメモリ量とか、APC的なのを通さずにとか? PHPだからこそ、そんなC言語みたいな
バグはないでしょ。 ■ このスレッドは過去ログ倉庫に格納されています