トップページphp
989コメント277KB

【PHP】PHPフレームワーク総合スレ15

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/12/12(日) 10:47: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
 ttp://www.yiiframework.com/

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

●前スレ
【PHP】PHPフレームワーク総合スレ14
http://hibari.2ch.net/test/read.cgi/php/1253912143/
0687nobodyさん2012/10/15(月) 10:05:51.72ID:???
あー、あの第64代横綱ね
0688nobodyさん2012/10/15(月) 11:43:45.53ID:0/gKp0mh
>>685

それはかのか

>>687

それは曙
0689nobodyさん2012/10/15(月) 14:00:44.00ID:???
チンパンジーってZFの影響を受けてるとみた。
ってか、焼き直しっぽい感じがした。
0690nobodyさん2012/10/18(木) 23:59:30.29ID:???
国産のFWってのは魅力だけど、これから新しい物作るんなら
少なくとも英語には対応したサイトで間口を広げないと
コミュニティの広がりに関してはなかなか難しいよな気がする。
なんだかんだ言っても英語を使うと新しいつながりが半端ないし、
やっぱりインターネットって米軍のお下がりだしな。
0691nobodyさん2012/10/19(金) 22:12:39.78ID:???
少なくとも新しいPHPFWはもうちょっと無理がある気がする
いっぱいある古参系のを使い続けるか、Yiiだとかそのあたりの
比較的あたらしめの奴を覚えて乗り換えるかのどっちかじゃね

俺々フレームワークに毛が生えたようなだけの小規模系FWだと、
需要が限りなく0なので覚える時間が無駄になる可能性が高すぎるんだもの…
0692nobodyさん2012/10/20(土) 16:35:20.96ID:???
小規模すぎると、覚えた途端に開発終了もあり得るしな
0693nobodyさん2012/10/20(土) 18:03:44.43ID:???
で、別人たちの改造版に分裂
0694nobodyさん2012/10/21(日) 19:41:06.47ID:???
おっと、CodeIgniterの悪口はそこまでだ
本家もまったり続いてるけどな
0695nobodyさん2012/10/28(日) 06:12:40.22ID:???
もうどのFWも単なる言語拡張積み上げてるだけな気がしてきた
正直MVCすら要らん、MVCの思想は凄いけど形だけあっても無意味なような。

symfonyの1だけはちゃんと思想が脈打ってて感動した。2は何であんなことになったのだろう
0696nobodyさん2012/10/28(日) 18:13:20.92ID:???
symfonyのアレを思想というのか。
それほど崇高な印象はないなぁ。
0697nobodyさん2012/10/29(月) 17:25:12.76ID:???
開発ブログを読む限り、BEAR.Sundayは良いかも知れない。
完成すれば、既存のFWの対抗軸になりうる予感。
0698nobodyさん2012/10/30(火) 21:39:35.43ID:???
laravelがよさそう
fuelphp流行ってるのは日本だけだし
yiiかlaravelに乗り換えたい
0699nobodyさん2012/10/31(水) 06:20:49.70ID:???
fuelも別に流行ってないけどな
0700nobodyさん2012/11/01(木) 02:26:55.54ID:???
最近はCakeの情報が少し充実してきたのかな?
0701nobodyさん2012/11/01(木) 08:51:39.45ID:???
cake2の情報が少ないし
見つかるプラグインは1用ばっか
0702nobodyさん2012/11/01(木) 14:27:44.18ID:???
PHPの開発自体減ってるのかな?記事関係はRubyばっかりだ。
だが、新サイトで見るのは大体PHPだけど
0703nobodyさん2012/11/02(金) 13:15:13.76ID:???
特に最近は、自分から発信する開発者がRubyのほうが多い感じを受ける。
言語としての優位性の比較はともかく、その点ではRubyはいいかもね。
0704nobodyさん2012/11/03(土) 12:55:57.43ID:???
>>703
情報発信者が多いのは結構だけどなぁ・・・
rubyってバッドノウハウ多くね?
0705nobodyさん2012/11/03(土) 12:56:44.68ID:???
っと、PHPスレで他言語disっちゃいかんな。ごめんよ
0706nobodyさん2012/11/03(土) 19:11:23.15ID:???
PHPをdisれ
0707nobodyさん2012/11/03(土) 19:30:35.09ID:???
バッドノウハウの多さを競うならPHPだって負けてないぞ
0708nobodyさん2012/11/26(月) 17:41:16.91ID:???
yiiとCodeIguniter迷いすぎる
0709nobodyさん2012/11/26(月) 21:56:27.66ID:???
CodeIguniterでいんじゃね?
0710712012/11/27(火) 13:31:53.86ID:???
スペルが違うんじゃね?
0711nobodyさん2012/11/27(火) 18:38:02.57ID:???
CodeInuguier
0712nobodyさん2012/11/27(火) 22:58:25.65ID:???
Wii
0713nobodyさん2012/12/21(金) 22:59:39.63ID:???
ASP.net 2人かかる仕事は
PHP 3人
RUBY 4人
JAVA 5人

