トップページ⇒php
985コメント270KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/03/24(火) 01:21:08ID:???
PHPのフレームワークに関する話題用のスレッド

●国外産●
symfony
 ttp://www.symfony-project.com/
code igniter
 ttp://codeigniter.com/
Zend Framework
 ttp://framework.zend.com/manual/ja/index.html
CakePHP
 ttp://www.cakephp.org/
Yii Framework ←New!! (Dec 03, 2008)
 ttp://www.yiiframework.com/

●国産
ちいたん
 ttp://php.cheetan.net/
Ethna
 ttp://ethna.jp/
guesswork
 ttp://classic.guesswork.jp/
maple
 ttp://kunit.jp/maple/

●前スレ
【PHP】フレームワークについて語るスレ12【総合】
http://pc11.2ch.net/test/read.cgi/php/1229960175/
0369nobodyさん2009/08/19(水) 22:11:17ID:???
>>368
最後の2行が余計だな。
スレ違かもしれんが、PHP5以降に対する要望としてはお門違いでも無いし、
嫌なら他の言語使えってのは極論過ぎる。
0370nobodyさん2009/08/19(水) 22:23:43ID:???
お門違いだよ
0371nobodyさん2009/08/19(水) 22:27:23ID:???
お門違いじゃないよ
0372nobodyさん2009/08/19(水) 22:27:48ID:???
理由を言えよ、たこ助野郎
0373nobodyさん2009/08/19(水) 22:30:50ID:???
みんなで芋堀りすればいいんじゃね?
0374nobodyさん2009/08/19(水) 22:34:53ID:???
タイプヒンティング
http://php.benscom.com/manual/ja/language.oop5.typehinting.php
0375nobodyさん2009/08/19(水) 22:36:05ID:???
落ちて久しいPHP総合スレたててそっちでやれw
0376nobodyさん2009/08/19(水) 22:40:49ID:???
>>369
お前がいやだと思ってることはもう十二分にわかったから、日記帳にでも書いてろw
0377nobodyさん2009/08/20(木) 09:41:50ID:???
ちょっと質問なのだけど、
2〜3枚の軽いけど、DBを一応使う。みたいな要件の時FW使うまでもないかなと考えてるのですが、
そういう時皆はどうやって作ってますか?
規模に関係なくFW使ってる?
それとも、pdoとか使ってべた書き?
0378nobodyさん2009/08/20(木) 12:55:48ID:???
>>377
俺個人でやるならベタで書くな。その方が軽いし管理も楽だ。
仕事でやるなら周りのシステムに合わせておく。
0379nobodyさん2009/08/20(木) 16:29:50ID:???
>>355
ああ、それは大きいな。しょせんHTTP(というかHTML)には限界がある。
try {
int $num = $_REQUEST['age'];
} catch (Exception $e) {
die("age is not number");
}
こういうのがベスト。連想配列とかオブジェクトを直接REQUEST出来たり名。
0380nobodyさん2009/08/20(木) 17:23:29ID:???
>>379
なにそのコードこわい。

HTTPの限界?そもそも型を保証するようなプロトコルじゃないだろう。
0381nobodyさん2009/08/20(木) 18:26:24ID:???
phpとかhttpとか限界じゃなくて仕様と割り切るのが精神衛生上いいし、そういうもんじゃないのか
0382nobodyさん2009/08/20(木) 20:18:13ID:???
>>378
レスどうもありがとうございます。

コピーしてちょっと設置とか取り回しが面倒だし、
propelだけ入れるってのも手間かけるメリット薄いので、躊躇してました。
0383nobodyさん2009/08/20(木) 20:28:03ID:???
コツコツと自前の関数郡作ってる
そして会社には絶対に持っていかない
0384nobodyさん2009/08/20(木) 20:55:07ID:???
>>379
小さいプロジェクトはいいな。
0385nobodyさん2009/08/20(木) 21:10:24ID:???
>>379 のコードが理解出来ないのは俺だけか
0386nobodyさん2009/08/20(木) 21:39:30ID:???
Integer型の $num に Integer 以外の型で値が渡ってきたら
おかしいことなので例外が発生。
そのとき「値がおかしいぜ!」ってダイイングメッセージ残して
phpが死ぬって意味だろ。

