トップページphp
1001コメント310KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/12/11(火) 23:37:20ID:???
前スレ
http://pc11.2ch.net/test/read.cgi/php/1192604501/
0490nobodyさん2008/01/14(月) 13:11:38ID:???
>>489
ある部分でコーディングが楽になる。

なかったら困るというようなもんではない
あったら便利という感じ

個人的にはクロージャはまだなくてもいい

まずは配列を角括弧で宣言できるようにしたり
無名関数をきちんと扱えるようになって欲しい。
あとスカラーのタイプヒンティング。
0491nobodyさん2008/01/14(月) 13:14:39ID:???
変数に$つけるのダサいからやめて欲しい
0492nobodyさん2008/01/14(月) 13:25:42ID:???
$は全然気にならないな。パッと見で変数を区別しやすいし。
0493nobodyさん2008/01/14(月) 13:26:14ID:???
>>490
よく知らないんだが、Perlにある
sort { $a cmp $b } @ar;
みたいなのはクロージャとは言わないの?
こういうのは欲しい。無名関数との区別がついていないけど。
0494nobodyさん2008/01/14(月) 13:27:24ID:???
>>493
Perlをよく知らないんだが、それはどういうことしてるの?
0495nobodyさん2008/01/14(月) 13:30:18ID:???
>>490
だからそのある部分ってなんだよ.
0496nobodyさん2008/01/14(月) 13:34:57ID:???
それを教えたところで何になるんだ。
0497nobodyさん2008/01/14(月) 13:35:01ID:???
JavaScriptみたいにクラスが無い言語(2.0ではあるんだっけ?)でクロージャが
使えないと、動的にイベントハンドラ作りまくるときにひどく面倒。
JavaScriptの用途がクロージャがあると嬉しい用途であるとも言える。

クラスがある言語だと無理にレキシカルスコープを後付けするよりは
無名クラスでクロージャもどきを実現した方が良いと思う。

$handler = new class{
 private $var;
 public function __construct($var) {
  $this->var = $var;
 }
 public function hoge() {
  /* ... */
 }
}($var);

みたいな。見た目の好き嫌いはあると思うけど、このほうがコンパイラと
仮想マシンの実装がgdgdにならずに済むので。
まあ、ここまでやらなくても普通のクラスで事足りるかな、とは思う。
0498nobodyさん2008/01/14(月) 13:35:44ID:???
>>496
教えないことによって何の不利益があるんだ
0499nobodyさん2008/01/14(月) 13:37:51ID:???
>>494
配列@arをソートした配列を作って返している。だから返り値受けなきゃあんまり意味無いけど。
@ar = ('E', 'B', 'A', 'C', 'D');
print join(',', (sort { $a cmp $b } @ar)); #=> "A,B,C,D,E"

んで、{ $a cmp $b } の部分はクロージャなのかな、と。
0500nobodyさん2008/01/14(月) 13:40:08ID:???
>>497
冗長すぎる。マクロで隠蔽できる言語ならばそれでもいいけど。
0501nobodyさん2008/01/14(月) 13:41:07ID:???
>>493
それはただの無名関数。
うまくいけばこんな風に書けるようになるらしい。

usort($ar, function($a, $b){ return strcmp($a, $b); });

Perlのコードよりはだいぶ長いけど、そもそもコードの短さでPerlと勝負するのは無理。
0502nobodyさん2008/01/14(月) 13:43:10ID:???
>>500
特にプロパティへの代入にコンストラクタ使ってるあたりがね。
だから普通のクラスでいいやん、って自分で書いてて思った。
0503nobodyさん2008/01/14(月) 13:46:14ID:???
Perlのq/qq/qwあたりが欲しいな
0504nobodyさん2008/01/14(月) 13:53:16ID:???
>>501 thx
調べたら、現行PHPでもできるっちゃできるんだな

$ar = array('E', 'B', 'A', 'C', 'D');
usort($ar, create_function('$a,$b', 'return strcmp($a,$b);'));
print join(',', $ar);

でも、関数定義部分のクオートが無くなるだけで遙かにましかもしれない
無名関数の扱いを洗練させる、ていうことか

(後はusortが破壊的関数なのが戴けないとか、不満を言い出したら切りがないな)
0505nobodyさん2008/01/14(月) 14:00:38ID:???
create_functionのクソっぷりはPHPの中でも異常
0506nobodyさん2008/01/14(月) 14:06:29ID:???
create_functionはクロージャでもなんでもないしな
ただ関数定義のコードevalしてその関数名返してるだけ
言語仕様としてのクロージャが欲しい

