トップページ⇒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/
0693nobodyさん2009/09/10(木) 20:30:02ID:???
>>692
いいんじゃないかw

俺はINIファイル派だけどなw
0694nobodyさん2009/09/10(木) 20:59:40ID:???
スタティクファイル読み込みクラスのアダプターとしてYAML読み込みを実装
0695nobodyさん2009/09/10(木) 21:04:31ID:???
yamlっつっても、symfonyの設定ファイルみたいに、
そこにphpコードも書けないと不便だよね
そういうことを考えていくと余計に面倒になってくる
フレームワークに元々実装してあるなら使うけど
0696nobodyさん2009/09/10(木) 21:25:53ID:???
PHPネイティブでiniやXMLがあるのに、YAMLを選択する理由がわからんなぁ・・・。

iniはシンプルかつ、一般的。
XMLは複雑だが、Flash等と親和性がある(扱えるデザイナが多い/開発環境も多い)
JSONはJSとの親和性がある

YAMLは学習及び実装コストに見合うメリットはあるのだろうか?
ミーハーな感じがするわ。
0697nobodyさん2009/09/10(木) 21:35:20ID:???
JSONより楽ちんなところくらいかな
0698nobodyさん2009/09/10(木) 21:42:33ID:???
学習コスト、実装コストってwwww

そんなもん一時間かそこらだろうが。試すだけ試してみりゃいいじゃん。
0699nobodyさん2009/09/10(木) 22:21:24ID:???
PHPで完結してるならYAMLなんて使わず素のPHPでいいと思う。順番付のハッシュがある(しかない)PHPの変数構造体は十分分かりやすいと思う。
0700nobodyさん2009/09/10(木) 22:34:09ID:???
YAMLは半角スペースで階層を表現してる時点でなぁ・・・
意図しない半角スペースが入っていても値としては正常なモノとして扱われるのが厄介すぎる。

>>698
パーサからの実装を1時間そこらで出来るわけないだろw
0701nobodyさん2009/09/10(木) 22:38:25ID:???
すでに実装があるから必要ないだろ。
0702nobodyさん2009/09/10(木) 22:38:41ID:???
>>696
iniはセクションがどうとか、データの階層構造で
複雑なものが作れないんだわ。

YAMLだと自分が思ったままの理想のデータ構造そのまま定義できる。
楽なんだよ。

