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

[PHP]フレームワークについて語るスレ2[総合]

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/12/29(木) 18:03:44ID:PQZNoJbD
::フレームワーク一覧::
■Phrame
http://phrame.sourceforge.net/
■Mojavi Project
http://www.mojavi.org/
■Agavi
http://agavi.org/
■[ 日本発 ] Maple Project
http://kunit.jp/maple/
■[ 日本発 ] Ethna -PHPウェブアプリケーションフレームワーク-
http://ethna.jp/ethna-tutorial-startup-practice1.html
■[ 日本発 ] guesswork
http://www.guesswork.jp/
■Biscuit
http://bennolan.com/biscuit/
■PHP on TRAX
http://phpontrax.com/
■Web Application Component Toolkit (WACT)
http://www.phpwact.org/
■symfony
http://www.symfony-project.com/
■XOAD
http://wiki.xoad.org/index.php?title=Wiki_Home
■[ 日本発 ] pokox
http://www.glamenv-septzen.net/pukiwiki/index.php?pokox
■[ 日本発 ] 速構Web Framework
http://www.pm9.com/newpm9/itbiz/php/framework/
■CakePHP
http://cakephp.org/
0369nobodyさん2006/03/02(木) 21:00:48ID:???
>>367 俺もだめだぽ
0370nobodyさん2006/03/02(木) 21:08:42ID:???
え?もはやMojaviよりSymfonyの方がメジャーなのか
0371nobodyさん2006/03/02(木) 21:29:55ID:???
symfonyはphpだけのものではないわな。
英語で検索すりゃそりゃ多いわ。
0372nobodyさん2006/03/02(木) 21:31:28ID:???
>>363
たぶん両方で動くやつってないと思う。
つーか両方で動く必要がないと思う。
0373nobodyさん2006/03/02(木) 22:18:07ID:???
>363
4で動くなら5でも大体動くんじゃね?
0374nobodyさん2006/03/02(木) 22:28:30ID:???
symfonyのtgz落としても展開に失敗するし。
pearもダメだし。
とりあえずsvnでcoできた。
なにげにsymfonyもmojaviの派生かい。
0375nobodyさん2006/03/02(木) 22:41:05ID:???
>>369
symfonyのフォーラムに投稿があった
http://www.symfony-project.com/forum/index.php/t/51/
PEAR 1.4.7に問題があるのかね

pear upgrade -f PEAR-1.4.6

してから

pear channel-discover pear.symfony-project.com

でdiscover succeededになった
0376nobodyさん2006/03/02(木) 22:51:44ID:???
追記

http://bergie.iki.fi/blog/midcom-pear-channel-not-working-with-pear-1-4-7.html
http://pear.php.net/bugs/bug.php?id=6960

バグらしい
報告されてるからすぐfixされるかなあ
何気にはまった
0377nobodyさん2006/03/02(木) 23:05:47ID:???
>>368 >>370-371
php framework mojavi: 111,000
php framework symfony: 88,900
php framework agavi: 12,300

まぁこんな感じ。
0378nobodyさん2006/03/02(木) 23:21:35ID:???
>>373
うごかないですよ!
0379nobodyさん2006/03/02(木) 23:33:03ID:???
>>375
本当だ。できた。
0380nobodyさん2006/03/02(木) 23:42:06ID:???
>>363
cakeは4と5両対応ってのがキーフィーチャーのひとつらしい。
その点は問題なく動く。
0381nobodyさん2006/03/03(金) 00:27:23ID:???
>>363
あとは、日本の Ethna、Mapleあたりも動く
0382nobodyさん2006/03/03(金) 10:20:13ID:???
>>364
http://forum.mojavi.org/index.php?showtopic=1363
ここ見るとsymfonyも実はmojaviに不満のある人が作ったってことがわかるね。
0383nobodyさん2006/03/03(金) 12:57:54ID:Tn8o6vdH
今日 agavi の勉強を始めたんですが、
agavi で任意のテンプレートエンジンを使うのって簡単にできますか?