機能を追加時の増員の必要割合

ASP.net 開発者 小 デバッカー 小
PHP 開発者 中 デバッカー 大
RUBY 開発者 中 デバッカー 大
JAVA 開発者 大 デバッカー 中

動的言語やLAMPはバットノウハウなのは確か
まねするとコストばかりかかり 雪達だるま式にデバッグやらコード修正が増えていき
苦労することになる
大手しか開発できないような仕組まれてる ガラパコス利権
0714nobodyさん2012/12/22(土) 12:25:06.36ID:???
デバッカー
バットノウハウ
雪達だるま

コード修正が必要なのはお前だ
0715nobodyさん2012/12/22(土) 22:40:10.26ID:???
ガラパコスについては大目に見てやろう
0716nobodyさん2013/01/05(土) 15:30:52.70ID:???
アプリ起業iPhoneC#まとめ Ver 1.5
http://tinyurl. com/9w97424
0717nobodyさん2013/01/05(土) 23:00:05.00ID:???
ブラクラ
0718nobodyさん2013/01/18(金) 13:39:36.56ID:???
もしブラクラだったら警察に通報して逮捕になるから別にいい
0719nobodyさん2013/01/26(土) 04:49:54.75ID:???
綺麗なサンプルphpコードを一つ見本にして全員で真似するのが
一番開発もメンテも楽な(メタ的な)フレームワーク
0720nobodyさん2013/01/26(土) 07:23:14.58ID:???
その作業工程は、延焼していく炎を思わせるため、flameworkと呼ばれる[3][4]。
0721nobodyさん2013/06/20(木) 23:35:41.10ID:NY+i8nF6
こんなのあるみたいよ。

---------------------------------------------------------
CodeIgniter Talk #01 2013/06/22 (土) 14:30 - 17:30 @ 渋谷
http://codeigniter-talk.doorkeeper.jp/events/4062
0722nobodyさん2013/07/05(金) NY:AN:NY.ANID:???
714と715、面白いな。
0723nobodyさん2013/07/08(月) NY:AN:NY.ANID:JFWVTYwY
>>720
flameworkって普通にある単語なんだが
0724nobodyさん2013/07/08(月) NY:AN:NY.ANID:???
>>723
その普通のflameworkの意味をちょっと説明してみてよ
0725nobodyさん2013/07/08(月) NY:AN:NY.ANID:???
flamework (三人称単数 現在形 flameworks, 現在分詞 flameworking, 過去形および過去分詞形 flameworked)

To lampwork.

んで、
lampwork (uncountable)

