トップページ⇒php
1001コメント282KB

【PHP】フレームワークについて語るスレ10【総合】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/08/24(日) 21:43:37ID:???
前スレ
http://pc11.2ch.net/test/read.cgi/php/1202521438/
0079nobodyさん2008/08/31(日) 18:59:51ID:???
>>75
>>78の言うように
まず既存のフレームワークを利用してみて、長所や短所を理解してから、
自分(とその周り)が使うに当たって必要な構造としてどうなってると使いやすいか考えて
設計しなきゃいけないんでない?

CIスレとかCakeスレで出てる疑問とかそこらのブログで出てるような疑問とかも割りと参考になりそうな気がします。

後、巷ではやってるフレームワークは付属のライブラリが充実してるってのもポイントだったり。
Viewにはテンプレートエンジンを使う必要があるのかとかも考えたり。

>>71がどのように考えてるか分かりませんが、結構重そうな内容ですね。

で、俺もまた、人に教えるほどきちんと勉強していません。頑張れ!(オイ)

0080nobodyさん2008/08/31(日) 22:02:43ID:BcOgvLp9
ありがとうございます。
ViewはSmartyの実績があるので、ほぼ確定かと思います。
あとはMCですね。
で、ご指摘の通り、既存のフレームワークをいくつか
実際に使ってみて、超シンプル版から作っていこうと思います。

それにしても結構種類ありますよね〜。
0081nobodyさん2008/08/31(日) 22:18:42ID:???
>>80
とりあえずCakePHPとCodeIgniterは分かりやすいかな。
SinfonyやEthnaも人気あるっぽいけど。

後は、とりあえず有名なフレームワークをそのまま流用して、
自分の作りたい方向性に足りないものを追加/修正してやって、
作っちゃうっていう方向性も検討の余地がありそうです。
0082nobodyさん2008/08/31(日) 23:09:43ID:???
骨は例えばちいたんでもいいのでは
他のはどうしても、流儀を覚えてそれに則らないと
カスタマイズも難しいような所があるし

ライブラリは、ぶっちゃけPEARやZendを引っ張ってきて、
そのままではごちゃごちゃになるなら、その一部のコードを、
流用して使えば済むことも多い
0083nobodyさん2008/08/31(日) 23:44:28ID:BcOgvLp9
>>81
なるほど、参考になります。ありがとうございます。
CodeIgniterは知りませんでした。勉強になります。

>>82
>流儀を覚えて
そうですよね。そのコストもありますよね。

ライブラリについては私も同感です。
PEARは今でも使ってますし、DBはADODBを使ってます。
0084nobodyさん2008/09/01(月) 07:50:32ID:???
しかし、PEARやADODBを使えるのにフレームワークは自作しなきゃならん意味が分からんな。
0085nobodyさん2008/09/01(月) 16:27:37ID:???
勝ち馬に乗れなくてサポートが止まったらどうするんだ、とか、
複雑すぎると兵隊に書かせられないから却下
(自社開発なら開発者が目の前にいるから例外)とか、
その手の腐った理由かもな。

自作FWなんて最初からサポート止まってるも同然なんだけど。

あとあれだ、
FW使った分だけ工数が削減されるがそれじゃ困る、
なんていう理由じゃないか?
0086nobodyさん2008/09/01(月) 20:42:35ID:???
フレームワーク使うと大幅に工数下がるね。
でも、フレームワークを勉強するためのコストが要るね。

でもさ、そもそも最低限の勉強をしてから実践投入しろと。
フレームワーク=最低限の勉強だよ。
0087nobodyさん2008/09/02(火) 15:46:31ID:???
自分の印象では、CodeIgniterは分かりやすくて良かったです。
SymfonyとかCakePHPは、使い方を学習する段階で、面倒くさいな〜と思ってしまいました。
辛抱強く性格でないと、じっくり腰をすえてフレームワークの使い方を学ぶ段階が苦痛に感じられますね?
Zend Frameworkも解説本は分かりやすかったです。
ちいたんはチュートリアルが不十分であると感じました。
EthnaやMapleは試してないので分かりません。