SmartyView.class.php ってファイルがあって
Smarty は使えそうだってところまではわかりましたが、
できることなら patTemplate を使いたいのです。
0384nobodyさん2006/03/03(金) 15:07:08ID:???
>>383
今のところサポートされてないなら簡単にはできないね。
自分でViewクラスをガリガリ書くとかあきらめてSmarty使うとか妥協が必要。
03853832006/03/03(金) 17:26:15ID:???
>>384
ありがとうございます。
残念ですが、あきらめて Smarty を勉強することにします。
一応 View クラスを書こうとはしたのですが、
patTemplate を require した時点でエラーが出てしまって手に負えませんでした。
0386nobodyさん2006/03/03(金) 19:05:16ID:???
>>385
SmartyView.class.phpを参考に(=パクって)Viewクラスを継承する
PatTemplateView.class.phpを書けばいいんだけど

patTemplate を require した時点のエラーってどんなエラー?
もしかしてPHP5でVARを怒られているだけじゃないの
0387nobodyさん2006/03/03(金) 20:44:06ID:???
>>380
>その点は問題なく動く。
動くけど問題はめちゃくちゃ多いぞ。
両対応以外にもね
0388nobodyさん2006/03/03(金) 20:48:26ID:???
>>368
せめて頭10件の内容だとか、
フォーラムの賑わい具合だとかで判断しようぜ…
0389nobodyさん2006/03/04(土) 00:55:23ID:???
>>386
> patTemplate を require した時点のエラーってどんなエラー?
> もしかしてPHP5でVARを怒られているだけじゃないの

こんなエラーです。

Strict Standards: Assigning the return value of new by reference is deprecated in /usr/pkg/lib/php/pat/patErrorManager.php on line 190
Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /usr/pkg/lib/php/pat/patTemplate.php on line 68
(同様に var のエラーが続く)
Strict Standards: Assigning the return value of new by reference is deprecated in /usr/pkg/lib/php/pat/patTemplate.php on line 1270

PatTemplateView.class.php というファイルを作成し、
その冒頭部分で
require_once 'pat/patErrorManager.php';
require_once 'pat/patTemplate.php';
を記述しています。
0390nobodyさん2006/03/04(土) 01:04:04ID:???
>>389
webapp/config.phpの中にエラーレベル設定出来るところがある。
E_ALLだけにすればよろし。
03913832006/03/04(土) 01:26:56ID:???
>>390
なるほど。もうちょっとがんばってみることにします。
ありがとうございました。
0392nobodyさん2006/03/04(土) 01:45:42ID:???
>>387
cakeのrc4のアプリをPHP4からPHP5に移行したけど、
バージョン違いから来る問題はなかったよ。

いやまぁ、Dboをほぼ全面的に書き直すハメにはなったけどね。
それはPHP4とPHP5両対応とは違う話ってことで。
ModelとDboのドロドロの関係とドキュメント以外はまぁ問題ないと思う。

Railsへの道ははるか遠しだけど、
まぁ開発は活発だしまだ判断は早いと思っとる。
0393nobodyさん2006/03/04(土) 01:47:42ID:???
めでたくベーパーウェア入りです。

http://en.wikipedia.org/wiki/List_of_vaporwares
0394nobodyさん2006/03/04(土) 01:59:40ID:???
>>393
ワロスwwwwwww
発表してからそんな時間経ってねえだろwwwwww
0395nobodyさん2006/03/04(土) 03:35:59ID:???
>>389
ini_set("display_errors", 0);
ini_set("error_reporting", false);
require_once(AG_PATTEMPLATE_DIR.'pat/patErrorManager.php');
require_once(AG_PATTEMPLATE_DIR.'pat/patTemplate.php');
ini_restore("error_reporting");
ini_restore("display_errors");
こんなふうにして消せばいい
>>390
の方法でもいいけどデバッグの際はStrictの警告が出たほうがいいでしょ
0396nobodyさん2006/03/04(土) 03:55:00ID:???
>>393
どれだけ短気だよ
PHPフレームワーク界ではよくあること
0397nobodyさん2006/03/04(土) 17:10:57ID:???
関係ないけどRails本が出るみたいだね