しかしせめて
int $num = Integer.parseInt($_REQUEST['age']);
とかだろ。
0387nobodyさん2009/08/20(木) 22:03:58ID:???
例外の使い方が不適切なような・・
0388nobodyさん2009/08/20(木) 22:11:25ID:???
想定外の値が来たからキャストエラーだろ?
何か問題でも?
0389nobodyさん2009/08/20(木) 23:16:59ID:???
PHPの無茶キャストっぷりを考えたら意図した通りに動くとは思えないがw


そもそも、それはPHPのコードなのか?
0390nobodyさん2009/08/20(木) 23:42:04ID:???
論争

静的および強い型付けの支持者と動的および自由な型付けの支持者の間では衝突が度々おきる。
前者のグループは厳密な型付けの使用によって、処理系がより多くのエラーを
問題が大きくなる前に発見できるようになると主張している。
後者のグループはより気軽な型付けによってコードはよりシンプルなものになり、
そのようなコードは解析しやすいとされるので、エラーは減少すると主張している。
型推論がある言語では型を手で宣言する必要はほとんどないので、強い型付けに伴う開発のオーバーヘッドは低減される。

個人がどのグループに分かれるかは、開発しているソフトウェアの種類やチームのメンバーの能力、
他のシステムとの対話性の度合い、開発チームの規模などに依ることが多い。
少人数で小回りのきくプロジェクトには気軽な型付けがより合い、フォーマルで大人数で仕事が分断されている
(プログラマ、アナリスト、テスト部隊、など)プロジェクトは厳密な型付けのほうがうまくいくことが多い、と結論づける者もいる。
0391nobodyさん2009/08/20(木) 23:51:57ID:???
一般に動的な型付けを持つ言語では型の特性に合わせた最適化(例えば常に浮動小数点レジスタを用いるなど)ができないので、
実行速度という面では静的型に劣ると考えられている。反面多態性や記述の容易さで動的型は融通が利き、
Smalltalkなどのオブジェクト指向言語、スクリプト言語は動的型を採用するケースが多い。

動的型と静的型のどちらが安全なプログラムを記述できるのかは長年論争の的であるが、
双方とも適した問題領域、適した開発スタイルが存在し、異なった安全観念を持つ点を理解しなければならない

通常、静的型付けはオペレーティングシステムやシステムプログラムのような大規模で厳密性が要求される領域に適合するといわれている。
反面最初の型定義を誤ると一部分の影響が全体に波及すること、また柔軟性に乏しくわずかな変換に手間のかかる経路を用意したり
同じような機能を型別に実装しなければならないことなど、いわばお役所仕事的な煩雑さを伴うという弱点を持つ。
(なお近年の研究により静的型付けの言語も文脈から型を推論する型推論能力を持つなど簡略化の方向へ向かってはいる)

一方動的型付けの言語ではそもそも対象に特定の構造を期待しないため変更への対応は柔軟である。
特に配列、辞書、集合といったコレクションの利便性が顕著で、そのため近年いわゆるスクリプト言語は多くが動的型付けを採用している。
動的型付けの難点である最適化の弱さは、コンピューターの能力が増すことで相対的に小さな問題になっており、
スクリプト言語を中心に今後も動的型付けは発展するものと思われる。

0392nobodyさん2009/08/20(木) 23:55:54ID:???
実行パフォーマンスには期待していない。
部分的に強い型付けが出来る程度がPHPの理想系な気がする。
0393nobodyさん2009/08/20(木) 23:58:39ID:???
おまえらにscalaを紹介するよ
0394nobodyさん2009/08/21(金) 00:09:49ID:???
どんなに言語が簡単で優れていても、
ライブラリが揃ってない時点でPHPerは移行しないだろ。