「日本向けの携帯サイトを作る」という視点で見た場合、各フレームワークの使いやすいさ、機能はどうでしょうか?
0088nobodyさん2008/09/02(火) 19:21:26ID:kKY94AaP
一般的に、フレームワークでは、
データベースの外部キー制約を設置していた場合、
親テーブルの行を削除したら、
対応する子テーブルの行も削除されるようになっているのでしょうか?
0089nobodyさん2008/09/02(火) 20:08:08ID:???
>>88
参照整合性制約(外部キー)までチェックしてデータ操作してくれる
モデルを実装しているフレームワークは寡聞にして聞いたことが無い。
有ったら俺も知りたいな。
0090nobodyさん2008/09/02(火) 20:41:21ID:???
Zend_Dbはそんな感じのやつあったんじゃね?
0091nobodyさん2008/09/02(火) 20:51:11ID:???
ON DELETE CASCADEではだめなん?
DBのパフォーマンスのため、参照整合性制約を付けずにアプリケーション側で
実装する場合もあるとは思うけど、外部キー制約してるんだよね?
0092nobodyさん2008/09/09(火) 00:13:17ID:???
既出だけどsabelなるフレームワークが出てるけど、最近はルーティングとかYAMLとかの設定ファイルに書かないのが流行りなの?
0093nobodyさん2008/09/13(土) 19:22:25ID:lKt9XZcp
テンプレートメソッドってだいたいprotectedにするじゃん
そしてzend規約では、protectedなメソッドの名前は_hogeにする
でも、子に_付きのメソッドのオーバーライドを求めるのって
何かきもくね?
_を付けるってのは、「内側で使ってる」っていうしるしで、
テンプレートメソッドは、子とはいえ、自分以外に実装をまかせるという、
ある種の外側志向。その齟齬がきもさの原因と思う。
publicにするか、規約を破るか、きもさを受け入れるか・・悩ましいぜ
0094nobodyさん2008/09/13(土) 21:34:17ID:???
そういう文化的な気持ち悪さはわかりにくいな
例えば private と protected をわけるスタイルもある
_ と __ とか (←わかりにくいw)

Zendは特にわけてないのかな?
0095nobodyさん2008/09/13(土) 22:06:52ID:???
__は__setとか__constratみたいのがあるじゃん
0096nobodyさん2008/09/13(土) 22:09:06ID:???
↑予約メソッドをリストアップして回避すればいいじゃん
そんなに無いよ
0097nobodyさん2008/09/13(土) 22:11:08ID:???
そこはPHPが糞としか言いようがないな
せめて予約メソッドは、__set__ とか __clone__ とかにしておいてくれればw
0098nobodyさん2008/09/13(土) 22:12:10ID:???
めんどい
0099nobodyさん2008/09/13(土) 22:14:01ID:???
___set っていうのもありか。

コーディングの自由度の幅や読みやすさを考えるなら、
いっそ予約されたメソッドなんかは

__reserved_method_CONSTRUCT()

くらいやってくれてもなんの問題もないしな
0100nobodyさん2008/09/13(土) 22:25:24ID:???
->が一番嫌いなんだよな
.がいいよな.のほうがカッコいい
0101nobodyさん2008/09/13(土) 22:30:28ID:???
>>96
__ で始まるのは 全部 予約メソッドなんだが
0102nobodyさん2008/09/13(土) 22:35:44ID:???
>>100
そうすると、文字列連結が + になり、
連鎖的に toString() 的なメソッドが欲しくなり・・・

Cっぽいな strval() をがんがん使うつもりならそれでもいいが、
Perl派生言語のジレンマを、そう気軽に語ってくれるなw

>>101
それはPHPの「仕様」ではないよね。雰囲気ではそうかもだけど。
実際、ユーザ定義のメソッドで __ が使えない訳ではない。
0103nobodyさん2008/09/13(土) 22:53:57ID:???
protectedとprivateは別物なのに、_で一緒くたにしているのは、
ZF規約の欠点ではなかろうか。
ZF自体の作りの洗練されなさを考えると、
深い考えがあってそうしたものでもなさそう。
実際symfonyなんかは、Javaと同じでプレフィックス付けたりしてないし。
Rubyでもそんな習慣聞いたことない。
PHP4の呪縛を引きずってるだけじゃね?
こんな規約、いらないんじゃね?
0104nobodyさん2008/09/13(土) 22:59:30ID:???
>>103
publicと、private,protectedの区別をメソッド名でつけることは、
意味がないとは思わない

