トップページ⇒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/
0655nobodyさん2009/09/09(水) 05:06:12ID:???
>>654
あるあるw と言いたいが、途中で気がつけよw
0656nobodyさん2009/09/09(水) 05:18:47ID:???
ローテーションして圧縮してたから、まったく気づかなかった
書庫の中身見てはじめて気づいたんだわ

写真とかアップロードするから、容量に関しては無頓着だったし
0657nobodyさん2009/09/09(水) 05:23:06ID:???
mooseのlazyみたいなのがあればいいんだけどな。
0658nobodyさん2009/09/09(水) 05:30:56ID:???
Mooseのlazyって、内部的にはどんな実装になってるの?
0659nobodyさん2009/09/09(水) 07:00:39ID:???
>>656
稼働前にdisplay_errorsオンにするなり、error_reportingなりでデバッグしないの?
活用しないログほど意味の無いものは無い。
0660nobodyさん2009/09/09(水) 08:27:51ID:???
お前らいい加減スレ違いに気付け
0661nobodyさん2009/09/09(水) 08:41:34ID:???
フレームワークに限らないPHP全般について、うだうだやるのに適切なスレはどこでしょうか。
0662nobodyさん2009/09/09(水) 09:08:54ID:???
くだ質か雑談あたりじゃね
0663nobodyさん2009/09/09(水) 17:32:08ID:???
フレームワークの設定ファイルってどんな感じがいいの?

・xmlとかでphpソースと別ファイルにする
・phpソースに定数とか連想配列で保存

0664nobodyさん2009/09/09(水) 17:34:01ID:???
どっちでも便利なほうでいいんじゃ?
0665nobodyさん2009/09/09(水) 18:14:09ID:???
>>663
YAMLいいよ、YAML
0666nobodyさん2009/09/09(水) 18:23:52ID:???
xmlよりは扱いやすいよね。
0667nobodyさん2009/09/09(水) 18:46:02ID:???
俺もYamlで別ファイル
06686632009/09/09(水) 18:55:08ID:???
YAMLですか。
勉強してきます。
0669nobodyさん2009/09/09(水) 21:36:02ID:???
そこでJSONですよ
0670nobodyさん2009/09/09(水) 23:12:42ID:???
JSON の IE 対策の最後の , が保守性低い
0671nobodyさん2009/09/09(水) 23:45:11ID:???
JSONはYAMLに比べたら人間が書きにくい。読みにくい。わかっていて言っているんだと思うけど。
以下のヤツは俺が使っている設定ファイル・・・を参考に書き直したもの。
ただのコメントが入った設定ファイルように見えるが、これがYAMLの文法なんだぜ。

# 各種プログラムのパス
bin:
 sendmail: '/usr/sbin/sendmail'
 nkf: '/usr/bin/nkf'

# テンポラリディレクトリ
tmp: '/tmp'

cache:
 # キャッシュディレクトリ
 dir: "/var/www/html/myapp/cache"

 # キャッシュの保持時間(秒)
 expires: 604800 # 1 week
0672nobodyさん2009/09/09(水) 23:47:08ID:???
YAMLの公式サイト
http://www.yaml.org/



↑YAMLで書かれていますw
0673nobodyさん2009/09/09(水) 23:52:12ID:???
そうか?YAMLだと空白とか訳分からんミスでエラーに
なったりする時があるから、JSONの方が好きなんだが。

プログラマならJSONの方が構造が直感的に分かると思うんだが。

一般人の理解しやすさは
YAML > JSON >>>>>>>>>>>>>> XML

プログラムからのいじりやすさは
JSON > YAML >>>>>>>>>>>>>> XML

という感じだと思うんだが。

あと記述する内容によって適したデータ形式があるから
プロジェクトごとに選択するしかないと思う。
0674nobodyさん2009/09/10(木) 00:02:10ID:???
俺としては一番理解しやすいのは ini なんだけど。
PHPの関数も用意されてるし
0675nobodyさん2009/09/10(木) 00:21:48ID:???
俺の場合JSも頻繁に触るから、確実に覚えているJSONの方が都合がいい
YAMLの可読性は素晴らしいとは思うけど、適度に記号入ってた方が好み
0676nobodyさん2009/09/10(木) 00:28:49ID:???
>>673
JSONにコメントないじゃん。

プログラムが受け渡すデータならJSONでいいけど、
人間が読み書きするならYAMLの方が良いよ。

あと必要ならデータ形式は変換すれば良いだけ。
0677nobodyさん2009/09/10(木) 00:31:57ID:???
あとキーが文字列なので、""で括って、"key":123としないといけないのもちょっといただけない。
0678nobodyさん2009/09/10(木) 00:43:06ID:???
単純な設定ならiniファイルかな・・・
複雑な設定ってWEBプログラムではそうそう無いと思うけど。

バリデーションルールを無理矢理YAML化してるの見ると、なんだかなぁと思う。
06796692009/09/10(木) 00:44:44ID:???
やべ俺シャレで書いたつもりだったのにマジでJSONをconfigに使う人いたんだw

YAMLは3年ほど前spycを使ってとり回そうとして挙動不審だったのでいい思い出がない。
みんなYAMLのパーサ何使ってるの?syck? spyc? preg使って自前?
その辺でおすすめあればもう一度トライしてみます。
0680nobodyさん2009/09/10(木) 01:00:39ID:???
spyc使っているけど、なんか問題ある?
なんか問題あったとして、今は修正されたんじゃない?

と思って今見てみたら、0.4.2がでてる。
パフォーマンス向上とな。入れ替えようw
0681nobodyさん2009/09/10(木) 01:21:40ID:???
データとして扱うもんならJSON使ってるなってか
フレームワークどころかPHPですらなくなってるぞ
0682nobodyさん2009/09/10(木) 08:30:09ID:???
PHPのフレームワークに詳しいみんなは、ハンバーグ作る時って
牛肉と豚肉の割合どのくらいにしてる?
0683nobodyさん2009/09/10(木) 09:09:16ID:???
俺もわけわからんエラー出たことあってphpでyaml使うのは好きじゃない
0684nobodyさん2009/09/10(木) 10:01:32ID:???
>>683
今安定してるよ
PEARのやつもあるし
0685nobodyさん2009/09/10(木) 10:16:04ID:???
syck と spyc で YAML の互換性がないのはもう直ったの?
あと、YAML ファイルがでかいと解析時間も遅いのが問題。
0686nobodyさん2009/09/10(木) 11:23:12ID:???
キャシュしないの?
0687nobodyさん2009/09/10(木) 12:08:36ID:???
iniかXMLで十分じゃね?

XMLなら内容の不備も事前に見つけられるし・・・
0688nobodyさん2009/09/10(木) 12:21:27ID:???
中身が一本のarrayでいいならserializeもいいかも。
0689nobodyさん2009/09/10(木) 13:05:12ID:???
>>686
初回の立ち上がりの遅さが気になって
0690nobodyさん2009/09/10(木) 20:08:02ID:???
YAMLの遅さが気になる場合は、
serialize/unserializeしてキャッシュするだろ?

設定ファイルなんて頻繁に変更するわけじゃあるまいし。
0691nobodyさん2009/09/10(木) 20:20:36ID:???
たかが設定ファイルのためにキャッシュ機構を組み込むほど
yamlの利便性>>>arrayなのか?という問題は難しいところ
0692nobodyさん2009/09/10(木) 20:21:35ID:???
ここで普通にPHPファイルでイイじゃんとか言ったら叩かれますかw
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/
■ このスレッドは過去ログ倉庫に格納されています