なぜなら自前で実装する知識が無いから。
フォームデータのパースすら出来ない人がほとんどなんじゃない?
0395nobodyさん2009/08/21(金) 00:12:22ID:???
つーまーりー?
0396nobodyさん2009/08/21(金) 00:25:19ID:???
仕事で使う言語を自由に選べたらこんなスレにいねーよ
0397nobodyさん2009/08/21(金) 00:28:39ID:???
まったくだな
0398nobodyさん2009/08/21(金) 00:30:56ID:???
だーけーどー?
0399nobodyさん2009/08/21(金) 01:28:55ID:???
>>377
俺は自作のフレームワークもどきを使っているよ。
最小でPHPファイル1つで完結する。
フレームワークというより、ファイルの置き方を決めた程度だけどな。

PHPを使わないでベタで書いたものから
簡単に移行できる設計になっているから、
ベタでかいていたけど、PHPファイルが数枚になって
ディレクトリ構造とか考え出したときに、すぐに変更できる。
0400nobodyさん2009/08/21(金) 01:45:00ID:???
それを今すぐ公開しろ。今すぐだ
0401nobodyさん2009/08/21(金) 02:00:22ID:???
>>399
CakePHPスレで見た希ガスwww
http://pc11.2ch.net/test/read.cgi/php/1236563737/617
0402nobodyさん2009/08/21(金) 02:28:35ID:???
さすがだな。スネーク
0403nobodyさん2009/08/21(金) 03:10:01ID:???
それフレームワークとは言わなくね
0404nobodyさん2009/08/21(金) 05:33:23ID:???
>>377
もう、ちいたん+pdoでええやん
0405nobodyさん2009/08/21(金) 12:24:36ID:???
Agavi による MVC プログラミング入門
http://www.ibm.com/developerworks/jp/xml/library/x-agavipt1/?ca=drs-jp

何故か今agaviが!
0406nobodyさん2009/08/21(金) 16:00:04ID:???
var_dump(strpos(100, 10));
var_dump(strpos(100, '10'));

何で結果が違ってくるの?
0407nobodyさん2009/08/21(金) 16:29:35ID:???
>>406
マニュアル見ろよw
0408nobodyさん2009/08/21(金) 17:15:19ID:???
>>407
型のことなんてどこに書いてあるの?
0409nobodyさん2009/08/21(金) 17:34:09ID:???
>>408
ttp://jp.php.net/manual/ja/function.strpos.php

> needle が文字列でない場合は、 それを整数に変換し、
> その番号に対応する文字として扱います。
0410nobodyさん2009/08/23(日) 14:47:30ID:???
php 5.3 で、HTML中の <?=$val> のような変数表示に関して、仕様変更ありました?
0411nobodyさん2009/08/23(日) 15:53:07ID:???
うん
0412nobodyさん2009/08/23(日) 15:53:16ID:???
php 5.3じゃなくても <?=$val> は構文エラーになると思うけど。
0413nobodyさん2009/08/24(月) 02:01:45ID:???
short_open_tag=Onにすれば、構文エラーじゃないと思ったが、
よく見たら<?=$val ?>じゃないのね。
そりゃ構文エラーだわ。
0414nobodyさん2009/08/24(月) 09:11:24ID:???
>>413
ありがとう。short_open_tag スイッチですね。
0415nobodyさん2009/08/24(月) 12:42:48ID:???
short_open_tag使わない奴はただの暇人
キー打つ時間がもったいねーだろ
0416nobodyさん2009/08/24(月) 14:52:54ID:???
そうかそうか
0417nobodyさん2009/08/24(月) 15:10:12ID:???
>>416
いや、ユダヤだと思うよ
0418nobodyさん2009/08/25(火) 00:20:28ID:???
ははっ ワロス
0419nobodyさん2009/08/25(火) 13:33:43ID:amBbmp7F
>>415
補完を知らない暇人乙
0420nobodyさん2009/08/25(火) 16:12:34ID:???
>>399

俺も自作って言うか、ZendFWを自分の使い易いようにラッパーした物使ってる。
つうかZendFWが予想以上に出来る子だった。
0421nobodyさん2009/08/25(火) 17:23:39ID:???
>>419