> protectedとprivateは別物なのに、

っていうのは同意だけどね
それについて、ここしばらくPHPの仕様がらみのレスが
付いてるように見えるんだがそれについてはどうなんだw
0105nobodyさん2008/09/14(日) 00:28:45ID:???
>>100
.のが使いやすいのは同意なんだけど、加算演算子と文字列連結演算子が別なのは
PHPの数少ない美点の一つだと思ってる。
0106nobodyさん2008/09/14(日) 01:05:36ID:???
>>105
それは単純にPerl由来なんだけどな。$ と同様に。
$ の使い方としては劣化してるし、この辺はもうPerl文化を切り捨てるか、
PHPの独自路線が欲しい所ではある
0107nobodyさん2008/09/14(日) 01:09:29ID:???
配列が@とか%じゃないのは良いよな
あれきもいし
0108nobodyさん2008/09/14(日) 02:35:06ID:???
PHPってびっくりするほど独自路線というものが無い言語のような気が...
Perlの遺産だったり、Cが透けて見えたり、Javaのパクリだったり...
で、だからこそ普及しているんじゃないかな。

あと関係ないけどPHP6で常にUnicodeモードを有効にしたのは英断だと思う。
パフォーマンスやメモリへの影響も今時のサーバで問題があるほどでもないし。
5系から6への移行は大変かもしれないけど、それで仕事が増えるなら構わないw
0109nobodyさん2008/09/14(日) 03:31:07ID:???
ユニコードモードって何が変わるの?
0110nobodyさん2008/09/14(日) 04:04:33ID:???
未だにPHP4とかの鯖あるし
4,5,6とか大変なんだが〜
0111nobodyさん2008/09/14(日) 04:10:29ID:???
新規案件で4の鯖はないっしょ。てか誘導しようよ
保守案件で4なら、ご苦労様としか言えぬw

6は、一応5.3と互換性を持たせるつもりみたいだね
その5.3が大変なんだろうけど、まだ見ないねぇ
0112nobodyさん2008/09/14(日) 09:51:48ID:???
別にPHP4でも困らないけどな。PHP5の機能で役に立つのは例外くらいなもんだし。
0113nobodyさん2008/09/14(日) 10:42:39ID:???
オブジェクトが代入でコピーされなくなったのは、地味に気持ちいい
0114nobodyさん2008/09/14(日) 10:44:44ID:???
&付ければいいだけじゃん。
0115nobodyさん2008/09/14(日) 11:30:26ID:???
cloneだろ
0116nobodyさん2008/09/14(日) 14:34:14ID:???
4だから困るとか言うよりは、2系統あるのが困る
0117nobodyさん2008/09/16(火) 20:53:37ID:???
>>115
コピーって言っちゃだめなの?
0118nobodyさん2008/09/16(火) 23:08:17ID:???
>>117
>115は>114に対して
0119nobodyさん2008/09/17(水) 13:33:07ID:???
PHPをやめるとしたら、何を使いますか?
・Ruby
・Python
・Perl

やっぱPythonかな?
0120nobodyさん2008/09/17(水) 13:35:32ID:???
Perlは個人的にないな。
0121nobodyさん2008/09/17(水) 13:41:27ID:???
>>119
仕事的には、PHPより高速で安定的に動作して、
月額1000円程度以上のレンサバには95%以上の確率で入ってるなら
なんでもいい。

