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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/12/11(火) 23:37:20ID:???
前スレ
http://pc11.2ch.net/test/read.cgi/php/1192604501/
0452nobodyさん2008/01/11(金) 09:37:40ID:???
>>451
職場で使ってる言語の統計とってみたら面白いだろうね。

言語シェアを反映してJapaが圧倒的で残りがPerlとPHPのような気がするな。
0453nobodyさん2008/01/11(金) 09:48:55ID:???
Pythonは鬱率低そう
0454nobodyさん2008/01/11(金) 11:52:02ID:???
japaワロスwww
0455nobodyさん2008/01/11(金) 13:04:34ID:???
ソフトウェア産業で骨折なんかするヤツはいないだろうから
メンタルが多いのは当たり前だと思うが。
0456nobodyさん2008/01/11(金) 16:07:47ID:???
この時期、朝5時に起きて6時から足場の雪かきとかやってた俺からすると、
暖房効いた部屋での座り仕事なんか屁でもないけどな。
弱すぎ。弱小動物は氏ね。
0457nobodyさん2008/01/11(金) 17:37:37ID:???
暖房でも心の寒さまでは温められないということですね
0458nobodyさん2008/01/11(金) 18:12:47ID:???
>>456
なんでそんなストロングマンがこのスレみてんの?(www
04594562008/01/11(金) 18:17:21ID:???
>>458
いや俺プログラマだしw
この業界で鬱だなんだのって、精神力よりも基本的能力が不足すぎてるのが原因だなー
WEB案件なんか余裕だろうに・・・
0460nobodyさん2008/01/11(金) 18:59:57ID:???
現実で誰にも相手にしてもらえなくて、
2ちゃんで自分語りの自慢厨を見ますと、
なんだか切ない気持ちになりますね
0461nobodyさん2008/01/11(金) 19:44:26ID:???
>>459
こないだ自殺したうちの同僚と、昨年心臓発作で死んだうちの同僚と、
同じく脳卒中で死んだうちの同僚の代わりにおまえが死ねば良かったのに。
0462nobodyさん2008/01/11(金) 22:56:10ID:???
お前の同僚死にすぎだろ・・・
0463nobodyさん2008/01/11(金) 22:57:14ID:???
なんか呪われてるだろ
0464nobodyさん2008/01/12(土) 00:12:31ID:???
>>437
参考になります!
PHPの生セッションを使えるように工夫してるんですね!

>>443
CIスレで勉強しよ。
なるほど、PHPの生セッション使える方法も用意されているんですね!
http://codeigniter.biz/rapyd_guide/classes/session.html

CI+Rapyd+ZFで、自分の欲しい部品が揃えばいいなー^^
0465nobodyさん2008/01/13(日) 13:49:59ID:???
http://www.moongift.jp/2008/01/jsruby/
JavaScriptで作ったRuby登場でPHP破滅www
0466nobodyさん2008/01/13(日) 14:39:47ID:???
Rubyで書いたPHPを作ればいいんだよw
0467nobodyさん2008/01/13(日) 15:29:13ID:???
RubyってJavaScriptで実装できる程ショボいんすかwww
0468nobodyさん2008/01/13(日) 17:19:54ID:???
PHPより簡単になって普及したら、別にRubyの乗り換えてもいい。
PHPはいつでも捨てられる。
今のところRubyでなければならない理由がない。
Ruby程度じゃPHPのニーズがゼロになる日はまだ来ない。
0469nobodyさん2008/01/13(日) 21:53:46ID:???
当たり前のことを持論みたいに言われたときってなえるよね。
0470nobodyさん2008/01/14(月) 00:22:49ID:???
PHP6でアクセラレータ内蔵されるってまじ?
PHPハジマタ
0471nobodyさん2008/01/14(月) 00:52:50ID:???
むしろ今まで毎回構文解析してた事がおかしい
0472nobodyさん2008/01/14(月) 00:54:47ID:???
んなこたない。再起動無しで変更反映する一番シンプルな方法。
0473nobodyさん2008/01/14(月) 01:13:43ID:???
開発中はオフにすればいいだけであって
毎回構文解析するのがシンプルな方法だとかそういう問題じゃない
0474nobodyさん2008/01/14(月) 02:16:51ID:???
今のアクセラレータだって再起動なんていらないだろ?
なに再起動って?
0475nobodyさん2008/01/14(月) 02:24:12ID:???
再起動ワロタ
0476nobodyさん2008/01/14(月) 03:05:45ID:???
標準でバンドルされるかどうかはさておき、APCは今でもPECLでインストール
できるから、大した変化じゃない。
今ホットな(MLで炎上している)話題はスカラーのタイプヒンティングとか、
[]で配列を宣言するとか、無名関数・クロージャとか、構文上の変更。
0477nobodyさん2008/01/14(月) 03:21:14ID:???
構文からごっそり変更されて古PHP脂肪www
0478nobodyさん2008/01/14(月) 04:08:34ID:???
>>476
PHPにそんなのいらねぇだろ。
RubyかPython使え。
0479nobodyさん2008/01/14(月) 04:43:33ID:???
476に言ってどうするんだろう。
0480nobodyさん2008/01/14(月) 04:55:08ID:???
後方互換性があるならどんな機能でも付ければいいとは思うが…
0481nobodyさん2008/01/14(月) 05:03:59ID:???
>476
無名関数・クロージャの話って盛り上がってたか?
なんかスルーくらってる気がするんだが。
でもあれ実装されて欲しいな。便利だ。

>480
RasmusとかAndiは大体そんなノリなんだけどな。
なんかそれ俺的に見にくしぃー、とか言う輩が多いんだ。
0482nobodyさん2008/01/14(月) 05:33:32ID:???
年末からの流れを要約してみた。
・無名関数・クロージャで盛り上がる(改良には賛成多数、パッチの内容にツッコミあり)
・タイプヒンティングで炎上(不要派、エラー派、キャスト派に別れての大混戦)
・無名関数パッチ&角括弧配列パッチ投下(無名関数スルー、角括弧で大荒れ)
・投票方法はどうするよ?(←今ここ)
0483nobodyさん2008/01/14(月) 09:55:06ID:???
うわぁ〜、それらの機能全部欲しいわぁ。もちろん後方互換で。
そしたらマジで他の言語を使うメリットがないだろ。
初学者にも、ある程度なれた者にも使い易くなりそう。
0484nobodyさん2008/01/14(月) 10:34:46ID:???
スカラを廃止して全部オブジェクトにしろ。
0485nobodyさん2008/01/14(月) 11:10:15ID:???
PHP主に使ってるが無名関数とかクロージャとかいらんわ。読みにくくなるだけ
0486nobodyさん2008/01/14(月) 11:47:41ID:???
クロージャなんてマゾい機能イラネ
0487nobodyさん2008/01/14(月) 11:51:26ID:???
ねこにこばん
PHPコーダにクロージャ
0488nobodyさん2008/01/14(月) 12:10:02ID:???
クロージャってなーんじゃ?
0489nobodyさん2008/01/14(月) 12:45:42ID:???
どういう場合に役立つのか簡潔に説明してくれ。簡潔じゃなくてもいいけど。
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:???
何に使うのそれ
■ このスレッドは過去ログ倉庫に格納されています