【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/
0577549
2009/09/06(日) 02:19:24ID:???> 既存のDBアクセス周りをラップするクラスを作ればいいんじゃね?
DBの結果セットをmemcachedに移行するというアプローチは、
自分でやった時はうまくいかなかったなあ。
結局、ご指摘の通りにオンメモリにして逃げちゃった。
なので、簡単に後付けで移行出来る方法があるなら良いなぁと思ったし、
無いんでないかなーと>>549で言っちゃった。
>>573-576
東京なんちゃら対応のなんちゃらモジュールがCakePHPで動くらしいね。
Cakeはよくよく調べてみるとみんなで結構何とかしちゃってる感がある。
0578nobodyさん
2009/09/06(日) 16:08:50ID:55qWNNESPerlは正直「使える」程度なんでPHPにしようと思うんだが、Pearを使わないでファイルコピーで設置完了することが可能なFWってあるかな?
一応SymfonyはSandbox使えば可能なのは知ってるが、流石に少々重たいかと思ってね。
・・・ま、「チャットごとき素のPHPで書けよ」ってのは御説ごもっともなんだがw、
どうもバリデータやHTML/SQLサニタイズを手で書くのは億劫になってね。
FWに慣れすぎたかもw
0579nobodyさん
2009/09/06(日) 16:39:56ID:???0580nobodyさん
2009/09/06(日) 16:53:37ID:???0582nobodyさん
2009/09/06(日) 17:02:52ID:???smarty(笑)
0583nobodyさん
2009/09/06(日) 17:13:23ID:???0585nobodyさん
2009/09/06(日) 17:53:04ID:???0586nobodyさん
2009/09/06(日) 17:53:38ID:???0587nobodyさん
2009/09/06(日) 20:33:41ID:???全部1クラスにまとめたようなレトロな作りにしても十分じゃね
FTPでアップロードして権限振ったらすぐ使えます、のほうがいいような相手なんでしょ
大体バリデーションつっても、入力文字の<>&あたり置換すりゃ早々問題なんて起きんだろうし
ログだってファイルにはいていいんじゃね、小一時間もありゃ書けるでしょ
つか、578の場合レンタルでも探したほうがいいんじゃねw
そっちのほうが間違いなく多機能で安全で優れてるとおもうぞ
0588nobodyさん
2009/09/06(日) 20:54:55ID:???fitzgerald。本体が269行しかない。
ttp://www.moongift.jp/2009/06/fitzgerald/
バリデータは存在しないので自分で書かんといけないが。
一番面倒な、入力を一括してフィルタリングする機構はあるのでさほどの手間はない。
あと、エスケープ/サニタイズが面倒なのはお前が阿呆なだけ。
面倒ならエスケープしてからビューに渡す関数とか作れよ。
0589nobodyさん
2009/09/06(日) 21:47:35ID:???0590nobodyさん
2009/09/06(日) 22:56:49ID:???FWに慣れたっつーより、FWが無ければ何も出来ないの間違いじゃね?
正規表現とかもかけないんじゃね?w
0591nobodyさん
2009/09/06(日) 23:09:44ID:???おめーも大差ないですよっと
0592nobodyさん
2009/09/06(日) 23:30:43ID:???0593nobodyさん
2009/09/06(日) 23:52:14ID:???0594nobodyさん
2009/09/06(日) 23:58:14ID:???0595nobodyさん
2009/09/07(月) 00:25:40ID:???0596nobodyさん
2009/09/07(月) 00:36:51ID:???0597nobodyさん
2009/09/07(月) 02:36:55ID:???PHPかどうかは関係無いし、PHPにも職人クラスのPGはいる。
ただ勘違いした「シロートさん」比率が、他の言語より圧倒的に多いww
0598nobodyさん
2009/09/07(月) 03:31:50ID:???0599nobodyさん
2009/09/07(月) 03:46:45ID:???0600nobodyさん
2009/09/07(月) 04:43:15ID:???で、上達するに連れ、言語仕様に不満が出てくる。
そして、他の言語へ移る。
Web用言語の登竜門みたいなもんだから、仕方ないべ。
今更Perlから入る人も少ないでしょうし。
グローバル関数をクラスライブラリ化して、型宣言もアリにして、
OO言語に生まれかわらんかな。
既存のグローバル関数で発生したエラーを例外処理化したライブラリはないかな?
0601nobodyさん
2009/09/07(月) 05:04:58ID:???登竜門としては Perl/CGI の方が良いと思うけどなぁ。
PHPから始めた人て、HTTP通信のバックエンドや、文字コードを理解して無い人が多いよね
multipartなPOSTデータをパースしたり、URLエンコード/デコードしたり、クッキーやセッションの仕組みを理解してなかったり、etc
バグが発生した時に、原因の切り分けが出来なくて困ってる人をよく見る。
0602nobodyさん
2009/09/07(月) 05:20:04ID:???俺はPHPからだったけどWebカメラいじりたくてソケットから弄りだした
まぁその前がC/C++だったから、文字列の扱いが超簡単で楽だったなぁ
0603nobodyさん
2009/09/07(月) 06:41:11ID:???0605nobodyさん
2009/09/07(月) 10:53:21ID:???0606nobodyさん
2009/09/07(月) 11:26:17ID:???確かにできたほうがいいけど、関数をあまり巨大化させなければそれほど問題にならないのでは?
PHPのだめな所はもっと他にあるだろ
0607nobodyさん
2009/09/07(月) 11:34:03ID:???ないかな、603は。
PHPだとそれらを別ファイル分けて書いて見通しだけは良くしても、結局includeだから同一ソース
ファイルに全部放り込んでるのと変わらん、データの独立性が…とか言いたいのかも。
まあ、クラス使えばいいと思うけど、そういうのは。
0608nobodyさん
2009/09/07(月) 11:42:30ID:???0609nobodyさん
2009/09/07(月) 12:08:07ID:???つまり糞がかけば糞になる程度がやや大きい。
その程度の話なんだが言語やOSの話になると痛いのがわんさか沸いてくる。
0610nobodyさん
2009/09/07(月) 18:10:57ID:???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の方が良いよ。
あと必要ならデータ形式は変換すれば良いだけ。
■ このスレッドは過去ログ倉庫に格納されています