そんなのある?
0122nobodyさん2008/09/17(水) 13:43:47ID:???
つPerl & FastCGI
FastCGIの方は、95%にはちと足りんかな?w
0123nobodyさん2008/09/17(水) 13:50:56ID:???
Rubyに移行しようと思ったけど
ZendStudioがあるから結局PHP使ってる・・
0124nobodyさん2008/09/17(水) 18:12:51ID:???
書いてて面白いのはPerlだね。
0125nobodyさん2008/09/17(水) 18:45:58ID:???
じょうだんよしこさん
0126nobodyさん2008/09/17(水) 22:00:15ID:???
PHPのつまらなさは異常
0127nobodyさん2008/09/18(木) 02:36:03ID:???
qiq入れればまだ楽しめるよ
0128nobodyさん2008/09/18(木) 16:41:27ID:???
ますかきおくん
0129nobodyさん2008/09/18(木) 16:49:43ID:???
qiq面白いとは思うけど
コードの依存部分が全体に広がるエクステンションを入れるのはやっぱり抵抗あるわ
もしそれがダメになった時のことを考えると
0130nobodyさん2008/09/18(木) 16:52:54ID:???
楽しめても、業務利用は無理っしょ
まだRubyで楽しんでる方が健全じゃねーかwww
0131nobodyさん2008/09/18(木) 19:11:26ID:???
趣味用の言語ならもっとマイナーな奴でもやれよ
0132nobodyさん2008/09/18(木) 19:12:59ID:ykJuPDO5
>>129
別に、フレームワーク使ったってそのフレームワークに依存するじゃん
なんでQIQだと抵抗があるのか
0133nobodyさん2008/09/18(木) 20:57:09ID:???
そりゃあんた、なんか不可解な挙動があったときに、どこまで自分の力で
調べて修正できるのかって点で、違いすぎるだろw

ぶっちゃけ、PHPのコアに関わっている人間にとっての別実装や実験として
でもなければ、QIQなんておもちゃ以外の何者でも無かろうが
0134nobodyさん2008/09/18(木) 21:38:02ID:???
将来PHPがバージョンアップして
qiqの開発が停止して非対応だったら
それまで書いたqiq依存コードがもろとも脂肪じゃん。
フレームワーク使っててもフレームワーク非依存なプレーンなクラスは書いていくし
そういうのは流用が効く。
0135nobodyさん2008/09/19(金) 00:57:48ID:???
PHPにもApacheにも何も保証があるわけじゃないのに。
PHP5依存コードが脂肪しない保証もない。
Zendと契約結んでる? そりゃ失礼しました。
0136nobodyさん2008/09/19(金) 03:33:16ID:???
>>135
確率の問題
0137nobodyさん2008/09/19(金) 12:02:16ID:???
PHPのフレームワークと、土台のPHP・Apacheとを、どうやったら
同一視できるのか
また、ユーザの少ないというか皆無に近いQIQなるエクステンションと、
ばりばり商用利用され、長期間メンテの続いている普及率抜群の
プロジェクトとを同一視できるのも素晴らしい

>>132とか>>135とかは、きっと「フレームワーク」の中を調べたりましてや
いじったりなんて、思いもしないユーザなのかな?

ひょっとして全部同列に見えるくらいのスーパーハカーですか?
0138nobodyさん2008/09/19(金) 18:10:39ID:???
PHPユーザーは裾野が広いってことでしょう。
サンデープログラマーから職業プログラマーまで幅が広い。
QIQは素晴らしいエクステンションだから、PHPを支援しているIBMやマイクロソフトとかの大手企業に支援してもらったらいいんじゃないですか?>作者の方
0139nobodyさん2008/09/20(土) 13:23:29ID:???
ラムダとか5.3で導入されるじゃん
qiqって何が素晴らしいの?
0140nobodyさん2008/09/20(土) 13:42:12ID:???
前スレでさんざん出てた [] じゃね?
執着してる人が結構いるようだし
0141nobodyさん2008/09/21(日) 05:27:57ID:???
[]とハッシュ{}はほしいねぇ
あと -> を . にすれば書くのも読むのも楽だ
0142nobodyさん2008/09/21(日) 05:32:43ID:???
C/C++の話かよw
0143nobodyさん2008/09/21(日) 18:00:01ID:???
>>137
>PHPのフレームワークと、土台のPHP・Apacheとを、どうやったら
>同一視できるのか