>>504
sort系全部破壊的とかほんと糞過ぎる
0507nobodyさん2008/01/14(月) 14:08:51ID:???
だが実用上はクロージャがあっても
たいした変化は無い・・・
0508nobodyさん2008/01/14(月) 14:13:40ID:???
無名関数とクロージャの違いが分からんよ。
0509nobodyさん2008/01/14(月) 14:27:18ID:???
言語によってクロージャの意味するものが違う。
ある言語においては、クロージャ=無名関数 となっている場合もある。
今回のPHPの場合は、開発者MLを参照。

フレームワークの話題マダー?(チンチン)
0510nobodyさん2008/01/14(月) 14:37:22ID:???
クロージャって別に使わないだろ。
そんなのより、変数のスコープをブロックベースにするとか、ファイルベースにするとかを実装してもらいたいもんだ。
それと上の方に出てきてる[]を使った配列定義って、$arr = [1,2,3]とか$has = ['a'=>1,'b'=>2]とかのことだろ?
PHPってさあ、$arr = array('a'=>array('A'=>array(1,2,3)))みたいな超絶見づらい・インデントできないコードを強制されるから、なんとかして欲しいわ。
0511nobodyさん2008/01/14(月) 14:38:38ID:???
インデントできるだろ
0512nobodyさん2008/01/14(月) 14:41:01ID:???
クロージャって、ブロック外のローカル変数を参照しているサブルーチンのことをいうんだろ?無名関数とは明らかに違うもんだろ?
0513nobodyさん2008/01/14(月) 14:41:50ID:???
>>511
WUXGAくらいのディスプレイ使ってて、1行に100文字でも200文字でも伸ばしていいなら名。
0514nobodyさん2008/01/14(月) 14:43:53ID:???
> PHPってさあ、$arr = array('a'=>array('A'=>array(1,2,3)))みたいな超絶見づらい・インデントできないコードを強制されるから、なんとかして欲しいわ。
意味わかんねwwww

俺はどこかで見た、行の入れ替えをしやすいとかいう理由で、
こういう書き方をしているよ。多少例外はあるけどね。

$arr = array(
 'aaa' => array(
  'AAA' => array(
   1111,
   2222,
   3333,
  ),
 ),
);
0515nobodyさん2008/01/14(月) 14:45:26ID:???
>>513
> WUXGAくらいのディスプレイ使ってて、1行に100文字でも200文字でも伸ばしていいなら名。

インデントしたいんじゃなかったのか?

インデントできないといったり、インデントを否定したり、
お前はいったいどういうコードを書きたいんだ?
それとも他人か?
0516nobodyさん2008/01/14(月) 14:46:35ID:???
>>514
それがインデントできてない状態なんだよ。array()のせいで、スペースを大量に入れるか、ズレるのを我慢しないといけない。
PerlでもRubyでもJavaScriptでもほとんどの言語は[]や{}で配列を宣言できるんだから。
0517nobodyさん2008/01/14(月) 14:50:35ID:???
>>516
だからお前はどう書きたいんだよw
書いてみな。ほら。
0518nobodyさん2008/01/14(月) 14:51:56ID:???
array()でも[]でも変わらんと思うが
0519nobodyさん2008/01/14(月) 14:54:21ID:???
>>514のようなコードをさして
「インデントできていない!」といったら
誰だって、はぁ?ってなるよ。間違いない。
0520nobodyさん2008/01/14(月) 14:56:59ID:???
>>503
> Perlのq/qq/qwあたりが欲しいな
同意だ
0521nobodyさん2008/01/14(月) 15:06:04ID:???
>>516
> それがインデントできてない状態なんだよ。array()のせいで、スペースを大量に入れるか、ズレるのを我慢しないといけない。
インデント以外のスペースは入っていないし、ずれてもいない。

あー、あれか、お前にとってのインデントとは、括弧がある列をそろえることか?w
if (・・・) {
・・・
}

あんた、こういう書き方を認めない奴だろ?
インデントになってなーいとかいって、
if (・・・)
{
・・・
}
こう書き換えさせるんだろ?w
0522nobodyさん2008/01/14(月) 15:23:18ID:???
あのさー、PHPしか使ったことないとそれが当たり前に思えるのかもしれないけど、他の言語じゃ[]や{}を使って配列を定義するのが当たり前だから。
実際、それが不便だから、PHPのデベロッパーも要件として検討してるんだろ。
YAMLは先頭に-を付けるだけだから読みやすいんであって、yaml()で全部くるめってなったら、誰も使わないよ。
0523nobodyさん2008/01/14(月) 15:28:47ID:???
a() でいいよ
0524nobodyさん2008/01/14(月) 15:29:06ID:???
書くのがうぜーっていうなら分かるが
インデントとは?
0525nobodyさん2008/01/14(月) 15:29:09ID:???
他の当たり前だからって何なんだ?w
他の言語でそうなっていることが多いのは百も承知だし
それを知った上で、あればいいけど、たいした違いは無いといっているんだが。

