【PHP】フレームワークについて語るスレ13【総合】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/03/24(火) 01:21:08ID:???●国外産●
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/
0611nobodyさん
2009/09/07(月) 19:14:09ID:???0613nobodyさん
2009/09/07(月) 21:10:03ID:???0615nobodyさん
2009/09/07(月) 23:23:59ID:???俺も関数を短くするタイプだから、ブロックスコープはあまり必要性を感じないな。
ブロックの中が10行超えたら大抵メソッド化しちまうから特に困らん。
勿論ブロックスコープが悪いとは思わんが、初心者の学習コストを上げるほどのメリットを感じない。
0616nobodyさん
2009/09/07(月) 23:26:06ID:???0617nobodyさん
2009/09/07(月) 23:40:34ID:???0618nobodyさん
2009/09/07(月) 23:44:47ID:???とかみたいな目安の話じゃろ。わりとよく聞く話だとおもうけど
0619nobodyさん
2009/09/07(月) 23:57:18ID:???全部関数の初めでやればいいじゃん。
0620nobodyさん
2009/09/08(火) 00:02:55ID:???0621nobodyさん
2009/09/08(火) 00:06:12ID:???0622nobodyさん
2009/09/08(火) 00:08:19ID:???0624nobodyさん
2009/09/08(火) 00:23:20ID:???自分は処理毎の先頭で纏めて初期化している。
意識して関数の先頭で全て宣言する事もあるけど、
あまりメリットを感じない。
0625nobodyさん
2009/09/08(火) 00:31:02ID:???あとは全部頭で初期化してる
0626nobodyさん
2009/09/08(火) 00:33:15ID:???メソッド内のローカル変数なんて必要になったら宣言すりゃいいんじゃね
よほど長ったらしい関数とかを書くとかじゃない限り分けて宣言するメリットなくね
0627nobodyさん
2009/09/08(火) 00:33:52ID:???宣言と初期化分ければそんなに気にならないけど、あまり意味は無い気もするし。
// $hoge を使わない場合がある。
function hoge()
{
$hoge = new Hoge();
if (xxxx) return;
$hoge->hogehoge();
}
0628nobodyさん
2009/09/08(火) 00:41:51ID:???が、PHPの場合、関数の最初の方で宣言しとくのが分かりやすいと言えば分かりやすい。
が、そうすると変数名の衝突が起きやすいので、長い変数名を使わざるを得ない。よって、記述が冗長になる。
0629nobodyさん
2009/09/08(火) 00:41:55ID:???何かそんな資料を昔見たようなうる覚え
0630nobodyさん
2009/09/08(火) 00:42:18ID:???0631nobodyさん
2009/09/08(火) 00:53:55ID:???0632nobodyさん
2009/09/08(火) 00:57:15ID:???0633nobodyさん
2009/09/08(火) 01:19:29ID:???0634nobodyさん
2009/09/08(火) 01:27:39ID:???0635nobodyさん
2009/09/08(火) 01:28:50ID:???0636nobodyさん
2009/09/08(火) 08:10:48ID:???0637nobodyさん
2009/09/08(火) 08:46:05ID:???全く関係ない話題で埋め尽くされてることが多いよな。
相応しいスレはいくらでもあるんだから、そっちでやれや。
0638nobodyさん
2009/09/08(火) 08:57:46ID:???0639nobodyさん
2009/09/08(火) 11:39:27ID:???>スコープが関数単位なのって、PHPとJavaScriptぐらいなものなんだ。?x2028;ダウト。
変数宣言のない言語はたいてい関数スコープ。PythonもRubyもそう。
0640578
2009/09/08(火) 12:25:14ID:???・・・まぁ、この流れはある程度想定の範囲内。
フツー、「んなもんスクラッチで書けよ」って思うよなw
>>587
相手についての考察は大体そのとおり。だからpear使いたくなかったんよ。
レンタルチャットでは多分無理。少なくともかなりのカスタマイズしないといけないんで、結局手間はあんまり変わらないと思われ。
>>588
これは知らなかった。ORマッパ無しというのもいいかも。
少し調べてみるっす。感謝>fitzgerald
エスケープ/サニタイズは、まぁPHPは結構便利な関数があるからそんなに面倒ではないんだけどね。
ま、>>578のとおり、そんなにがっちり組む必要もないんだし、
>大体バリデーションつっても、入力文字の<>&あたり置換すりゃ早々問題なんて起きんだろうし
>ログだってファイルにはいていいんじゃね、小一時間もありゃ書けるでしょ
でいいっちゃいいと思うんだがね。
>>590
あることぁあるが、PHP4の時代のヤツなんでねぇw>俺俺ライブラリ
ま、正規表現は確かに苦手だ。eregとpregでビミョーに違うのもややこしいしw
0642nobodyさん
2009/09/08(火) 18:43:17ID:???0644nobodyさん
2009/09/08(火) 19:41:42ID:???0645nobodyさん
2009/09/08(火) 19:42:43ID:???0646645
2009/09/08(火) 19:44:11ID:???0649nobodyさん
2009/09/09(水) 04:07:50ID:???バグの温床じゃん
0650nobodyさん
2009/09/09(水) 04:39:08ID:???A処理、B処理、C処理を連続して順番に処理する事を保証する場合、
内部的にメソッドを分けたとしても、PGに提供するメソッドは一つにするのが普通だろ。
その場合、途中の処理でこけた場合、どの処理でこけたかを判断する為に、return もしくは throw 等を使う。
それをしない方がバグの温床になると思うんだが・・・
0651nobodyさん
2009/09/09(水) 04:49:10ID:???0652nobodyさん
2009/09/09(水) 04:55:14ID:???0653nobodyさん
2009/09/09(水) 05:02:31ID:???クラスの宣言ってのは、通常 class Hoge {} な構文を指す言葉だから誤用しないようにね。
0654nobodyさん
2009/09/09(水) 05:02:56ID:???1ヶ月でログが20GB超えてたときは流石に吹いたわ
0656nobodyさん
2009/09/09(水) 05:18:47ID:???書庫の中身見てはじめて気づいたんだわ
写真とかアップロードするから、容量に関しては無頓着だったし
0657nobodyさん
2009/09/09(水) 05:23:06ID:???0658nobodyさん
2009/09/09(水) 05:30:56ID:???0659nobodyさん
2009/09/09(水) 07:00:39ID:???稼働前にdisplay_errorsオンにするなり、error_reportingなりでデバッグしないの?
活用しないログほど意味の無いものは無い。
0660nobodyさん
2009/09/09(水) 08:27:51ID:???0661nobodyさん
2009/09/09(水) 08:41:34ID:???0662nobodyさん
2009/09/09(水) 09:08:54ID:???0663nobodyさん
2009/09/09(水) 17:32:08ID:???・xmlとかでphpソースと別ファイルにする
・phpソースに定数とか連想配列で保存
0664nobodyさん
2009/09/09(水) 17:34:01ID:???0666nobodyさん
2009/09/09(水) 18:23:52ID:???0667nobodyさん
2009/09/09(水) 18:46:02ID:???0668663
2009/09/09(水) 18:55:08ID:???勉強してきます。
0669nobodyさん
2009/09/09(水) 21:36:02ID:???0670nobodyさん
2009/09/09(水) 23:12:42ID:???0671nobodyさん
2009/09/09(水) 23:45:11ID:???以下のヤツは俺が使っている設定ファイル・・・を参考に書き直したもの。
ただのコメントが入った設定ファイルように見えるが、これが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:???http://www.yaml.org/
↑YAMLで書かれていますw
0673nobodyさん
2009/09/09(水) 23:52:12ID:???なったりする時があるから、JSONの方が好きなんだが。
プログラマならJSONの方が構造が直感的に分かると思うんだが。
一般人の理解しやすさは
YAML > JSON >>>>>>>>>>>>>> XML
プログラムからのいじりやすさは
JSON > YAML >>>>>>>>>>>>>> XML
という感じだと思うんだが。
あと記述する内容によって適したデータ形式があるから
プロジェクトごとに選択するしかないと思う。
0674nobodyさん
2009/09/10(木) 00:02:10ID:???PHPの関数も用意されてるし
0675nobodyさん
2009/09/10(木) 00:21:48ID:???YAMLの可読性は素晴らしいとは思うけど、適度に記号入ってた方が好み
0676nobodyさん
2009/09/10(木) 00:28:49ID:???JSONにコメントないじゃん。
プログラムが受け渡すデータならJSONでいいけど、
人間が読み書きするならYAMLの方が良いよ。
あと必要ならデータ形式は変換すれば良いだけ。
0677nobodyさん
2009/09/10(木) 00:31:57ID:???0678nobodyさん
2009/09/10(木) 00:43:06ID:???複雑な設定ってWEBプログラムではそうそう無いと思うけど。
バリデーションルールを無理矢理YAML化してるの見ると、なんだかなぁと思う。
0679669
2009/09/10(木) 00:44:44ID:???YAMLは3年ほど前spycを使ってとり回そうとして挙動不審だったのでいい思い出がない。
みんなYAMLのパーサ何使ってるの?syck? spyc? preg使って自前?
その辺でおすすめあればもう一度トライしてみます。
0680nobodyさん
2009/09/10(木) 01:00:39ID:???なんか問題あったとして、今は修正されたんじゃない?
と思って今見てみたら、0.4.2がでてる。
パフォーマンス向上とな。入れ替えようw
0681nobodyさん
2009/09/10(木) 01:21:40ID:???フレームワークどころかPHPですらなくなってるぞ
0682nobodyさん
2009/09/10(木) 08:30:09ID:???牛肉と豚肉の割合どのくらいにしてる?
0683nobodyさん
2009/09/10(木) 09:09:16ID:???0685nobodyさん
2009/09/10(木) 10:16:04ID:???あと、YAML ファイルがでかいと解析時間も遅いのが問題。
0686nobodyさん
2009/09/10(木) 11:23:12ID:???0687nobodyさん
2009/09/10(木) 12:08:36ID:???XMLなら内容の不備も事前に見つけられるし・・・
0688nobodyさん
2009/09/10(木) 12:21:27ID:???0690nobodyさん
2009/09/10(木) 20:08:02ID:???serialize/unserializeしてキャッシュするだろ?
設定ファイルなんて頻繁に変更するわけじゃあるまいし。
0691nobodyさん
2009/09/10(木) 20:20:36ID:???yamlの利便性>>>arrayなのか?という問題は難しいところ
0692nobodyさん
2009/09/10(木) 20:21:35ID:???0694nobodyさん
2009/09/10(木) 20:59:40ID:???0695nobodyさん
2009/09/10(木) 21:04:31ID:???そこにphpコードも書けないと不便だよね
そういうことを考えていくと余計に面倒になってくる
フレームワークに元々実装してあるなら使うけど
0696nobodyさん
2009/09/10(木) 21:25:53ID:???iniはシンプルかつ、一般的。
XMLは複雑だが、Flash等と親和性がある(扱えるデザイナが多い/開発環境も多い)
JSONはJSとの親和性がある
YAMLは学習及び実装コストに見合うメリットはあるのだろうか?
ミーハーな感じがするわ。
0697nobodyさん
2009/09/10(木) 21:35:20ID:???0698nobodyさん
2009/09/10(木) 21:42:33ID:???そんなもん一時間かそこらだろうが。試すだけ試してみりゃいいじゃん。
0699nobodyさん
2009/09/10(木) 22:21:24ID:???0700nobodyさん
2009/09/10(木) 22:34:09ID:???意図しない半角スペースが入っていても値としては正常なモノとして扱われるのが厄介すぎる。
>>698
パーサからの実装を1時間そこらで出来るわけないだろw
0701nobodyさん
2009/09/10(木) 22:38:25ID:???0702nobodyさん
2009/09/10(木) 22:38:41ID:???iniはセクションがどうとか、データの階層構造で
複雑なものが作れないんだわ。
YAMLだと自分が思ったままの理想のデータ構造そのまま定義できる。
楽なんだよ。
>>699
array( array( array( 地獄から抜け出せるぜw
0703nobodyさん
2009/09/10(木) 22:46:53ID:???[]とかで表記できたらいいのに
5.3もおもしろ機能ばっかり付けないでそういうの付けろ
0706nobodyさん
2009/09/10(木) 23:08:51ID:???じゃあ検証すりゃいいじゃん
少なくとも自分で書くよりは速いぜ
0708nobodyさん
2009/09/10(木) 23:28:45ID:???もちろん他人の作った飯なんて、米なんてのも食べられないんですよね?
0710nobodyさん
2009/09/10(木) 23:45:09ID:???■ このスレッドは過去ログ倉庫に格納されています