ベーパーウェアって何?
0398nobodyさん2006/03/04(土) 17:23:52ID:???
ttp://ja.wikipedia.org/wiki/ベーパーウェア
0399nobodyさん2006/03/04(土) 17:55:37ID:???
>>393
ちょwwwwwwww
0400nobodyさん2006/03/04(土) 20:29:00ID:???
http://framework.zend.com/download
Preview Release キタ━━━━(´д`;)━━━━!
0401nobodyさん2006/03/04(土) 20:51:18ID:???
>>400
あのwebcastから3ヶ月。ようやくリリースですか。
チェックしてみよ。情報�d!
0402nobodyさん2006/03/04(土) 20:54:07ID:???
>>400
サイトのセンスもいいな
これは期待できそう
0403nobodyさん2006/03/04(土) 21:14:13ID:???
Controllerまわりを見てみたけどフローがRailsっぽい
0404nobodyさん2006/03/04(土) 21:20:03ID:???
tar.gzで6MBytesっすか...
0405nobodyさん2006/03/04(土) 21:32:35ID:???
含まれてるファイルの数が半端ないな
資本の力SUGE-
0406nobodyさん2006/03/04(土) 21:41:19ID:???
>>402
マニュアルのページのスタイルは禿しく手抜きだけどなー
0407nobodyさん2006/03/04(土) 21:44:24ID:???
ベーパーウェア 呼ばわりした外人どうすんだよww
0408nobodyさん2006/03/04(土) 21:49:32ID:???
記念に>>393のページ保存しとこ
0409nobodyさん2006/03/04(土) 22:08:53ID:???
Luceneのインデックスがそのまま読めるとあったので、PHPでLucene互換エンジンを
スクラッチで書いたのかスゲーと思ったら、結構.javaもあるんだね。
たぶん、検索はphpのみでできる...のかな?

ていうか、テンプレートと思われるtpl.phpファイルを除くと.phpと.javaの
各ファイル数の比は6:4くらいじゃんか。
0410nobodyさん2006/03/04(土) 23:25:07ID:???
当然PHP5前提だよな・・・
0411nobodyさん2006/03/04(土) 23:59:05ID:???
interface、abstract、exception、stl、などなどつかいまくりですがな
0412nobodyさん2006/03/05(日) 00:32:33ID:???
想像以上に作りがショボい…。
0413nobodyさん2006/03/05(日) 00:39:16ID:???
Controllerのドキュメントがないと思ったら、まだまともに動かないのね。
しっかりしてよ>Zend
0414nobodyさん2006/03/05(日) 00:48:51ID:???
zend frameworkって知らなかったんだけど、マニュアル読む限り、strutsみたいなウェブフレームワークというより、PEARの代替なんだな。
0415nobodyさん2006/03/05(日) 00:50:24ID:???
vaporware扱いされるに至って、少々あわててPreview releaseを出したのでは。

でもPdfとかLuceneとかのコンポーネントの独立性が高くて単体でも使えそうなのはいいね。
0416nobodyさん2006/03/05(日) 00:55:13ID:???
>>414
俺もフレームワークを期待してた。

独自のテンプレート・エンジンとか言ってたのに、Zend_View を見て
愕然とした。どう見ても生 PHP です、本当にありg(ry

0417nobodyさん2006/03/05(日) 01:25:35ID:???
あるみたいよ、テンプレート。
ただし、あのなつかしきPHPLIBライクの奴らしいけど。

Smartyのようなミニ言語テンプレートとはアプローチが違って
少々判りにくい面はあるとおもうけど、ちゃんとロジックを分割する方を選んだんだね。
0418nobodyさん2006/03/05(日) 01:45:08ID:???
>>402
え?
0419nobodyさん2006/03/05(日) 01:46:21ID:???
ああ失礼。>>417は勘違い。
やりたいならPHPLIBのTemplateを使うなり自由にしなさい、というだけだった。

しかし、今時PHPLIBを例に出すかなぁ...
0420nobodyさん2006/03/05(日) 02:04:31ID:???
目を引くのは Pure-PHP の PDF 用ライブラリぐらいか?

今の状態じゃデファクト・スタンダードのフレームワークになったりする
ようなものではないね…。
0421nobodyさん2006/03/05(日) 03:10:58ID:???
>>420
しかしPDFライブラリをPure-PHPにする意味はあるのだろうか。
0422nobodyさん2006/03/05(日) 03:18:45ID:???
まあ機能的にはどのフレームワークもさほど大差はないから
「そこそこ使えるレベル」でも
デファクトとしては充分という判断があるのか、ないのか
0423nobodyさん2006/03/05(日) 03:29:42ID:???
メンテナンスが保証されてるのが良いところ
0424nobodyさん2006/03/05(日) 04:54:35ID:???
強くはなさそうだから
既存フレームワークと棲み分けは出来そうだね。
それぞれ戦略もってやって欲しい。
0425nobodyさん2006/03/05(日) 07:26:17ID:???
ソース流し読みした感じから独り言。フロントコントローラを使うと
http://example.com/hello/world/
っていうURLのhelloがコントローラ名、worldがアクション名になり、HelloController.phpの中に
class HelloController extends Zend_Controller_Action {
 public function world() { }
 public function index() { }
}
ってのを書いとくとHelloController::world()が呼ばれるみたいだ。
mojaviのように深いディレクトリ構造を要するわけではなくシンプルな点は○。
でも全部のアクションを一つのファイルに書くとなると、ここからどうやってファイルごとにモジュール化するんだろう?
Viewにどうやってつなげるかもよくわからん。
0426nobodyさん2006/03/05(日) 10:59:25ID:???
>>425
railsっぽいね。
0427nobodyさん2006/03/05(日) 11:00:40ID:???
Controllerといい、Viewといい、Routerといい、ほんっとにRails風なのね。
だったらActiveRecordまでインスパイアされて作ってくれればよかったのに。
なんだか、ActiveRecordとか、generatorとか、scaffoldingとかAjaxHelperとかの
Railsの便利機能のないRailsクローンという印象。

責める訳じゃないけど extremely simple っていううたい文句も
Railsから持ってきただけだったんですか、と思うとちょっとむなしい。

>>425
ドキュメントによると、アクションメソッドの中で
手動でViewをインスタンス化してrender()を呼ぶらしいよ。
0428nobodyさん2006/03/05(日) 12:46:58ID:???
>>427
Railsよく知らんけど、ActiveRecordはあるんじゃないの?
webcastでも導入するって言ってたしDBまわりにそれっぽいこと書いてあるよ。
0429nobodyさん2006/03/05(日) 13:19:08ID:???
だれもこいつ→>>414には突っ込まないのか?
0430nobodyさん2006/03/05(日) 13:22:43ID:???
>>428
ごめん、デザインパターンのActiveRecordってわけじゃなくて、
RailsのActiveRecord実装のこと。
0431nobodyさん2006/03/05(日) 13:31:35ID:???
>>430
マニュアルにはZActiveRecordとか書いてあるよ
0432nobodyさん2006/03/05(日) 13:43:17ID:???
ActiveRecordパターンってRailsのActiveRecordを実装した人が命名したんじゃなかったっけ?
0433nobodyさん2006/03/05(日) 13:57:36ID:???
http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?ActiveRecord
0434nobodyさん2006/03/05(日) 13:59:55ID:???
ZendFrameworkにもActiveRecord実装は確かにあるみたいだね、だけど
Zend_DataObjectにはRailsのモデルみたいにbelongsToにテーブル名書くだけで
find()のときに自動でjoinしてくれる機能はないよね?
むしろ使い勝手としてはPEAR::DB_DataObjectに近くない?

混乱させてごめん。
Railsのモデルの機能とActiveRecordパターンを混同してたみたいだ。
0435nobodyさん2006/03/05(日) 15:18:27ID:???
>>415
> vaporware扱いされるに至って、少々あわててPreview releaseを出したのでは。

ZendのAndiは4ヶ月も前からベーパーウェア扱いされてるの知ってたらしい。去年10/27のAndiのblogより勝手に訳:
http://andigutmans.blogspot.com/2005/10/zend-framework-post-is-too-long-so.html
> まあ今のところは何かしら実際に提示できるものを準備することに焦点をおいてるよ>ベーパーウェア
> 早く出せるものは出すために全力を尽くしてる。
> シンプルかつ統一的なフレームワークを作り出すなんてどう考えても簡単なことじゃない。
> だから小グループ制で集中的に開発するのがそれだけ重要だってことだよ。

で、リリースまでにずいぶん時間かかりましたね。>Andi
0436nobodyさん2006/03/05(日) 17:33:43ID:???
Zendの連中は「物事をシンプルに保つ」ということが本当に出来ないな。
0437nobodyさん2006/03/05(日) 18:31:35ID:???
zendの正式版というのはあとどれくらいですか
0438nobodyさん2006/03/05(日) 18:45:54ID:???
>>431
ZActiveRecordみたいにZで始まるクラス名とZend_DbみたいにZend_で始まるクラス名との間の相関関係がよくわからんな。
つーかZActiveRecordってどこに入ってんの?
0439nobodyさん2006/03/05(日) 19:25:13ID:???
関係ないけど、Rubyの開発者の職場と結構近い事を最近知って、超興奮。
PHP、Java、Perl、Rubyの垣根がだんだんなくなってきたと
個人的には思ってるので、これを機会にRuby学ぼうと思った。
チラ裏すまん。あまりに興奮して。
0440nobodyさん2006/03/05(日) 19:46:00ID:???
やっぱパッケージシステムなしにクラスライブラリを充実させるのって無理あるな。クラス名、長。
0441nobodyさん2006/03/05(日) 19:46:41ID:???
>>438
ソースにはないね。
たぶんちょっと前はZend_Db_DataObjectがZActiveRecordという名前
だったんじゃないのかな。ドキュメントがそれに追随していないだけだと思う。
0442nobodyさん2006/03/05(日) 22:23:42ID:???
>>440
はげどうはげどうおおはげどう
0443nobodyさん2006/03/06(月) 07:03:34ID:???
>>440
パッケージシステムっつーか、名前空間な。

まあ、Railsのいいところはマネしてもいいんじゃね?ただ、PHPでRubyのマネ(メタプログラミングまわり)はどう考えてもできないから、そのへんをどうすんのか気になる。
0444nobodyさん2006/03/06(月) 07:50:36ID:???
メタプログラミングなんかはフレームワークじゃなくて言語自体の話だね。
やるとしたらPHP6で無理やりとりこむか。

ところで、なんか前スレかなんかで「PHPはどうせ汎用言語じゃなくてWebに特化したものなんだからフレームワークみたいなものは言語仕様で提供すればいいのに」、って感じの話が印象的だったのを思い出した。
リンク張ろうと思ったけど検索で見つからなかったorz
0445nobodyさん2006/03/06(月) 15:24:16ID:???
>>444
ttp://www.programmers-paradise.com/tdiary/ の2006年1月あたりにそんな感じの
エントリがあったような気がしたけど、見れなくなってるな
0446nobodyさん2006/03/06(月) 20:56:47ID:???
>>445
見れないのかよ!
0447nobodyさん2006/03/06(月) 21:12:49ID:???
メタプログラミングって何?
0448nobodyさん2006/03/06(月) 21:14:42ID:???
Web Archive にもないな
0449nobodyさん2006/03/06(月) 22:58:37ID:???
classkitとAOP使って織り込んでいけばメタプログラミングもどきっぽい事は出来そう。

>>444
まさに言語設計時の問題だよね。
PHP6で実装されたとしても今更感がある。

そーいやnamespaceすらない言語なんだよな・・・・・。
0450nobodyさん2006/03/06(月) 23:01:50ID:???
namespace は PHP5 のリリース直前まで入る予定だったんだけどな……残念だ
0451nobodyさん2006/03/06(月) 23:40:01ID:???
phpのcreate_functionとかevalはメタプログラミングとは言わないの?
0452nobodyさん2006/03/07(火) 00:51:09ID:???
RORも使ってるらしい?けど、evalはやだなぁ。。
0453nobodyさん2006/03/07(火) 06:55:49ID:???
>>450
たしか Andy がいつものように火病でトチ狂って入れないことになったんだっけ?
0454nobodyさん2006/03/07(火) 09:55:32ID:???
PHPはHTMLを生成するメタプログラミング言語です。
0455nobodyさん2006/03/07(火) 10:10:18ID:???
>>452
使ってるどころか、使いまくりです。
たしか Maple の kunit さんのブログに書いてあったんだと思うけど、PHP 的には
生成したコードを eval するよりファイルに書き出して inlucde するほうが速いらしい。

>>453
パフォーマンスが悪いということで Zeev に却下されたんじゃない? かなり怪しい記憶だけど。
PHP 6では導入予定で、CVS HEAD ではパフォーマンス問題も改善されてるっぽい。

個人的にはスレッドを実装してほしい。
0456nobodyさん2006/03/07(火) 11:17:57ID:???
>>455
まじ?evalってそんなに遅いのか…
0457nobodyさん2006/03/07(火) 12:13:47ID:???
基本的にどの言語でも eval はデメリットがでかいと思うけど。
スピードだけじゃなくて。
0458nobodyさん2006/03/07(火) 14:00:56ID:???
俺がeval使うのはclassを動的生成するときだけだな。
create_functionならぬcreate_classみたいな関数あればよかったんだけど。
0459nobodyさん2006/03/07(火) 18:43:26ID:???
>>458
create_functionあるじゃん
http://php.s3.to/man/function.create-function.html
04604592006/03/07(火) 18:43:57ID:???
あ,しまった,「ならぬ」か。失礼。
0461nobodyさん2006/03/07(火) 19:50:01ID:???
>>455
>生成したコードを eval するよりファイルに書き出して inlucde するほうが速いらしい。
これは後に確認したらそうでもなかったんじゃなかったかな
0462nobodyさん2006/03/07(火) 20:00:16ID:???
Zend Frameworkの話題が止んだのは、みんなもう飽きたからですね。
0463nobodyさん2006/03/07(火) 20:29:51ID:???
>>462
なんか話したいことあるならどうぞ?
0464nobodyさん2006/03/07(火) 21:30:23ID:???
>>463
うーむ・・・
0465nobodyさん2006/03/07(火) 22:43:03ID:???
>>462
なにか話せるような素晴らしい展開があるのなら、喋ってもいいですよ?
0466nobodyさん2006/03/07(火) 22:50:42ID:???
>>458
$name = 'Test';
$hoge = new $name;
0467nobodyさん2006/03/08(水) 00:03:49ID:???
>>466
それだと継承を要求できない
0468nobodyさん2006/03/08(水) 00:15:27ID:???
つーかインスタンスの生成じゃなくてクラスの生成の話ね。
■ このスレッドは過去ログ倉庫に格納されています