おいおい、PHPの安定性をApacheと同じにしないでくれよ。
どうせPHPだってver4のサポートなんてもう打ち切られるじゃん。
未来永劫サポートされるわけじゃないし、どっちもどっち。

PHPもフレームワークもQIQも、どれもオープンソースじゃん。
だれかのメンテに頼るのもいいけど、必要なら自分でメンテすればいいじゃんか。
QIQなんてただのライブラリにすぎないんだから、そのくらいできるだろ。
でかいフレームワークのコード読むよりは小さいQIQのほうが楽。
0144nobodyさん2008/09/21(日) 19:43:02ID:???
> QIQなんてただのライブラリにすぎないんだから、
ライ・・ブラリ・・・?

> でかいフレームワークのコード読むよりは小さいQIQのほうが楽。
確かにそうかもしれんが、QIQが何をやってどこを修正すれば
どうなるかってのをつかむ為には、少なくともCとBison(Yacc)と
PHPのCソースコードに関する知識が必要。
てか「楽」じゃねーよw
0145nobodyさん2008/09/21(日) 20:08:55ID:???
QIQのソースコード読むのが楽なわけないが。少なくともPHPのウェブフレームワークなんかよりは遙かにスキルが要求される。
0146nobodyさん2008/09/21(日) 21:37:07ID:???
あれはPHPの拡張モジュール作るのには必要ない、文書化もされていないようなAPIを叩いてるからね...
単体では短くても、理解しようとするとZend Engineのソースコード全体を見る羽目になるw

それとは関係ないけど、拡張モジュールを作るなら何気にPHP6はAPIが使いやすくなってる。
5.3もUnicode関連を除いてほぼ6相当だけど、便利な関数が5.3だけZEND_APIとしてエクスポートされていなくて切ないことも。
0147nobodyさん2008/09/22(月) 00:20:44ID:???
>>145
>QIQのソースコード読むのが楽なわけないが。少なくともPHPのウェブフレームワークなんかよりは遙かにスキルが要求される。
それはおまえがWebのスキルしかないから。コンパイラコンパイラの初歩知識があれば、見れば分かる。
自分が慣れてる分野のコードは読めて、知識のない分野のコードは読めないのは当然。

0148nobodyさん2008/09/22(月) 00:46:48ID:???
PHPで描かれたウェブのフレームワークとPHPのエクステンション、どっちが難解かは子供でも分かること
0149nobodyさん2008/09/22(月) 01:04:16ID:???
いや、量によって変わるから、どちらが難解かは一概に言えない。


ただいえるのは、PHPという言語仕様を非公式変えてしまうようなものは
公式でPHPそのものが変わったときに対応が困難になるから
使うのはやめておけってこった。
0150nobodyさん2008/09/22(月) 07:15:01ID:???
公式でPHPが変わったら、どっちもどっちじゃない?
0151nobodyさん2008/09/22(月) 10:49:18ID:???
じゃない。
0152nobodyさん2008/09/22(月) 16:45:08ID:???
アホな質問かも知れないけど、cakephpライクなフレームワークを作ろうかと
思ってるんですが、マジックメソッドの __get使ってモデルやコンポーネントの
呼び出しを下のようにやってみたいんだけど、何か問題あります?

class HogeController extends Controller
{
  function index()
  {
   $data = $this->Model->classname->find();
   $this->Component->classname->hogehoge();
  }
}
0153nobodyさん2008/09/23(火) 00:47:41ID:???
>>152
$this->Modelとか$this->Componentの__get()で、
与えられたクラス名のオブジェクトを生成・取得するって仕組み?
特に悪いとも思わないけど、必要とか便利とかもあんまり思わないw

例えば設計思想とか、利用時の利便性とかもあるんだろうけど、
同じ事をするのに、Model::factory()とかModel::singleton()でも
いい場合もあるかもだし