<?=$val?>
<?php echo $val ?>
補完でどうにかなるもんなの?
0422nobodyさん2009/08/25(火) 17:36:36ID:???
>>420
やぁ俺。だが現実的にphp4の環境で動いているところが多くて、結局自前ラッパーフレームワーク互換の
php4用自前フレームワークもどきを作って2つをメンテナンスしていく羽目になって泣いている。えーん。
0423nobodyさん2009/08/25(火) 18:57:14ID:???
PHPとはちょっと関係ないんだけど、HTTP Status コードについて相談したいことがあります。
フォーム入力のバリデーションをしてエラーがあった場合、HTTP Response のステータスコードは何にすればいいでしょうか。
今までは特に指定してなかったので、結果として 200 OK を使っていたわけですが、
今度から Ajax 用のAPIを用意することになり、フォーム入力にエラーがあるかどうかを
HTTP Response のステータスコードで表すことになりました。
しかしどのステータスコードを使っていいのかよくわかりません。

フォーム入力にエラーがあることを表すにはどのステータスコードが適切でしょうか。
このスレはレベルの高い人が多いようなので、アドバイスをよろしくお願いします。
0424nobodyさん2009/08/25(火) 19:42:58ID:???
全く持ってすれ違い
そもそも用途が違う

ページリクエストに対して返すもので、コンテンツのエラーは管轄外
0425nobodyさん2009/08/25(火) 20:10:47ID:???
>>423
通信自体は成功しているから200にしておくべき
XMLかJSONかわからないけど、status項目等を追加してシステム独自のエラーコードなりエラーメッセージで判断するのが普通と思われる。
0426nobodyさん2009/08/25(火) 20:33:19ID:???
>>421

補完云々以前に
> <?=$val?>
> <?php echo $val ?>

こういうコーディングする時点で終わってる。
0427nobodyさん2009/08/25(火) 21:18:26ID:???
>>426

コーディング云々以前に
PHP使ってる時点で終わってる。
0428nobodyさん2009/08/25(火) 21:28:37ID:???
2ch使ってる時点で終わってる
0429nobodyさん2009/08/25(火) 21:54:16ID:???
>>425
通信自体は成功しているから200にしておくべき

これは無いだろう
0430nobodyさん2009/08/25(火) 21:59:54ID:???
うむ
0431nobodyさん2009/08/25(火) 22:19:15ID:???
<?php を間違えて<? って書いてた。
PHP5.3に入れ替えてプログラム実行したら
ソースコードが表示されて混乱した。
0432nobodyさん2009/08/25(火) 22:20:42ID:???
>>423
400 Bad Requestじゃね?
0433nobodyさん2009/08/25(火) 22:30:20ID:???
>>431
まじ?恐ろしすぎる
コード丸見え事件が頻発しそう
0434nobodyさん2009/08/25(火) 22:55:34ID:???
>>433
うん。詳しくは検証していない。

php.iniで設定できるのかもしれないし、
自分がやったのがCLIだったので、CLIだけかもしれないし、
include/requireで読んでいるものは関係ないかもしれない。
が詳しくは検証していない。

考えてみれば、パスワードが含まれたファイルでミスってたら危険だね。
0435nobodyさん2009/08/26(水) 00:35:59ID:???
素人すぎるわ
くだすれ行け
0436nobodyさん2009/08/26(水) 02:01:58ID:???
>>433-434
頭悪いとかってレベルじゃねーぞ…
そういう基本的なことすら理解してないって、よく恥ずかしげもなく宣言できるもんだなw

だいたいショートタグなんて使う意味がないだろ
1ファイル中に何度も書くもんでもないし、XMLとぶつかるし、こういうアホ達がやらかすし、
使わないようにしよう言われるようになってからもだいぶ久しいってのに…
0437nobodyさん2009/08/26(水) 02:29:31ID:???
中学生乙w
0438nobodyさん2009/08/26(水) 02:31:38ID:???
>>423
そもそもHTTPリクエストに対するレスポンスのステータスを示すものであって
一般的にはバリデート結果の通知に用いるような使い方はするべきでない
そういうアホなことやってる企業とかもあるにはあるし、
解釈の仕方ではそういう用途に使えると曲解できなくはないと思うけど、
悪いこと言わんからレスポンスのなかにフラグでも持たせて判断するべき

