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

    私的良スレ書庫

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

    元スレPHPで作られた有名サイトってあるの?

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    551 : nobodyさん - 2012/07/21(土) 22:26:27.05 ID:???.net (+15,-30,+0)
    Perlにはクラスがないので、自分でクラスを作る必要がある。

    perl - 万能なnewの書き方
    http://blog.livedoor.jp/dankogai/archives/50816007.html

    Perl 5のOOは、慣れてしまうと簡単だ。

    package Klass;

    sub new {
    my $thing = shift;
    my $class = ref $thing || $thing;
    my $self = bless { @_ } => $class;
    $self->init() if $self->can('init');
    $self;
    }

    our %default = (name => 'anonymous');

    sub init {
    my $self = shift;
    $self->{$_} = $default{$_} for keys %default;
    $self->SUPER::init() if $self->can('SUPER::init');
    $self;
    }

    package Klass::Sub;
    our @ISA = qw/Klass/;

    our %default = ('名前' => 'ななし');
    *init = \&Klass::init;
    552 : nobodyさん - 2012/07/21(土) 23:33:53.83 ID:???.net (+11,-29,-29)
    Perlはやっぱり仕様が素晴らしいよな

    ちょっとshiftしたりblessしたりして、毎回同じようなnewを書くだけで
    簡単にクラスを実装できちゃうんだもんな

    継承もour @ISAを使うだけでいいし

    OOやるならPerlだな、やっぱり
    553 : nobodyさん - 2012/07/21(土) 23:34:59.47 ID:???.net (+43,+15,-6)
    アセンブラは仕様が素晴らしいよな。

    以下同文
    554 : nobodyさん - 2012/07/21(土) 23:40:35.88 ID:???.net (+25,+7,+0)
    え???
    555 : nobodyさん - 2012/07/21(土) 23:50:37.94 ID:???.net (+58,+29,-12)
    >>552-553
    めんどくさいだけだろwww
    556 : nobodyさん - 2012/07/21(土) 23:51:02.87 ID:???.net (+7,+29,-51)
    グローバルスコープ君はさぁ、新規で中小規模のWeb案件があったら
    やっぱりPerlを選ぶんだよね?
    557 : nobodyさん - 2012/07/22(日) 01:04:17.84 ID:???.net (+14,+30,-309)
    >>556
    グローバルスコープ君というのが誰か知らんが、中小規模なら前から
    言っているように、投げっぱなしで保守がいらないならPHP一択、
    β版のまま公開して運用しながら開発するような場合や、保守込みの
    契約の場合はPerlなりRubyなり。PHPはありえん。
    Pythonは使いたいんだが人出がまだ足りないのと、他の案件に使い回し
    できない可能性が高い。

    Perlのクラスに関しては、Perl4にblessを加えただけという超簡単実装なので、
    見る人によっては汚く見えるだろう。しかしクラス名とファイル名が一致せず
    オートロードで階層が深いような場合は「工夫する」かgrepするしか探し出す
    しか手段がないPHPよりはかなりマシ。

    Perlでもファイル名とクラス名を違えることはできるが、クラス名がファイル
    階層を表現できるため、現実問題そういう実装は考えにくい。つまりPHPの
    ような汚い実装はなかなか見かけない。

    PHPのプロジェクトであるmagentoには私は敬意を払っているが、このファイル名
    とクラス名の不一致問題には不満の意を禁じざるを得ない。
    558 : nobodyさん - 2012/07/22(日) 01:10:53.25 ID:???.net (+62,+29,-157)
    ちなみにPerl厨は一人とか言っているが、俺はそんなにPerlには思い入れはない。
    PHPより歴史が長いため、使ってる期間が長いってくらいだ。現在メインで
    使っている言語はC++。

    > 継承もour @ISAを使うだけでいいし

    これはむしろPerlの汚いところだと思う。PerlのOOの素晴らしいところは、
    ほとんどPerl4の仕様を変えずにOOを実装した点にある。そこは勘違いしては
    いけない。PHPはOOを比較的きっちり実装しつつ、PHP4への互換を維持しよう
    とした結果、ワケワカメな状況に陥り、strictのような構文に対する縛りが
    存在しないため、PHP4脳の土方プログラマの暴走を止められずにいる。
    559 : nobodyさん - 2012/07/22(日) 02:52:49.93 ID:???.net (+20,-30,-84)
    >>557
    > Perlでもファイル名とクラス名を違えることはできるが、クラス名がファイル
    > 階層を表現できるため、現実問題そういう実装は考えにくい。つまりPHPの
    意味がわからん。

    Perlはファイル名とクラス名は
    全く関係ないよ。

    use Hoge::Hoge;  # ← クラス名ではなくただのファイルパス相当
    とやっておきながら、

    my $hage = Hage->new()

    ということもできる。
    560 : nobodyさん - 2012/07/22(日) 02:58:33.34 ID:???.net (+60,+29,-40)
    >>559
    だーかーら。Perlは慣習にすれば綺麗に書けるけどPHPはその手段すれない
    って話じゃん。クラスのファイル階層を表現する手段がないから
    「工夫で大丈夫」にするしかないっていうね。
    561 : nobodyさん - 2012/07/22(日) 02:59:38.41 ID:???.net (+62,+29,-31)
    慣習と工夫は何が違うの?
    562 : nobodyさん - 2012/07/22(日) 03:04:51.80 ID:???.net (+71,+30,-69)
    >>561
    慣習は言語の設計側が推奨している。だから一意に解釈できるし、
    階層も綺麗に表現できる。
    PHPは設計側がほったらかしだから、実装側が「階層はキャメルケースで」
    とか「アンスコ区切りで」とか「オートロードするからこのルールで」とか
    無法地帯。
    563 : nobodyさん - 2012/07/22(日) 03:06:38.44 ID:???.net (+45,+29,-59)
    つかマジでPHPのOOが他よりマシだと思うなら今すぐ廃業した方がいいよ
    マジで。他の言語書けないんだろ?技術的なツッコミが一切ないし、あった
    として>>535みたいな知ったかだからな。
    564 : nobodyさん - 2012/07/22(日) 11:26:28.13 ID:???.net (+57,+29,-18)
    Perlはいろんなやり方があって
    人それぞれ書き方が違うからだめだろう。
    565 : nobodyさん - 2012/07/22(日) 11:42:31.90 ID:???.net (+24,-30,-244)
    >>563
    具体的に何かダメか言ったら?言えないんだろうけどw

    お前がPHP知らないようだから書いておくわ。

    PHPのオブジェクト指向機能
    ・classキーワードで簡単にクラスが定義できる
    ・もちろんクラスを定義するだけで、newでインスタンスが作れる
    ・interfaceキーワードでインターフェースも作れる
    ・public、private、protectedスコープがある(カプセル化)
    ・コンストラクタ、デストラクタがある
    ・オーバーロードもある
    ・finalキーワードもある
    ・extendsで継承ができる
    ・implementsでインターフェースも継承できる
    ・abstructで抽象クラス、抽象メソッドが作れる
    ・traitでトレイトが使える
    ・クラス定数、インターフェース定数が作れる
    ・クラスメソッドが作れる
    ・イテレーターも作れる
    ・タイプヒンティングがある
    ・名前空間がある
    ・無名関数(クロージャー)がある
    566 : nobodyさん - 2012/07/22(日) 12:20:24.05 ID:???.net (+69,+29,-54)
    >>565
    クラス名の命名方法が恣意的。階層が使えないから「工夫」するしかない。
    あ、工夫すれば大丈夫だから大丈夫なんだっけ、PHPerは。
    567 : nobodyさん - 2012/07/22(日) 12:59:00.38 ID:???.net (+67,+29,-22)
    >>566
    え? それだけ?
    ネーミング規約の話で終わりなんだw
    568 : nobodyさん - 2012/07/22(日) 13:00:17.90 ID:???.net (+17,-30,-152)
    ネーミング規約ならある

    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" としなければなりません。
    569 : nobodyさん - 2012/07/22(日) 13:01:41.49 ID:???.net (+75,+29,-38)
    >>568
    それがPHPの標準だよなw

    それを知らずに変な名前をつけることができますとか
    言う奴は頭おかしいと思う。

    Perlだって変な名前をつけることできるだろう。
    570 : nobodyさん - 2012/07/22(日) 13:21:22.58 ID:???.net (+18,-9,-19)
    CakePHPだとキャメルケースにしろって書いてあるよねー(棒)
    571 : nobodyさん - 2012/07/22(日) 13:29:10.99 ID:???.net (+72,+29,-97)
    >>569
    だからさー、requireする時とクラス名呼び出す時で名前が違って
    その規約ってのが実装で異なるってのがおかしーだろって話だよ。
    そもそもrequireが実行ファイルからの相対パスおよび絶対パスとか、
    他にそんな言語あんのか?
    572 : nobodyさん - 2012/07/22(日) 14:27:06.10 ID:???.net (+12,-29,-32)
    Perlもuse MyClassとやって、
    そのMyClass.pmの中に、HogeHogeって
    クラス名を付けられるけど。

    そもそも、一ファイル一クラスなんて
    ありえない仕様なわけで、
    ファイル名とクラス名は一致しないことも多い。
    573 : nobodyさん - 2012/07/22(日) 14:35:58.11 ID:???.net (+70,+29,-94)
    > それがPHPの標準だよなw

    出たよ。「工夫すればなんとかなる」
    お前らそれしか言えないじゃん。

    >>568
    >>569
    よく使われている方法というだけでPHPの自体の標準ではない。

    そもそもクラス名の階層をアンスコでつなげて一意の文字列として扱うって
    素っ頓狂な発想は他の言語には一切ない。

    階層だとRubyが若干汚いかな。requireが。
    クラス名についてはPerl方式ででPHPのようなことはない。
    574 : nobodyさん - 2012/07/22(日) 14:49:55.13 ID:???.net (+59,+30,-75)
    >>572
    話の本筋から外れた言いがかり乙

    Rubyも同じだけど、回避方法がマニュアルに明記してあるのと実装間で
    バラバラのお約束しかない言語を並べてどーすんの。
    575 : nobodyさん - 2012/07/22(日) 14:57:52.05 ID:iBnESBtC.net (+16,+28,-13)
    おもしれー想像以上にPHPとPHPerが糞でワロタ
    5でマトモになったんだとばかり思ってた
    576 : nobodyさん - 2012/07/22(日) 20:19:59.63 ID:???.net (+55,+29,-31)
    Perl厨って、反論するとなんでも
    「出た、工夫すればなんとかなる」

    いや、同じ事ばっか言ってんのはお前ですからwww
    577 : nobodyさん - 2012/07/22(日) 20:24:49.76 ID:???.net (+55,+22,-3)
    >>563

    >>551-552
    >>565

    Perl厨はとっとと廃業しろよw
    578 : nobodyさん - 2012/07/22(日) 21:57:12.96 ID:iBnESBtC.net (-25,-30,-48)
    >576 名前: nobodyさん Mail: sage 投稿日: 2012/07/22(日) 20:19:59.63 >577 名前: nobodyさん Mail: sage 投稿日: 2012/07/22(日) 20:24:49.76 ID: ???
    579 : nobodyさん - 2012/07/22(日) 22:09:25.51 ID:???.net (-5,-29,-4)
    >>578
    新規のPerl厨さんですか?
    580 : nobodyさん - 2012/07/22(日) 22:15:59.78 ID:iBnESBtC.net (+26,+29,-25)
    >>577
    お前、>>565がPHPの機能だって気づかなかったのかwww
    PHP厨の中でも最低レベルだなwww腹いてえ
    581 : nobodyさん - 2012/07/22(日) 22:25:27.43 ID:???.net (+57,+29,-14)
    あ~、日本語が苦手な方なんですねw
    Perl厨って日本語が苦手なやつばっかですねwww
    582 : nobodyさん - 2012/07/22(日) 23:08:54.71 ID:???.net (+66,+29,-127)
    >>557
    グローバルスコープ君は、
    ・保守がいらないならPHP
    ・保守がいるならPerl、Ruby
    ということだな

    つまり
    ・PHPは保守性が低い
    ・保守契約がないクライアントには、
    保守性が低いものを納品してもいいと思っている
    ということだろうな

    PHPで保守性を高めることもできるんだが、
    それ以上に、品質が低いものを納品してもいいと思ってる奴に
    依頼したくねーなwww最悪w
    583 : nobodyさん - 2012/07/22(日) 23:10:54.71 ID:iBnESBtC.net (+37,+29,-19)
    >>582
    保守性ね。工夫すれば出来るね。
    584 : nobodyさん - 2012/07/22(日) 23:31:39.54 ID:???.net (+63,+29,-21)
    >>583
    論点をずらそうとしてるのか、日本語が苦手なのか分からんなw
    585 : nobodyさん - 2012/07/22(日) 23:38:22.41 ID:???.net (+10,+29,-83)
    PHPの仕様が糞レベルって話に反論できないから人格攻撃に転じてるのは
    お前の方じゃん。
    まるでグローバルスコープ以外に欠点がないようなミスリードもしてるし、
    なぜかPHPをDisる奴は全員Perl厨だって設定になってるし。
    586 : nobodyさん - 2012/07/22(日) 23:47:17.71 ID:???.net (+12,+29,-129)
    >>585
    ・反論できている
    ・人格攻撃に転じるのは、「PHPerはPHPしか書けない」とか決めつけて
    PHPをDisる奴のほうが多いだろ
    ・欠点がないとは言ってない、PHPが腐ってる具体例をあげろと言ったら
    グローバルスコープを持ち出したからだろ
    ・Perl厨か聞いたら返答がなかったから、そう判断した
    587 : nobodyさん - 2012/07/22(日) 23:52:15.74 ID:???.net (+67,+29,-82)
    >>586
    だめだこりゃ。
    グローバルスコープ以外にもクラス名とかrequireのパスとかでツッコまれてるし、
    反論って結局「工夫すれば大丈夫」であって他の言語に劣る点は変わってないじゃん。
    588 : nobodyさん - 2012/07/23(月) 00:28:00.48 ID:???.net (+72,+30,-96)
    >>587
    「クラス名とかrequireのパスとか」ってもっと具体的に書けよw

    んで反論すると「「工夫すれば大丈夫」で逃げる」って
    逃げてるのはどっちだよwww

    いいよな、反論されたら「出た、「工夫すれば大丈夫」」って言えばいいんだからw
    589 : nobodyさん - 2012/07/23(月) 00:38:20.77 ID:???.net (+57,+29,-33)
    その言葉そんなに嫌いなら、
    フレームワーク使えば大丈夫。に変えてやろうか?
    590 : nobodyさん - 2012/07/23(月) 00:41:58.86 ID:???.net (+57,+29,-30)
    キーワードで逃げるなっつってんだよ

    それより「クラス名とかrequireのパスとか」を具体的に書けよ
    591 : nobodyさん - 2012/07/23(月) 00:43:47.72 ID:???.net (+60,+29,-32)
    連投すまんが、PerlのOOこそ「工夫すれば大丈夫」の例だよなw
    >>551
    593 : nobodyさん - 2012/07/23(月) 01:01:39.17 ID:???.net (+11,-30,-103)
    >>592
    なげーよw

    とりあえずrequireのパスについては、
    別に __FILE__ . 'lib/....
    がデフォってわけではない

    include_pathを適切に設定して
    require_once 'Zend/Controller/Front.php';
    とでもすればいい話

    相対パスが嫌なら、include_pathで相対パスを含めなければいい

    で、どの辺が糞なんだ?
    594 : nobodyさん - 2012/07/23(月) 01:04:05.27 ID:???.net (+12,+29,-183)
    そんなことより同じ関数なのにバージョンによって挙動が違ったり、
    バグを放置する開発陣の怠惰とか、セキュリティホール頻発とか、
    それがいつまで経ってもFIXされないとか、セキュリティホールを
    埋め込むのを推奨してるとしか思えない関数(サニタイズ系とか)とか、
    オープンソースのソースコードが全然「工夫できてない」とか、
    1レスじゃ収まんないくらい欠点あるぞ。
    595 : nobodyさん - 2012/07/23(月) 01:04:50.33 ID:???.net (+12,-30,-75)
    >>593
    >include_pathを適切に設定して
    >require_once 'Zend/Controller/Front.php';
    >とでもすればいい話

    だからそれが「工夫すれば大丈夫」なんじゃん。
    自覚ないから怖い。
    596 : nobodyさん - 2012/07/23(月) 01:04:59.08 ID:???.net (+67,+30,-81)
    >>592

    > クラス名の問題
    >
    > パスから一意の文字列を生成するしかないしお約束がフレームワークの実装に
    > よって違う。どちらも他の言語には見られない。

    これはよく分からんかったが、命名規約がフレームワークによって違う、
    ってことか?
    もう少し詳しく説明し、「他の言語には見られない」ではなく
    それによってどういった問題が発生するか説明してくれ
    597 : nobodyさん - 2012/07/23(月) 01:06:51.05 ID:???.net (+59,+29,-38)
    >>595
    だ~か~ら~
    「工夫すれば大丈夫」で逃げんなって書いてんだろ

    何が問題なのか、逃げずにもっと具体的に書けよ
    598 : nobodyさん - 2012/07/23(月) 01:07:17.99 ID:???.net (+68,+29,-19)
    >>593
    「長い」という理由で反論を拒否。さすがだな。
    つまり反論する代わりに人格攻撃。
    さすがすぎる。
    599 : nobodyさん - 2012/07/23(月) 01:09:13.45 ID:???.net (+67,+29,-25)
    >>598
    長いから順番だろ
    拒否じゃねーよ

    「反論する代わりに人格攻撃」ってレス番示してくれ
    さすがすぎるのはお前だよwww
    600 : nobodyさん - 2012/07/23(月) 01:09:38.93 ID:???.net (+22,+29,-55)
    >>596
    そう。CakePHPはキャメル、Zendはアンスコ区切り。
    文字列だし公式な仕様が存在しないかあシンタックスハイライトしなくて読みにくい。
    公式な仕様がないってことは何とでも書けるわけで、あとは分かるな。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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