(glassblowing) A method for working with blown glass that does not require a furnace.
(glassblowing) Glass pieces made by this method.
(glassblowing) The activity of producing glass pieces using this method.
0726nobodyさん2013/07/08(月) NY:AN:NY.ANID:CcFF0+Dd
普通にスレチ(´ω`)
0727nobodyさん2013/07/08(月) NY:AN:NY.ANID:???
普通に使われてることの証明になってない
0728nobodyさん2013/07/08(月) NY:AN:NY.ANID:???
>>727
辞書をひくことすらできないお馬鹿さん、乙
0729nobodyさん2013/07/08(月) NY:AN:NY.ANID:???
ウィクショナリーが辞書だと思い込んでるゴミ乙
0730nobodyさん2013/07/25(木) NY:AN:NY.ANID:???
PHPのフレームワークって、よく名前が出るものだけでも
いくつもあるから、いまいち何使っていいかわからん。
適当に選んで、使って試して、だんだんわかっていくしかないのか・・・

しばらく前にZendでやってみたものの、利点も欠点もなにも、
これといった印象なかったし、違いのわかる男にはなれそうにないぜw
0731nobodyさん2013/07/25(木) NY:AN:NY.ANID:???
>>730
俺もそう。何使っていいかわからん。

ただ、規約に縛られるフレームワークは嫌。
規約を知らないと摩訶不思議な動作をするように見えるから。

規約なんて、開発完了しちゃえば直ぐ忘れてしまうもの。
規約を忘れた1年後の自分は、そのコードをメンテできそうもない。
0732nobodyさん2013/07/25(木) NY:AN:NY.ANID:???
規約に縛られないフレームワークでは
自分で規約を作るだけ。

結局、規約に従ってプログラムするのは当たり前。


でなければ、行き当たりばったりの開発をするかだ。
こっちはもっと最悪。
何も決まっていない、似ている処理なのに
規約がないから、微妙に違ったコードになってる。
開発をするたびに、コードを読まないとわからない。
忘れる以前に覚えられない。
0733nobodyさん2013/07/26(金) NY:AN:NY.ANID:???
>>730
> しばらく前にZendでやってみたものの、利点も欠点もなにも、
> これといった印象なかったし

アーキテクチャってものを知っているか?
設計のことだが、どちらかと言えばコードレベルの設計の話。
アーキテクチャを知らなければ、フレームワークを見ても
単にいろんなライブラリがあるようにしか見えない。

アーキテクチャを知っていれば全体がひとつの塊として
考えられて作られていると理解できるようになる。
どう作っていいかがわかってくる。

経験を積めば、コードを見るだけで
あぁ。こうしろってことねと意図がわかる。
そうなると、ここにこの機能があるはずと推測できるようになる。

つまり君はまだアーキテクチャを知らんのだ。動けばそこで終わりという開発をしてるだろう?
単にフレームワークを使うのではなく、フレームワークをどのように使ったら
効率がいいかを考えながら作れば、アーキテクチャを理解できるようになる。
0734nobodyさん2013/07/26(金) NY:AN:NY.ANID:WG0iVkUb
コードレベルって書くとむしろ1〜数行レベルの話しに聞こえちゃう
0735nobodyさん2013/07/26(金) NY:AN:NY.ANID:???
733は随分上から目線だけど、そんなヤツに限ってデキないんだよな。
これは俺の回りの現場の人間を見ての経験則だけどね。


アーキテクチャって言葉を知りはじめて、使ってみたいのかな。
0736nobodyさん2013/07/26(金) NY:AN:NY.ANID:???
>>732
俺の言う規約というのは、例えば、CakePHPの場合、

DBのテーブルに created_at というフィールドがあれば自動的に
値が書き込まれる・・・

ということ。

これらは、自分が書いたコードを追うだけでは挙動を理解でき
ず、CakePHPを知っていないとダメなんだよね。

規約に縛られるフレームワークは、規約により自動化されることが
多いのでコードを書く量が減り開発が速いけど、規約を忘れたときの
メンテが大変、という感じがします。

慣れてしまえば心配無用なのかな?
0737nobodyさん2013/07/26(金) NY:AN:NY.ANID:???
規約が紳士協定レベルじゃなくて制限として存在してくれれば
困ることはないんだけどな
0738nobodyさん2013/07/26(金) NY:AN:NY.ANID:???
>>736
created_at は ROR
CakePHPは created
0739nobodyさん2013/07/26(金) NY:AN:NY.ANID:???
>>736
もしそういう規約がなかったらで考えよう。

日付が格納されるフィールド名はバラバラ
ある所はcreated_atだったり、ある所はcreatedだったり
ある所はcreate_dateだったり。

そうならないときに「コーディング規約で決める」というふうにやっぱり規約が出てくる。
規約を忘れたら、バラバラのフィールド名になる。
規約を思い返すのならCakePHPの規約を思い出せるだろう。

フィールド名がバラバラなだけではなく、あるところは
日時なのにあるところは日付だけだったり、コードを読めばわかるだろうが、
フィールド名を見ただけでわからず、該当フィールドに格納しているコードを
一つ一つ読まないと確証が得られない。

規約を忘れたらというが、規約を忘れるような人は手作業で書いたコードも忘れる。
コードを読み返す時間があるのなら、CakePHPの規約を読んだほうが早い。

忘れた時にメンテが大変なのはどっち? コードを読むのが苦痛じゃないから
実際に時間がかかってるはコードを読む方なのに楽だと勘違いしているだけ。
0740nobodyさん2013/07/26(金) NY:AN:NY.ANID:???
コピペしたほうが早い。
forループはfor文を忘れた時にメンテナンスが大変。


結局はこう言ってるのと同じ。
0741nobodyさん2013/07/27(土) NY:AN:NY.ANID:???
はい?
0742nobodyさん2013/07/27(土) NY:AN:NY.ANID:???
>>733
ダラダラ書いてるが1〜数行レベルで済むレベルの話
0743nobodyさん2013/07/27(土) NY:AN:NY.ANID:???
>>742
じゃあ一〜数行でかけよw
0744nobodyさん2013/07/29(月) NY:AN:NY.ANID:???
規約違反はエラーになるPHP用文法チェッカがほしい
って探せばありそうだな
0745nobodyさん2013/07/29(月) NY:AN:NY.ANID:???
つ codesniffer
0746nobodyさん2013/07/30(火) NY:AN:NY.ANID:???
>>745
こんなのがあるんだ
これってCake用っぽいけど、オレフレームワークでも使えるかな
ちょっと試すか
0747nobodyさん2013/07/30(火) NY:AN:NY.ANID:???
全然Cake専用とかじゃなかった。 これ便利そう!ありがとう!
0748nobodyさん2013/07/30(火) NY:AN:NY.ANID:???
え?なに? なんか知らないけど、どういたしまして!
0749nobodyさん2013/07/31(水) NY:AN:NY.ANID:1ypj5657
とりあえず初心者は何やれば良いの?
0750nobodyさん2013/08/01(木) NY:AN:NY.ANID:???
初心者なら、一度でいいからフレームワークを使わずに作る
で、「あれができたらいいな」とか「これを簡略化したい」などを
まとめ、それから、それらを実現できそうなフレームワークを探す
0751nobodyさん2013/08/02(金) NY:AN:NY.ANID:???
PHP初心者じゃなくてFW初心者ってことなら
とりあえず情報量の多いCakePHPからやるのが無難だろうな。
まわりに詳しい人がいたらその人が使ってるFWでも良いと思う。
0752nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
地力の無い奴がフレームワークに手を出すと大抵コードが腐る。

まず大半の初級者は Model = DBテーブル と刷り込まれて、
正しいMVC分けが出来なくなり、Controllerが糞みたいに肥大化する。

普通に考えれば、別途ライブラリ(真の意味でモデルに該当するモノ)を構築すれば良いのだが、
それが出来ない。全部コントローラに記述しちゃう。

また大半のフレームワークではメソッドやコントローラアクションに関する粒度が規定されていない為、
1メソッドが糞みたいに長かったり、1コントローラに全ロジックが書かれたりする。

素人は一度は自作FWを作る経験をすべき。
0753nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
一度でいいけどな

モデルを理解したうえであらためてCake使うと
「ファーーーwwww よう考えられとんねーー」
と思うこと請け合い
0754nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
え?
cakeがよく考えられてることとはネタですか
0755nobodyさん2013/08/07(水) NY:AN:NY.ANID:???
笑ってるから、馬鹿にしてるんでしょ
実際は笑えないことが多いんだけど
0756nobodyさん2013/08/08(木) NY:AN:NY.ANID:???
cake激安レンタル鯖に入れたら重すぎて使う気起きなかったよw
0757nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
cakeなんか使うからw
0758nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
で、何がお勧めなの?
出来ればそれを選ぶメリットも一緒に
0759nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
ケースバイケースとしか言いようが無い。
FWのせいで効率が落ちる&保守性が落ちるのは本末転倒なので好きなの選べばいい。
Cakeは開発グダグダだし、独自方言大杉で他FWに移行し辛いし、一緒に心中する覚悟が必要かな


最近だとIDEとの親和性も大事だね
0760nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
fuelPHPとか最近よく聞くけどどうなんだろう
0761nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
FuelPHP
CodeIgniter のライセンスの問題で話題になっただけで、
他と比べて特別何か優れてるわけでは無い
0762nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
>IDEとの親和性も大事だね

俺もそう思う。
0763nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
もうこれほとんど生PHPだろ・・・ 超便利だけど・・・

というようなフレームワークってある?
0764nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
文句は出るがお勧めはないってのがさすがphp
0765nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
>>763
生PHP=独自設定ファイルが不要という意味ならば、
Zendとかじゃね?フレームワークとしては微妙だけど、ライブラリとしてはまぁまぁ便利

>>764
どのFWも一長一短な上、無駄に種類が多いからね・・・・・・
0766nobodyさん2013/08/09(金) NY:AN:NY.ANID:???
slimオススメ
0767nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
>>759 >>762
IDEと親和性が高いフレームワークでオススメってある?

phpStorm使い始めたんだけど、コード補完が効かないと耐えられない体になってしまったよ
0768nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
俺も知りたい。
VisualStudioでアプリ作ってると、コード補完が効かないのは耐えられない。
0769nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
CakePHPはプラグインあるよ
他もあると思うけど使わないから知らない
0770nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
NetBeansにCakeのプラグインあって入れたけど
結局素のPHPの部分しか、解釈してくれないようだ
コンポーネントの関数とかまで見つけてサジェストしてくれたら、最高なんだが
0771nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
ウェブ系って静的解析が難しい言語ばかりだからね。

実際に実行される直前になるまで
変数に入っている型がわからないなら
補完できなくて当然なわけで。
0772nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
>>771
>実際に実行される直前になるまで
>変数に入っている型がわからないなら
>補完できなくて当然なわけで。

そう思っていた時期が俺にもありました。
が、最近のIDEはコードとコードコメントから中身を推察して、凄い精度で補完してくれるんだよ。

ただし、マジックメソッドを多用してたり、PHPコードでは無く文字列や設定ファイルを多用してると、流石に無理でCakeは相性が悪い。
0773nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
コメントから中身を推察ってすげえな。本当にできるの?
0774nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
// たぶん動くと思う
0775nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
>>773
出来るどころか、その逆、コードを解析してコメント入力の補完までしてくれるよ。
以下のメソッドがあるとする。

function getHoge($a = 1) {
return new Hoge($a)
}

1. コードから型を推察する

$a = getHoge(); // $a はHogeインスタンスとして認識される
 $a->xxxxx; // $a-> と入力すると xxxxx が補完される

2. コードからコメントを補完

/** と打つと、以下のコメントひな形を自動入力してくれる。
 この @return にメソッドが返すべき型を指定すると、IDEはそれを認識する。
 (@returnが無くても上記のコード推察機能は動く)

/**
* @param int $a
* @return Hoge
*/
function getHoge($a = 1)
0776nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
言語の欠陥をコメントで補ってる系
0777nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
>>776
アノテーションってご存じですか?
0778nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
間違いなく言語の欠陥
0779nobodyさん2013/08/10(土) NY:AN:NY.ANID:???
型付けが無いメリットとデメリットのうち、デメリットだけをアノテーションで解決出来るとかどこの神言語だよ
0780nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
変数の型をコメントで指定するぐらいなら、
普通に変数に型を書いたほうが
見やすいと思うよw
0781nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
Bare Sunday なんかはフレームワークそのものを
アノテーションで駆動させてますよ
0782nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
あ、 Bear Sunday の間違いだった
0783nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
DRYの原則からすると、


/**
* @param int $a
* @return Hoge
*/
function getHoge($a = 1)

$aを二回書くのは無駄でしか無いね。
もっと言えば@paramも無駄だし@returnも無駄。

こんな感じでコメントを書く場所が厳密に決まっていて
同じ事を二回書かなくて済む言語出来ないかねぇ。

// 関数と戻り値のコメントを書く。
function Hoge getHoge(
 int value, // ここに引数のコメントを書く
 string str, // ここに引数のコメントを書く
) {
・・・
}

valueが@paramなのは自明だし型も自明
0784nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
アノテーションがどういう物か判ってて書いてるんだろか
DRYが何か判ってて書いてるんだろか

読んでるこっちが恥ずかしくなるわ
0785nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
そう言葉を残すだけで
反論はできないのであった

完でいい?
0786nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
>>780
変数に対する型指定アノテーションも存在するよ
厳密に型指定したいならPHP以外を使えば良いんじゃね?

>>783
コメントは別に「型」を記載する為だけのものじゃないからね。
あと、君が上げてるサンプルは長文になった時、確実に可読性が確実に落ちると思うんだがw

>コメントを書く場所が厳密に決まっていて
うん。それがphpdocだ。
C〜C#、Javaあたりのソース読んでみ同じような事してるよ
0787nobodyさん2013/08/11(日) NY:AN:NY.ANID:???
> あと、君が上げてるサンプルは長文になった時、確実に可読性が確実に落ちると思うんだがw

長文になる時は別の書き方を用意すればいいだけの話。

// 関数と戻り値のコメントを書く。
// [*1] : 長いコメント
// [*2] : 長いコメント
function Hoge getHoge(
 int value, // 短いコメント [*1]
 string str, // 短いコメント [*2]
) {
・・・
}

重要なのは、コードを変更した時、同じ事を二度やらなければいけないということ。
コードとドキュメントの整合性が取れなくなるのは、これが理由。
■ このスレッドは過去ログ倉庫に格納されています