ピントはずれだったらスマソ
0154nobodyさん2008/09/23(火) 00:51:04ID:???
>>153 微妙に修正
> 同じ事をするのに、Model::factory()とかModel::singleton()でも
→ 同じ事をするのに、Model::factory(classname) とか new classname() とか classname::singleton() とかでも
0155nobodyさん2008/09/23(火) 02:07:19ID:???
new は method chain できないから却下
01561522008/09/23(火) 15:14:04ID:???
cakephpだとコントローラーのプロパティに
使うコンポーネント設定するのいちいち面倒だな〜と思ってたんで。
そういうやり方もあるんですね、勉強になります。有り難うございました。
0157nobodyさん2008/09/23(火) 17:34:13ID:???
∧_∧
( ´∀`)< ぬるぽプロジェクト

みんなで面白いサイト作って有名にしようぜ!
http://yutori.2ch.net/test/read.cgi/news4vip/1222156869/
★まとめwiki
http://www39.atwiki.jp/vipproject/

PHPのフレームワークとして symfonyを採用予定です。
0158nobodyさん2008/09/23(火) 20:55:42ID:???
>>157
スレ荒れすぎワロタ
0159nobodyさん2008/09/23(火) 21:24:50ID:???
>>158
自動保守おいしいです(^q^)
0160nobodyさん2008/09/26(金) 16:21:57ID:???
フレームワークとは直接関係ないけど5.3でspl_autoload_register(function($name){...});
すると実際にautoloadされるときにbus erorrで落ちるね。
spl_autoload_register($f=function($name){...}); なら$fが生きている間だけは落ちない。
0161nobodyさん2008/09/26(金) 16:42:24ID:???
5が出ても枯れるまで結構時間かかったし
6も使えるようになるまでは長いだろうなぁ
0162nobodyさん2008/09/27(土) 08:37:12ID:???
一人で最初期モックアップ作るなら、
railsとcakephpと、どっちが向いてる?
0163nobodyさん2008/09/28(日) 11:02:03ID:???
その比較って意味あるのかな?
Ruby(少なくともRails)とPHPが同等にできる人にとってしか答えようがないし、
回答もしかりw
0164nobodyさん2008/09/28(日) 11:49:26ID:???
cakeみたいな厨フレームワーク使ってる人恥ずかしくないんですかぁ
0165nobodyさん2008/09/28(日) 15:59:10ID:???
んじゃ何使えばいいの?
0166nobodyさん2008/09/28(日) 18:15:32ID:???
☆Z☆E☆N☆D☆!!
0167nobodyさん2008/09/28(日) 22:06:23ID:???
Zend…


無いわー
0168nobodyさん2008/09/28(日) 23:15:36ID:???
zend使いまくりだけど
何が不満なのかわからない
0169nobodyさん2008/09/29(月) 06:03:55ID:???
モックならちいたんで良いジャマイカ。
0170nobodyさん2008/09/30(火) 00:08:37ID:???
モックなら素のPHPでいいよ
0171nobodyさん2008/09/30(火) 00:17:33ID:???
モックはHTMLで十分なこともおおくない?w
ヘッダフッタ辺りのレイアウトとかで楽したいなら、
手慣れたテンプレートエンジンがあればいいかもだけど

フレームワークってのとはちょっと違うような
多分必要なのはView側の省力化・柔軟性かなあ
0172nobodyさん2008/09/30(火) 00:41:51ID:???
マックでいいよ
0173nobodyさん2008/09/30(火) 01:56:27ID:???
楽天がセッションidごとgoogleにキャッシュされ、
個人情報を漏らしまくって最終的にPHP脂肪www
0174nobodyさん2008/09/30(火) 03:55:27ID:CLW/UbJj
物区ならPencilでいいんじゃね
0175nobodyさん2008/09/30(火) 06:24:36ID:???
つーかsymfony一択だろ
フレームワーク作者で一番センスあるコード書くのがフランチョス。
0176nobodyさん2008/09/30(火) 07:01:23ID:???
symfonyは関数名がダサい
_区切りとかKENTかよw
0177nobodyさん2008/09/30(火) 07:07:59ID:???
そんな規約ないよ
何かと間違えてないか?
0178nobodyさん2008/09/30(火) 07:12:10ID:???
あれれ〜symfonyじゃなかったっけ?
■ このスレッドは過去ログ倉庫に格納されています