>>699
array( array( array( 地獄から抜け出せるぜw
0703nobodyさん2009/09/10(木) 22:46:53ID:???
arrayの表記がダサいのが一番問題なんだよな
[]とかで表記できたらいいのに
5.3もおもしろ機能ばっかり付けないでそういうの付けろ
0704nobodyさん2009/09/10(木) 22:49:13ID:???
>>701
どこの誰が作ったかもわからん実装を検証もせず使えるかw
0705nobodyさん2009/09/10(木) 22:51:08ID:???
>>704
OSから作ってんのか? それともCPUも?
0706nobodyさん2009/09/10(木) 23:08:51ID:???
>704
じゃあ検証すりゃいいじゃん
少なくとも自分で書くよりは速いぜ
0707nobodyさん2009/09/10(木) 23:21:30ID:???
>>704
PHPも自作なのか
0708nobodyさん2009/09/10(木) 23:28:45ID:???
天才の704さんがぱねぇっす。
もちろん他人の作った飯なんて、米なんてのも食べられないんですよね?
0709nobodyさん2009/09/10(木) 23:38:01ID:???
>>703
はげどうだわw
0710nobodyさん2009/09/10(木) 23:45:09ID:???
配列と連想配列の組み合わせとかarrayarrayarrayarrayで書いてて頭がおかしくなる
0711nobodyさん2009/09/10(木) 23:58:39ID:???
arrayarrayarrayって書いていると、頭がおかしくなって、あ〜りぃ〜?って言う。
0712nobodyさん2009/09/11(金) 00:05:00ID:???
drupal 使っていると、array の array の array の array の array
とか当たり前で目が痛くなってくるw
0713nobodyさん2009/09/11(金) 00:06:27ID:???
>710
function a(){
return func_get_args();
}
というのはどうだろう、今思いついたんで動くかは知らん
0714nobodyさん2009/09/11(金) 00:06:48ID:???
有野有野有野うるさいんだよ。お前は有野のなんなんだ!
0715nobodyさん2009/09/11(金) 00:41:38ID:???
>>713
a('h' => 'o')
07167132009/09/11(金) 02:39:35ID:???
>715
連想配列は配列ではない(キリッ
…正直すまんかった
0717nobodyさん2009/09/11(金) 02:57:51ID:???
PHPの場合、連想配列と配列の区別ってないだろ
0718nobodyさん2009/09/11(金) 05:32:45ID:P+LwJJ6C
>>699
納品先によっては、ソースを直すには抵抗あるけど設定ファイルならOKってところもあるな。
0719nobodyさん2009/09/11(金) 05:39:23ID:???
OSやPHPの実装と、YAMLパーサの実装を同じ視点で考えちゃうのか・・・YAML信者は怖いな。
YAMLがメジャーになりうる要素も気配も無いのにね。
0720nobodyさん2009/09/11(金) 09:11:44ID:???
> YAMLがメジャーになりうる要素も気配も無いのにね。

え? すでにメジャー・・・
0721nobodyさん2009/09/11(金) 09:14:37ID:???
何を根拠に
0722nobodyさん2009/09/11(金) 09:17:21ID:???
> え? すでにメジャー・・・
YAML厨乙www
0723nobodyさん2009/09/11(金) 09:54:42ID:???
array arrayに嫌気がさしたらqiq
0724nobodyさん2009/09/11(金) 09:58:21ID:???
qiq は壊れた go-pear.phar や php_pgsql.dll なんかも修正した ( Linux であるような ) ディストリビューションとして配布されてもいいと思う
0725nobodyさん2009/09/11(金) 10:28:02ID:???
<自分語り>
とりあえずアンテナ低目の俺の場合、

ini, XML, JSON: ここしばらくの話は分かる程度には知ってた。
YAML: 「え、なにそれ?」とぐぐった
</自分語り>
0726nobodyさん2009/09/11(金) 11:46:22ID:???
正直設定ファイルごときにパーサ用意するのがめんどい
男は黙ってconfig.inc.php
どうせパスの位置ぐらいしか設定しないから配列地獄とは無縁
0727nobodyさん2009/09/11(金) 15:20:54ID:???
スタティクな値のビューへのアサインに使ってる
0728nobodyさん2009/09/12(土) 01:26:50ID:???
パスの設定しかしない人はconfig.inc.phpで問題ないだろう
0729nobodyさん2009/09/12(土) 03:11:18ID:???
そこまで変更ぐりんぐりんやらないといけないようなもの作るときにPHP選択しないん
0730nobodyさん2009/09/12(土) 13:48:16ID:???
そもそも、変更ぐりんぐりんやることあるのか?
0731nobodyさん2009/09/12(土) 15:53:14ID:???
そんあことは少ないし、そういう要件あっても、
フレームワークごとに推奨する実装あるだろ。
0732nobodyさん2009/09/13(日) 00:43:11ID:???
そんなに書き換えることもないような設定のためにわざわざパーサ用意するくらいなら
array(array(でいいよ
0733nobodyさん2009/09/13(日) 01:36:36ID:???
ZendFWのドットシンタックスなiniファイルで十分。

db.host = xxxx
db.user = xxxx
db.pass = xxxx

複雑な階層構造を持つ設定なんてそうそう無い。
設定ファイルドリブンな思考はためるべき。
0734nobodyさん2009/09/13(日) 01:40:40ID:???
xxx.iniってファイル名で、中身はPHPでいいよ
0735nobodyさん2009/09/13(日) 01:51:06ID:???
設定ファイルにPHPコード書けてしまうと、システム管理者以外に触らせるのが怖くなるから、わけるべき。
0736nobodyさん2009/09/13(日) 02:02:17ID:???
ンじゃ素直にiniファイルにした方が良いのか
0737nobodyさん2009/09/13(日) 06:41:03ID:???
シリアライズフォーマットとして考えると選択肢色々あるけど
設定ファイルならそのFWで標準的なもの使うだけ
0738nobodyさん2009/09/13(日) 09:11:18ID:???
iniじゃ複雑なデータ構造が作りにくい
0739nobodyさん2009/09/13(日) 09:58:40ID:???
そもそもiniにデータ構造突っ込もうとするのが間違ってると思うが。
自前でデータリストのファイル作れば良いじゃん
0740nobodyさん2009/09/13(日) 10:21:25ID:???
自分で、複雑なデータ構造を
パースするようなものを作れと?

そんなもの作るぐらいならYAML使うわw
0741nobodyさん2009/09/13(日) 10:27:39ID:???
え、俺なんか難しいこと提案した?
0742nobodyさん2009/09/13(日) 10:44:26ID:???
設定ファイルを難読化する気か
0743nobodyさん2009/09/13(日) 10:48:54ID:???
難しいことじゃなくて、
車輪の再発明(爆笑)を提案した
0744nobodyさん2009/09/13(日) 14:11:52ID:???
<?php
return array
(
設定..
);

で簡単最速
0745nobodyさん2009/09/13(日) 20:19:02ID:???
話が激しくループしてるな。
0746nobodyさん2009/09/14(月) 01:34:52ID:???
YAMLは言語に依存しないところもいいね。
PHPとPerlとかPHPと、Ajaxとか
そういう風に他言語と組み合わさったシステムでも
共通で使える。
0747nobodyさん2009/09/14(月) 10:06:34ID:???
それ、YAMLに限ったことじゃない上に、
iniやXMLのがパーサ多いww
0748nobodyさん2009/09/14(月) 10:19:23ID:???
たかだか起動時に一度読むだけ、みたいな設定ファイルにパーサ用意すんのもなぁ
YAMLはいいとおもうけど、手軽に使えるような土台がまだない感
0749nobodyさん2009/09/14(月) 13:22:47ID:???
YAMLは新しもの好きのミーハーがはやし立ててるだけだろw

・パーサが無い(発展途上)
・スペースインデントが面倒、またはエラーの温床になる。
・読みやすいと言われているが、iniやXMLと比べると読み辛い
・XMLに比べて書くのが楽と言われているが、入力補完/バリデーションの整ったXMLの方が現状では楽。

どう考えても、現状では導入するメリット薄い。
0750nobodyさん2009/09/14(月) 13:25:10ID:???
>・読みやすいと言われているが、iniやXMLと比べると読み辛い

「人間が」読み辛いという意味なら、XMLの方が読みにくいと思うな俺は。
0751nobodyさん2009/09/14(月) 13:35:36ID:???
RubyとかYAMLとか、いろいろ便利だし優れてるっておもうところはたくさんあるけど
導入コストに見合うメリットが足りないんだよねー
0752nobodyさん2009/09/14(月) 14:16:26ID:???
>>750
行数や階層が増えると構造を理解しにくくない?
XMLならビューワによるけど、タグ単位で閉じたり開いたり出来るから行数が増えても無問題なんだけど。
0753nobodyさん2009/09/14(月) 14:45:01ID:???
YAMLの表記って、XMLビューワーの画面そのものだよなw
0754nobodyさん2009/09/14(月) 14:51:38ID:???
> ・スペースインデントが面倒、またはエラーの温床になる。
それで思い出したが、XMLはスペースの扱いが大変。

たとえば、
<tag></tag><tag></tag>
と
<tag></tag>
<tag></tag>
は別物。</tag>と<tag>の間に改行があるかないかが違う。

<tag><tag></tag></tag>
と
<tag>
   <tag></tag>
</tag>
も別物。改行と先頭のタブ(空白)が違う。

無理やり合わせるために、こういう表現で書く場合もあるくらいだw
<tag
    ><tag></tag
></tag>

参考
http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou10/learning-xml10.html
http://www.ibm.com/developerworks/jp/xml/library/x-c14n/
0755nobodyさん2009/09/14(月) 15:45:15ID:???
>>754
お前XML理解してないだろw
空白や改行はルートノードの子にあたるテキストノードなんだから別に不思議でも大変でも無いわけだが。


> <tag
>    ><tag></tag
> ></tag>

見たことねぇわw
パーサ側でホワイトスペース除くなり、該当ノード以外は無視するなりするのが定石じゃね?
0756nobodyさん2009/09/14(月) 16:22:57ID:???
非定型ならXML、定型ならYAMLが向いてる
0757nobodyさん2009/09/14(月) 19:12:39ID:???
そろそろ>>663からの壮大なスレ違いの流れが100レスを超える

というわけで、

ここからは「自分の好きな設定ファイルのフォーマットを語るスレ」になります。
俺俺フレームワークで用いるもよし
パスの設定のみに使うもよし
PHPのバリデーションコード自体を仕込むもよし
ではどうぞ

ちなみに俺はCSV
0758nobodyさん2009/09/14(月) 20:15:54ID:???
今オススメのフレームワークってある?
俺はCakeしか使ったことがないけど、サクッと作るのにオススメのフレームワークとか他にある?
0759nobodyさん2009/09/14(月) 20:34:16ID:???
ちいたん

っていう流れをもう何度見たことか
0760nobodyさん2009/09/14(月) 20:40:01ID:???
上の方でfitzgeraldというのが紹介されてて
どうもコードが激しく短いっぽい&超シンプルっぽいので俺の脳内タスクに記憶され中。
でもCake使いだったら、ちいたんかCIなんだろうな
0761nobodyさん2009/09/14(月) 21:36:24ID:???
じゃ Kohana を推す
07627582009/09/14(月) 22:24:36ID:???
>>759-761
ありがとう。
fitzgerald、CI、kohana、ちぃたんを検討してみる。
これらでCakePHPよりおすすめな理由ってあれば話題ついでによろしくお願いします。

ちぃたんはまじめにオススメしてくれてるんだろうか・・。
07637582009/09/14(月) 22:29:40ID:???
調べたらCIから派生したKohanaは面白そうだな〜
0764nobodyさん2009/09/15(火) 15:14:53ID:???
CI やるなら Kohana お勧め。
ユーザが少ないのが難点だけど。
0765nobodyさん2009/09/15(火) 20:46:17ID:???
>>755
> 見たことねぇわw

リンク先も読めないのかよw
http://www.ibm.com/developerworks/jp/xml/library/x-c14n/

> <?xml version="1.0" encoding="UTF-8"?>
> <doc>
> <a
> a2="2" a1="1"
> >123</a>
> </doc>

> パーサ側でホワイトスペース除くなり、該当ノード以外は無視するなりするのが定石じゃね?
なんで見やすくしようと思っただけで、
パーサー書き換えないとならんのだ。本末転倒だ。
0766nobodyさん2009/09/15(火) 21:14:29ID:???
>>765
実践でそんな書き方してる人見たことねーよ。
5年前の情報だよソレ・・・

>> パーサ側でホワイトスペース除くなり、該当ノード以外は無視するなりするのが定石じゃね?
> なんで見やすくしようと思っただけで、
> パーサー書き換えないとならんのだ。本末転倒だ。

リンク先に書かれた書き方が「見やすい」の?
XMLの仕様を理解していればそんな書き方しないで該当ノードのみを抽出するなり、ルートノードに属するテキストノードを削除するなりすると思うんだけど。

ちなみにPHPのXMLパーサは普通に対応している。
PHP読み込み時には空白データとなるが、仕様としては正常なので、
不要ならデータ処理時に省けばいいだけ。
0767nobodyさん2009/09/15(火) 23:11:03ID:???
>>765
見やすさで言えばリンク先の書き方の方が本末転倒なのではw
0768nobodyさん2009/09/16(水) 02:47:27ID:???
>>766
> 、ルートノードに属するテキストノードを削除するなりすると思うんだけど。
そんなことをしたら意味が変わるだろw

> 見やすさで言えばリンク先の書き方の方が本末転倒なのではw
XMLの限界だよ。
気づけよw

XMLは機械が生成して機械が読み込むためのものであって
人間が読み書きするものじゃない。
0769nobodyさん2009/09/16(水) 03:01:53ID:???
反論したいなら、きちんと>>754からの流れを読んで書けよな。

>>768
>> 、ルートノードに属するテキストノードを削除するなりすると思うんだけど。
>そんなことをしたら意味が変わるだろw

流れ的に、改行とかスペースだけの不要なテキストノードを削除しろって意味だろ?
データ的には正しい仕様なんだから、パーサのせいじゃない。

>> 見やすさで言えばリンク先の書き方の方が本末転倒なのではw
>XMLの限界だよ。

何がどう限界なの?改行や空白だけのデータを保持出来ない形式に変えろって事?
お前の頭の理解の限界ってこと?


>XMLは機械が生成して機械が読み込むためのものであって
>人間が読み書きするものじゃない。

w 普通は機械が読み書きする専用のデータにテキスト形式なんて用いないんじゃね?
人間が読むために視覚化されてるんだろう・・・
0770nobodyさん2009/09/16(水) 03:07:04ID:???
> 流れ的に、改行とかスペースだけの不要なテキストノードを削除しろって意味だろ?

だからそれやったら意味が違うだろw

改行やスペースもも立派なデータだ。
スペース1個と空文字は意味が違う。
0771nobodyさん2009/09/16(水) 03:10:17ID:???
>>770
だから仕様的には正しいって書いてるだろw
>>754が、改行やスペースも立派なデータって事を認識しておらず、XMLは面倒とか書いてるから反論してるだけだ。
0772nobodyさん2009/09/16(水) 03:12:19ID:???
スペースが入っちゃまずいような値とかはAttributeにしときゃ
そもそもこんなアホな話題にならない

っつーかすれ違いいい加減どっか他所でやれよ
0773nobodyさん2009/09/16(水) 03:24:34ID:???
ああ、少し勘違いしていた。そういう話題じゃないか
どっちにしてもスレ違いだけどな
0774nobodyさん2009/09/16(水) 03:32:44ID:???
話題の発端自体はスレ違いじゃないんじゃね? >>663
各フォーマットの信者がムキになっちゃってるみたいだけど・・・

個人的にはPHPなら

ini > xml ≧ php ≧ JSON ≧ YAML

の順かなぁ・・・ケースバイケースだろうけど

iniはシンプルで誰にでも解りやすいと思う
xmlは親和性の高さと、拡張性の高さが魅力
phpは簡単な設定振り分けコードも埋め込めるのが魅力
JSONはJSとの親和性が高く、他言語含めパーサの選択肢が多いのも魅力
YAMLは発展途上で、パーサ、知名度的に未知数

という感じ
0775nobodyさん2009/09/16(水) 04:00:23ID:???
iniは表現力に劣るからなあ。
0776nobodyさん2009/09/16(水) 04:26:35ID:???
おまえらもう分かったからバイナリファイル(独自フォーマット)で設定ファイル読み書きしとけ
0777nobodyさん2009/09/16(水) 04:39:06ID:???
>>775
XMLは冗長だからなあ。

要件に合わせて選択すればいい。
0778nobodyさん2009/09/16(水) 09:01:10ID:???
>>769
それは間違ってる
汎用のバイナリーフォーマットなんて極わずか
0779nobodyさん2009/09/16(水) 09:15:42ID:???
>>774
CSVはどの辺に入るかな。
偶に使われるよね、単なる設定でも。
0780nobodyさん2009/09/16(水) 10:40:10ID:???
>>778
根拠は?

>>779
CSVは設定よりデータとして扱う事が多いかな
0781nobodyさん2009/09/16(水) 17:00:02ID:???
結局良いとこどりをしたのが
今流行っているYAMLってわけだ。

ini・・・表現力に劣る
XML・・・冗長すぎる。見にくい。
php・・・データではない。コードを入れられてしまう。
JSON・・・コメントが入れられない。

YAML・・・完璧☆
0782nobodyさん2009/09/16(水) 17:04:22ID:???
ini、XML、PHP、JSON、CSVの共通の問題点として、
データの中に改行が含まれると
見づらい

YAML・・・完璧☆ミ
0783nobodyさん2009/09/16(水) 17:17:02ID:???
>>781がFA
0784nobodyさん2009/09/16(水) 17:18:22ID:???
YAML も複数行データは面倒じゃん。
つか、YAML を採用する新規オープンソースは少ない、
というか、ほとんどなくない?
0785nobodyさん2009/09/16(水) 17:31:19ID:???
フレームワークの神、Ruby on Railsをなんと心得ておる
0786nobodyさん2009/09/16(水) 17:49:56ID:???
>>784
XMLやHTML書いていて、改行が含まれると
<a>
  <b>
    <c>
      <d>改行が
含まれたデータ
      </d>
    </c>
  </b>
</a>
ってなるってわかるよね?

YAMLだとインデントが保てる
0787nobodyさん2009/09/16(水) 18:05:04ID:???
YAMLは良いとこどりしたつもりが、中途半端になった良い例。
ケースバイケースで ini / XML / php / JSON を使い分ければいい。

YAMLの利点?無いよw
プログラム側で無理矢理YAMLをいかそうとする設計にでもしない限りな。
0788nobodyさん2009/09/16(水) 18:10:27ID:???
>>785
Rails や Symfony 以外にも
いろんな WAF あるけど、YAML 採用のほうが少ないし、
sf.net にあるのにしても、YAML 採用なんて少ないよね、ということなんだけど。
0789nobodyさん2009/09/16(水) 19:12:45ID:???
> YAMLの利点?無いよw

結局良いとこどりをしたのが
今流行っているYAMLってわけだ。

ini・・・表現力に劣る
XML・・・冗長すぎる。見にくい。
php・・・データではない。コードを入れられてしまう。
JSON・・・コメントが入れられない。

YAML・・・完璧☆
0790nobodyさん2009/09/16(水) 19:51:01ID:???
>>789
YAMLはシンプルさにかけて、冗長に書くとXMLより読みづらく、PHPのような利点も無く、JSONのようにブラウザとの親和性も無い
って事?
0791nobodyさん2009/09/16(水) 19:53:09ID:???
YAMLはシンプルで読みやすく安全でJavaScriptからでも読み込めるライブラリがあるってこと。
0792nobodyさん2009/09/16(水) 20:28:51ID:???
設定ファイルでの用途について話してたんじゃねーの?なんだよブラウザって。
■ このスレッドは過去ログ倉庫に格納されています