つーかスレ違いだし、まず ftp://ftp.rfc-editor.org/in-notes/rfc2068.txt 嫁
0439nobodyさん2009/08/26(水) 02:33:38ID:???
431、433はさすがにネタだと思いたいw
0440nobodyさん2009/08/26(水) 03:57:01ID:???
php使ってるやつは頭悪杉wよくこんなダサいの使えるな
センスを疑うよ、まったくwww
0441nobodyさん2009/08/26(水) 10:01:33ID:???
わざわざ言いに来たお前はもっと馬鹿だということに気づいた方がいいよ
0442nobodyさん2009/08/26(水) 10:57:59ID:???
最近は文章も読めないガキが多いな。

単に、<? と ”間違って” 書いただけだろ。

俺は人生で今まで一度も間違ったことが無いってやつは
挙手しろよ。

うそつき認定してやっから(爆笑)
0443nobodyさん2009/08/26(水) 12:45:13ID:???
キリンさんが好きです。でもショートタグはもっと好きです。
0444nobodyさん2009/08/26(水) 13:16:19ID:???
ショートタグ使う勇気もない奴は一生童貞だろうなw
0445nobodyさん2009/08/26(水) 13:29:22ID:???
ショートタグ使う奴は、フレームワーク以前の問題だろw
コードレビューしたら笑われても文句言えないレベル。

>>421
スニペットとかコードテンプレートでぐぐれ。
0446nobodyさん2009/08/26(水) 14:56:15ID:???
ショートタグって悪い理由ないんだってね。
0447nobodyさん2009/08/26(水) 14:56:32ID:???
良い理由がないよ
0448nobodyさん2009/08/26(水) 14:59:35ID:???
良い理由はあるよ。キータイプの数が少ない。
0449nobodyさん2009/08/26(水) 15:03:19ID:???
ショートタグ否定する奴に限ってHTMLエスケープもろくにしてないんだから
参っちゃう
0450nobodyさん2009/08/26(水) 15:09:20ID:???
XML と誤読するとか
0451nobodyさん2009/08/26(水) 15:14:27ID:???
PHPが書かれたファイルにXMLが書かれてるケースなんてほとんどないだろ
てかHTML5が出たからXMLなんてもはや下痢便以下の存在だろ
そんなもののために便利なショートタグ使わないことが許されるのは小学生まで
0452nobodyさん2009/08/26(水) 15:18:50ID:???
正直どうでもいい。
0453nobodyさん2009/08/26(水) 15:29:16ID:???
>PHPが書かれたファイルにXMLが書かれてるケースなんてほとんどないだろ
えっ
0454nobodyさん2009/08/26(水) 16:18:36ID:???
ブラウザの対応状況とかから言って、実際にはXML宣言なんてほとんど使わないものな。ドコモ向けにXHTMLで書くときぐらいか。
どうしてもって言うなら、JSPみたいに<%なんかに変えちゃった方が良かったと思う。数少ないPHPのメリットなのに。
0455nobodyさん2009/08/26(水) 16:28:09ID:???
PHP で RSS や SOAP の動的生成とかしない子がいる
04564232009/08/26(水) 16:41:30ID:???
>>425
>通信自体は成功しているから200にしておくべき
えー、そうでしょうか。「通信の成功」って、どのことを指してます?

>XMLかJSONかわからないけど、status項目等を追加してシステム独自のエラーコードなりエラーメッセージで判断するのが普通と思われる。

そういう項目を追加したくないので status code を使いたいんですけどだめですか。

>>429
>通信自体は成功しているから200にしておくべき
>
>これは無いだろう

ですよねー。