で、お前にとってのインデントとはどういうもんなんだw
ほんの2、3個言語知っている程度の分際でえらそうだなw
0526nobodyさん2008/01/14(月) 15:31:32ID:???
> インデントできないコードを強制される
という意味がまったくわからんw
0527nobodyさん2008/01/14(月) 15:37:17ID:???
あったらあったで便利かもしれないけど、別にそこまで必要性は感じないけどな。











デベロッパー(笑)
0528nobodyさん2008/01/14(月) 15:46:47ID:???
いい加減インデントについて答えろよ。
もしくは、俺が勘違いしていました。って謝れよ。
0529nobodyさん2008/01/14(月) 15:48:04ID:???
array() でも()でも[]でもかまわんが、1..10 記法はあってもいいかな。
range()関数がある、そうですか・・・でもあんまり使われて無いよね。

$months = array();
for($i=1;$i<=12;$i++){
$months[] = $i;
}
これを見るのはもううんざり。
単純なfor 文でさえ、foreach(array(1..12) as $i){} と書きたい俺が偏ってるんだが

あと上記の $i をブロックローカルにする方法を提供して欲しい。
ってみんな言ってるなw
0530nobodyさん2008/01/14(月) 15:49:58ID:???
使われてないって何を根拠に?
0531nobodyさん2008/01/14(月) 15:52:31ID:???
実装が難しいなら、a()でもいいけどな。Perlにq() があるように。5文字が1文字になるだけでもだいぶマシ。
0532nobodyさん2008/01/14(月) 15:53:29ID:???
俺の身辺および見たことのあるコードからの印象、なので実際の傾向とは違うかも
Perl, Rubyでの 1..10 よりは PHPのrange(1, 10) は少ない印象
0533nobodyさん2008/01/14(月) 15:54:12ID:???
んなの使いたいなら作りゃいいじゃん
function a($a){return array($a);}
0534nobodyさん2008/01/14(月) 15:54:22ID:???
forでもifでも、PHPの変数スコープが関数ベースなのが問題なんだろ。
0535nobodyさん2008/01/14(月) 15:57:22ID:???
>>533
ばかだなあ
0536nobodyさん2008/01/14(月) 15:58:50ID:???
>>535
お前も似たようなことやっただろw
0537nobodyさん2008/01/14(月) 15:59:17ID:???
>>529
rangeは実際に配列を作っちゃうところが駄目
0538nobodyさん2008/01/14(月) 16:00:08ID:???
>>533
そういうのやってる奴もいるだろうけど、配列を作るのに演算子じゃなくって関数にするのはコストが大きすぎると思うな。
htmlspecialchars()をh()にするとかは、使われる個所も少ないし、いいかなと思うけど。
0539nobodyさん2008/01/14(月) 17:15:59ID:???
$h = 'htmlspecialchars';

$h( $cont);


関数定義するのが嫌ならこれでいいんじゃね?
0540nobodyさん2008/01/14(月) 17:19:31ID:???
arrayだとこれじゃ駄目だな
忘れて
0541nobodyさん2008/01/14(月) 17:29:41ID:???
php.internals見てると [] 形式のarray syntaxに反対結構多いっぽい
使う側としてはなんで未だに実装しないんだろう、
絶対 [] の方が便利じゃん、って感じなんだけどなあ
保守的だなと感じる
0542nobodyさん2008/01/14(月) 19:18:44ID:???
>>516
インデントの綴りはindentだ。

あとはYahoo辞書とかgoo辞書とかあるだろ?な?

dataの複数形がdatasだと思ってるプログラマ並みに見ててかわいそうだからちゃんと調べてこい。
0543nobodyさん2008/01/14(月) 19:20:18ID:???
>>541
反対してる人はどういう理由を掲げてんの?
0544nobodyさん2008/01/14(月) 20:55:16ID:???
>>543
foo([])
$var = [];
とか書き方されるとみにくくってワカンネ。

$foo['a'] = 1;
$foo = ['a'];
がややっこしくて読みにくい。