>>432
>400 Bad Requestじゃね?
最初はそのつもりだったんですけど、仕様書によると、400はHTTP Requestの構文が違っていることを表すものなので、
validation errorを表すのには不適切ではないかとおもいました。(それで今回質問したわけです。)
0457nobodyさん2009/08/26(水) 16:49:29ID:???
ショートタグがPHPのメリットとか言ってる人は、互換性やPEAR規約を知らないんだろうか。
少なくとも推奨されるべきものでは無い。
04584232009/08/26(水) 17:01:58ID:???
ttp://www.studyinghttp.net/status_code#Client_Error
こちらのページを参考にした結果、422 Unprocessable Entity を使うことにしました。
このステータスコードは、たとえば送信されたXMLデータが妥当でなかった場合などに
使われるようなので、validation error のときもこれでいいだろうと思います。
以下引用:

> 422 Unprocessable Entity
>
> | 422 (Unprocessable Entity) ステータスコードは、サーバはリクエストエンティ
> | ティの内容タイプは理解でき (そのため 415 (Unsupported Media Type) ステー
> | タスコードは不適切である)、リクエストエンティティの構文は正しい (従って
> | 400(Bad Request) ステータスコードは不適切である) が、含まれる命令を処理
> | できないという事を意味する。 例えば、XML リクエストボディが
> | well-formed である (すなわち、構文的に正しい) が、意味的に誤った XML 命
> | 令を含む場合、このエラー状態が生じるであろう。
>
>
> ステータスコード 422 は、WebDAV について記述されている RFC 4918 内で定
> 義されています。
>
> リクエストに同封されるエンティティが処理できない場合に、このステータス
> コードが返されます。 例えば、上の文にあるように、エンティティ中の XML
> が妥当{valid} でない場合が考えられます。


すれちがいすみませんでした。
0459nobodyさん2009/08/26(水) 17:49:16ID:???
>>451

> PHPが書かれたファイルにXMLが書かれてるケースなんてほとんどないだろ

確かに

> てかHTML5が出たからXMLなんてもはや下痢便以下の存在だろ

HTML5の規格は調べてないから知らないが、どうせXML文書だろ。
XMLとXHTMLの違いも分からないのか?


> そんなもののために便利なショートタグ使わないことが許されるのは小学生まで

非推薦のショートタグを使うことが許されるのは素人だけ
0460nobodyさん2009/08/26(水) 18:05:09ID:???
XML宣言は必須じゃないしね。

ショートタグの何を恐れているのか
理解できない。
0461nobodyさん2009/08/26(水) 18:40:42ID:???
>>456,458
それも違うと思うが
0462nobodyさん2009/08/26(水) 19:10:34ID:???
PHPってバージョン4になってから以降、開発者のセンス悪すぎ。ショートタグを止めたと思ったら、gotoを導入するとか。
0463nobodyさん2009/08/26(水) 19:27:27ID:???
>>460
未対応設定になってるサーバがあったり、
顧客の社内規約で禁止になってたりするからじゃない?
個人的にはオープンソースなスクリプトでショートタグ使ってたら、一気に醒める。
利便性より汎用性。
0464nobodyさん2009/08/26(水) 19:39:48ID:???
>>462
それ以前からどうしようもないセンスだったと思うが。
0465nobodyさん2009/08/26(水) 19:48:29ID:???
>>462
finally 実装しないでgotoだもんな。
しかも try/catchより goto の方がコードが綺麗になるとか言っちゃうくらいだし・・・
PHPユーザの質の低さがばればれだよね。
(ネームスペースもgotoもユーザ意見で最終決定したと思われる)


ここもいずれ、goto厨が湧いて「便利なのになんで使わないんだ!」とか言い出すんだろうね。
0466nobodyさん2009/08/26(水) 20:36:58ID:???
<?php

goto hell

hell: die('\(^o^)/オワタ');
0467nobodyさん2009/08/26(水) 20:41:55ID:???
>>466

<?php echo "クソワロタwww"; ?>
0468nobodyさん2009/08/26(水) 23:06:50ID:???
すごく…自演くさいです…
■ このスレッドは過去ログ倉庫に格納されています