みたいな理由。
いや読みやすいだろう、っていう奴もいたり色々だが、rejectするクリティカルな理由はまだ見当たらないな。
そのわりにvoteの半分ぐらいが反対派でrejectされそうだったり。
0545nobodyさん2008/01/14(月) 23:22:43ID:???
http://blog.livedoor.jp/dankogai/archives/50985072.html
ヒゲに「PHP使いはなんちゃってプログラマー」と断言されてPHPER失神www
0546nobodyさん2008/01/14(月) 23:44:19ID:???
http://www.itmedia.co.jp/enterprise/articles/0801/10/news017_5.html
URL間違えてた
0547nobodyさん2008/01/14(月) 23:47:22ID:???
ワロスwwwwそうだろうと思ったwwww
0548nobodyさん2008/01/15(火) 02:20:54ID:???
自分の知らないものをたたきたくなる年頃
0549nobodyさん2008/01/15(火) 03:11:54ID:???
年頃も何も思いっきりオッサンじゃん
0550nobodyさん2008/01/15(火) 04:08:21ID:ivklLH2p
次にどのフレームワークを使えばいいか参考にしたいので回答お願いします

PHPフレームワークについてのアンケート
http://enq-maker.com/3gbtgIH
0551nobodyさん2008/01/15(火) 04:16:12ID:???
何に使うのそれ
0552nobodyさん2008/01/15(火) 04:49:19ID:???
>>549
オッサンって自分の知らないものをよくたたくじゃんw
0553nobodyさん2008/01/15(火) 04:53:15ID:???
>>550
うはww
俺の票のせいで、
パーセントが大きく変化したw
0554nobodyさん2008/01/15(火) 04:53:45ID:???
インタビュアーの質問が変だと思ったら・・忙しいのか、いつまで経っても進歩しないあの人じゃないか。
0555nobodyさん2008/01/15(火) 09:19:38ID:???
この人のブログ全部読んでないから全容はしらんが、
PHPはなんちゃって、スーツとギークの話は同意。
0556nobodyさん2008/01/15(火) 10:27:30ID:???
>>546
パスワードを自分の名前にするような人が何を言っても失笑を買うだけ(www
0557nobodyさん2008/01/15(火) 11:54:55ID:???
すごいプログラマってのはだいたいアニヲタ。

これは禁則事項です。だったか?
0558nobodyさん2008/01/15(火) 12:23:06ID:???
データベースの操作がしやすいFWないかな?
検索するときに、
「テスト123」で検索すると
「テスト123」
「テスト123」
「テスト123」
「テスト123」
とか、様々なパターンに分けて検索したいんだが・・・
今はmb_convert_kanaで1個ずつやってる
0559nobodyさん2008/01/15(火) 14:47:37ID:???
>>550
ちいたん大人気じゃん
なんで単独スレないの?
0560nobodyさん2008/01/15(火) 16:00:14ID:???
>>558
なにその無駄コスト…
senna入れたら全部ヒットすると思う
0561nobodyさん2008/01/15(火) 16:53:53ID:???
>>557
弾そんなこと言ってたの?きめぇしありえん
0562nobodyさん2008/01/15(火) 19:30:10ID:???
symfonyのfrontend_dev.phpみたいな機構ciにありますか?
0563nobodyさん2008/01/15(火) 20:53:26ID:???
ブログ書いてるような女プログラマは
どいつもこいつも女であることを過剰に意識し
かつ女であることに寄っかかってるからうざいな
http://wiredvision.jp/news/200801/2008011123.html
このくらいのレベルになればまあいいけど
べにじょとか言う馬鹿女はちんぽでビンタしてやりたい
0564nobodyさん2008/01/15(火) 21:27:28ID:???
こんなにカワイイ女なのにオタクなワテクシ(笑)
0565nobodyさん2008/01/15(火) 21:52:54ID:???
>>561
Q49 思わず「こ れ は ひ ど い」と口にしてしまったコードがあれば教えてください。

自分が書いたものも含めてしょっちゅうですが、
世界平和のためにこの回答は禁則事項としておきましょう。
0566nobodyさん2008/01/15(火) 22:15:07ID:???
>>563
なにこのブサイクのひがみ
0567nobodyさん2008/01/15(火) 22:26:17ID:???
>>564
かわいいかどうかも分からんし
決まって選びに選んだ曖昧なショットを載せてるからな
Jade Raymond様になら優しくしかって欲しいが…
0568nobodyさん2008/01/15(火) 22:27:37ID:???
>>550
技術評論社
ちいたん×PHP
発売決定
0569nobodyさん2008/01/15(火) 22:31:24ID:???
>>563
>Jade Raymondは、カナダのマギル大学でコンピュータ科学の学士号を取得し、軍事科学も副専攻して卒業した。

攻略されてえええ
0570nobodyさん2008/01/15(火) 22:40:52ID:???
おまいらはオードリーたんにでも萌えとけ
0571nobodyさん2008/01/15(火) 22:43:41ID:???
Natali Del Conte様も知性と乳のでかさを兼ね備えてる感じでgood
0572nobodyさん2008/01/15(火) 22:51:04ID:???
>>546
Q61 コンピュータ関係以外で趣味と呼べそうなものはありますか?
僕は「趣味は?」と聞かれたら「悪くありません」と答えることにしているのです。

いいえ、悪いですよ?
0573nobodyさん2008/01/16(水) 16:36:00ID:???
やっぱりcode igniterが人気なのかねー
ドキュメントも整ってるし、重すぎない中庸な感じが人気の秘訣か?
0574nobodyさん2008/01/16(水) 16:39:12ID:???
フレームワークでsenna(トリトン)使ってる人いる?
標準のormだと全文検索できなくね?
やっぱ自分で書いてんの?
0575nobodyさん2008/01/16(水) 22:54:15ID:fD4Q9VvA
ちいたんはかんたん
0576nobodyさん2008/01/17(木) 00:33:00ID:???
アンケートのちいたんの優勢
ネタと思ってたけど実際にそうだったらびびるな・・・
実は隠れたメジャーフレームワークだったとか
0577nobodyさん2008/01/17(木) 00:50:04ID:???
ちいたん使ってない時点でPHP使いとしてはモグリ
0578nobodyさん2008/01/17(木) 08:13:34ID:???
SunがMySQL買収でPHP脂肪www
0579nobodyさん2008/01/17(木) 09:25:11ID:???
うお,まじだ
0580nobodyさん2008/01/17(木) 09:25:48ID:???
いい機会だ
PHP投げ出す
0581nobodyさん2008/01/17(木) 11:03:06ID:???
SolarisとMySQLの親和性が高まれば、ますますエンタープライズ用途へPHPが浸透して、割を食うのはJavaとOracleだと思うが。

PHPで作られた勘定系とか、恐ろしくて使えんな(www
0582nobodyさん2008/01/17(木) 11:21:27ID:???
Sun「PHPでMySQLをいじると速度が3倍遅くなるようにします
0583nobodyさん2008/01/17(木) 11:22:31ID:???
LAMP→LAMJ(ava)
0584nobodyさん2008/01/17(木) 11:23:12ID:???
ランジュ
0585nobodyさん2008/01/17(木) 18:09:31ID:???
821 :NAME IS NULL :sage :2008/01/17(木) 17:01:58 ID:???
MySQL が Oracle や IBM を追い詰めるって妄想にもほどがあるw

Sun の狙いは現行 MySQL で構築してあるシステムを Sun のハード & ソフトに置き換えること。
そこそこ規模の大きいとこは SPARC + Solaris + Oracle でリプレースすること。
つまり現 MySQL ユーザの取り込みだよ。Sun はそういう会社。それ以外に興味はない。

過去に Sun に買収されたところがどんな冷や飯を食ったか (あるいはお亡くなりになったか)、
Cobalt を例に挙げよう。

1. Cobalt 買収。これで Sun にも I/A + Linux の販売基盤ができたとメディアが騒ぐ  ← 今の MySQL
2. Sun、サポート体制配備。客とのコネ作り。
3. Cobalt 塩漬け開始。ほぼ同時に Sun が I/A ハード販売開始。
4. 2 世代も古くなればさすがに客も Sun の I/A、SPARC サーバへ乗り換えはじめる。
5. Cobalt 終了のお知らせ。

これ見てるとPHPじゃなくてMySQLが脂肪…?
0586nobodyさん2008/01/17(木) 18:25:12ID:???
LAMPも終わりかぁ?LAPP移行かな
0587nobodyさん2008/01/17(木) 18:42:24ID:???
LLPR(Linux/lighttd/PostgreSQL/Ruby)の時代キタコレ
0588nobodyさん2008/01/17(木) 19:02:42ID:???
PHPとなんの関係があるんだ?
0589nobodyさん2008/01/17(木) 19:05:38ID:???
welcome to ruby world
■ このスレッドは過去ログ倉庫に格納されています