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

ZendFrameworkってどうよ?

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/10/07(土) 02:49:15ID:6wQ8r0Dc
ようやくVer.1.0が出るらしいね
これってどうよ?

PHP5に移行したほうがいいのかな
0792nobodyさん2008/01/17(木) 22:42:57ID:???
よく知らないけどビューはコントローラを使う時ほぼ必ず必要になるからじゃない?
ごめん俺よく分からないから適当なこといってると思う。
0793nobodyさん2008/01/17(木) 22:48:02ID:???
controllerとviewも最初は疎結合だったよ
viewが自動でロードされるようになったのもだいぶ後になってから
結局疎結合過ぎてもっていう部分で
ようやくバランス取って来てる段階
0794nobodyさん2008/01/17(木) 22:57:13ID:???
これにDIコンテナつけて欲しい
guiceみたいにコードで書ける奴
0795nobodyさん2008/01/18(金) 21:35:47ID:???
>>794
お前そこらじゅうでDIコンテナいってるな。どうかしたのか?
0796nobodyさん2008/01/20(日) 18:46:56ID:???
Smartyの手動呼び出しではなくViewRendererに組み込む方法が
スムーズにいなかなくて悩んでいたんだけど、setViewBasePathSpec()メソッドが肝だった。
これでZend_Viewとほぼ同じように扱える。
既に知っていた人、Smarty使ってない人は気にしないで下され。
0797nobodyさん2008/01/21(月) 23:57:18ID:???
PDT最新版だいぶマシになってるね。
ただphp_mysql.dllを読んでくれない・・・
php_mbstring.dllはよんでくれるんだけどなぁ。
0798nobodyさん2008/01/22(火) 00:32:15ID:???
Zend Framework使用しているアプリでEclipseにうまく対応できるの?
0799nobodyさん2008/01/23(水) 10:37:16ID:???
Zend使おうと思ってるけど、スレ過疎ってるなぁ・・・
今はもう人気ないのかな?

これってURL直下におかずに、外部から呼び出すタイプでおk?
0800nobodyさん2008/01/23(水) 10:46:23ID:???
高木神のおかげでZFの日本語マニュアルが完璧なので掲示板で聞くことがあまりないし。
0801nobodyさん2008/01/23(水) 10:56:54ID:???
>>800
ちょっと詳しく聞かせてもらおうじゃないか

今ZFダウソして、使ってみようと思うんだが
参考サイトとか何かないのかな
0802nobodyさん2008/01/23(水) 11:04:00ID:???
インスコ出来ないんだったら素直に聞けばいいのに。。。
0803nobodyさん2008/01/23(水) 11:19:24ID:???
インスコのしかた教えてください(´;ω;`)ブワッ
0804nobodyさん2008/01/23(水) 11:39:57ID:???
マニュアル嫁
0805nobodyさん2008/01/23(水) 12:01:02ID:???
>>804
おまいってやつは・・・
0806nobodyさん2008/01/23(水) 12:03:44ID:???
Zend Framework Tutorial Screencasts
http://framework.zend.com/manual/videos

映像付きの解説。英語分からなくても流れくらいは分かるっしょ
0807nobodyさん2008/01/23(水) 13:41:50ID:???
マヌアルより

--------------------------------------------------
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('/path/to/app/controllers');

これは、フロントコントローラのインスタンスとディスパッチを行います。
この結果、アクア本コントローラへリクエストが転送されます。
--------------------------------------------------

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in
C:\xampp\php\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php:198 Stack trace: #0
C:\xampp\php\ZendFramework\library\Zend\Controller\Front.php(929):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1
C:\xampp\php\ZendFramework\library\Zend\Controller\Front.php(233): Zend_Controller_Front->dispatch() #2
C:\xampp\htdocs\Project\ZendTest\index.php(3): Zend_Controller_Front::run('/path/to/app/co...') #3 {main} thrown in
C:\xampp\php\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php on line 198

いきなりこれかよZend死ね
0808nobodyさん2008/01/23(水) 13:56:35ID:???
>>807
いきなりも何もまだ続きがあるだろ
というかクイックスタートの終わりまでくらいは我慢しろよwww
おまえの限界クイック過ぎだろwww
0809nobodyさん2008/01/23(水) 14:24:24ID:???
>>808
ごめ、ちょっと先走った
コントローラー設置してみて、最初の
Zend::loadClass('Zend_Controller_Action');
の部分が「Class not found」になるんだけど、
index.phpでクラスをインクルードしてからコントローラーをインクルードしてるんじゃないの?
htaccessから直接コントローラーを呼び出しているとは思えないし・・・
0810nobodyさん2008/01/23(水) 14:30:11ID:???
>>809
Zendクラスなんてもう無いよ
どこのマニュアルを読んでるんだ?
0811nobodyさん2008/01/23(水) 14:32:17ID:???
>>810
適当に探してブログ見つけて読んでましたorz
記事見ると07/1/13だた・・・

マニュアルは何か飛び飛びでわからないので、
簡単なサンプルを解読していく感じにしているのですが、
そういったサイトを探すので手間取ったうえでやっと見つけた資料なのにorz

0812nobodyさん2008/01/23(水) 14:42:16ID:???
これはひどい
0813nobodyさん2008/01/23(水) 14:47:57ID:???
おk、流れつかんできた!
0814nobodyさん2008/01/23(水) 14:48:33ID:???
>>811
http://framework.zend.com/manual/ja/zend.controller.html
ここ通りやればとりあえずは動くよ
マニュアルわからないとか食わず嫌いして見ない方が回り道
飛び飛びと感じてもある程度全体の概念は先に掴んだほうが良い
0815nobodyさん2008/01/23(水) 14:48:35ID:???
っていっても、マニュアルもZendクラス呼び出してるんだが・・・
http://framework.zend.com/manual/ja/zend.view.html#zend.view.introduction.view
0816nobodyさん2008/01/23(水) 15:01:16ID:???
>>815
そのマニュアルで呼び出してるのって、Zend_Loaderクラスだよ。

>811
つ http://codezine.jp/a/article/aid/1961.aspx?p=1
0817nobodyさん2008/01/23(水) 15:03:12ID:???
>>816
なるほど!
だんだん分かってきた
これ面白いな

もっと遊びつくしてみま
0818nobodyさん2008/01/23(水) 15:07:57ID:???
質問すると>>817と同じ人と思われるかもしれんが・・・。

/Controller/.htaccessで自動的にAction.phpスクリプトを読み込むようにするのってアリかな?
毎回先頭にrequire_onceを記述するのがめんどう
0819nobodyさん2008/01/23(水) 15:44:21ID:???
>>818
Action.phpってZend/Controller/Action.phpのこと?

Zend/Controller/Action.phpはZend/Controller/Dispatcher/Standard.php
でrequire_onceしてるから、コントローラに書かなくてもおk。

Zend/Controller/Action.phpを継承したオレオレ_Controller_Actionクラスだと
require_onceしないとダメだけど。

自分なら.htaccessに書くんじゃなくて、index.phpとかに書くかなぁ。
0820nobodyさん2008/01/23(水) 21:25:58ID:???
だから面倒ならautoload使えと(以下略
0821nobodyさん2008/01/23(水) 21:44:27ID:???
今subversionのやつ見てきたら、Zend_Layoutってのがあったから次のバージョンから追加されるっぽいのかな
0822nobodyさん2008/01/25(金) 11:33:37ID:???
FW語るスレからきました

Zend使ってるんだけど(始めたばかり)
モデルのところで、データベースアクセス関係作って、
必要に応じてコントローラから呼び出す形になるのかな?
入門書買ったけど、その辺が詳しく載ってない
データベースアクセス関係のスクリプトばっかりでどこに保存しとけばいいのかわかんない
0823nobodyさん2008/01/25(金) 21:14:23ID:???
モデルは基本的に好きなようにやれ
0824nobodyさん2008/01/26(土) 16:03:52ID:???
PDTでZF使ってる人いる?
どこで指定すればZFを読み込んでくれるの?
0825nobodyさん2008/01/27(日) 00:12:48ID:???
>>824
includeでできない?
0826nobodyさん2008/01/27(日) 00:36:20ID:???
なんだ、IDEとして互換性があるのかと思っていたけど普通にincludeして実行できるだけなのね・・・。ともあれthx
0827nobodyさん2008/01/27(日) 16:07:19ID:???
>>826
ZendStudio for Eclipseならincludeしなくてもいい。
0828nobodyさん2008/01/29(火) 09:40:07ID:???
>>823
というと、基本的にFrontかコントローラから必要に応じたモデルのみincludeするのかな?
0829nobodyさん2008/01/29(火) 11:01:17ID:???
ふと見たら1.5.0のプレビュー版リリースされてたのね
0830nobodyさん2008/01/29(火) 11:35:06ID:???
PDT使ってるけど、デフォルトでZendFWを使えるように設定とかないかな・・・?
自分でパッケージ作っておくべきか
0831nobodyさん2008/01/30(水) 03:34:39ID:???
>>830
zendstudioだとこんなん
http://gyazo.com/c44d372fa9c49b8f426519bfc8050d58.png
0832nobodyさん2008/01/30(水) 09:50:07ID:???
>>831
便利そう
便利そうなんだけど・・・
高いんだよなorz
0833nobodyさん2008/01/30(水) 12:39:11ID:???
Zend_Mailってマルチバイト対応してないっけ
0834nobodyさん2008/01/30(水) 20:36:56ID:???
>>833
してる
$this->_mail = new Zend_Mail(Zend_Mime::ENCODING_7BIT);
$this->_mail->setBodyText($str,Zend_Mime::ENCODING_7BIT);
0835nobodyさん2008/01/30(水) 20:57:17ID:???
zend_mailって携帯に送っても文字化けしたりしない?
0836nobodyさん2008/01/30(水) 22:07:35ID:???
変な文字コードで送らなければ大丈夫だろ
0837nobodyさん2008/02/01(金) 11:10:58ID:???
>>835
JISで送るといいよ
そこはZendだけじゃなくPHPのmail関数でも一緒
(Zendもmail関数だっけ)

ところで、ディスパッチャ処理で$this->_forward("hoge", "hoge")って、
リダイレクトじゃなく呼び出し?
フロントコントローラ通さずに直接アクション呼び出してると思うんだが・・・
$_POSTデータもそのままだし・・・。
08388372008/02/01(金) 11:12:47ID:???
・・・と、リダイレクトは_redirectがあったのか・・・。
0839nobodyさん2008/02/01(金) 15:42:05ID:???
アクションヘルパーのredirectorもあるでよ
0840nobodyさん2008/02/02(土) 17:13:49ID:???
actionとviewってactionnameActionの代わりにactionNameActionみたいに書けますか?
/actionName でリクエストしても、Zend_View_Interface#renderに全部小文字で渡ってくるぽいので
デフォルトだと無理そうなのですけど、何か設定変えてやる方法ないでしょうか?
0841nobodyさん2008/02/02(土) 17:39:49ID:???
>840
http://framework.zend.com/manual/ja/zend.controller.action.html
> アクションメソッド名が camelCase 方式の場合、 ビュースクリプトのファイル名では
> 単語が '-' で区切られることに注意しましょう。
だから、actionNameActionにすると
ビュースクリプト名はaction-name.phtmlになるけど
ビュースクリプト名もcamel caseにしたいということ?

viewRendererあたりに手を入れる必要があるんじゃないかと思う
コード追っかけてみるか、素直にデフォルトの規約でやるかだな
0842nobodyさん2008/02/02(土) 18:21:28ID:???
あれ、俺の環境では大文字小文字関係なしにテンプレート読んでくれるけど
0843nobodyさん2008/02/02(土) 19:20:48ID:???
そりゃWindowsだからだろ
0844nobodyさん2008/02/02(土) 19:25:23ID:???
そういうわけでなくハイフン区切りにしなくてもということ
0845nobodyさん2008/02/04(月) 14:10:35ID:???
>>841
そう。ソース追ったら、
$this->getViewScript($this->_request->getActionName());
でViewRendererから呼ばれる
Zend_Controller_Action_Helper_ViewRenderer#_translateSpec
でtolowerしてました。Renderer変えないとだめそうです。
/controller-name/action-name (url) -> ControllerName#actionNameAction (controller) -> controller/action-name.php (view)
がZend推奨ぽいですね。

>>842
>>844
そうですね。これドキュメントまちがってますね。
0846nobodyさん2008/02/04(月) 14:14:16ID:???
>>834
> $this->_mail = new Zend_Mail(Zend_Mime::ENCODING_7BIT);
こっちは new Zend_Mail('ISO-2022-JP'); ですよね?
しかし、ヘッダー関連足すときに自分でencodeしないと変なエンコーディングになって面倒・・
0847nobodyさん2008/02/04(月) 22:51:58ID:???
>>846
ああ、ごめん、確かに間違ってたわ
__construct($charset='iso-8859-1')
なのね
0848nobodyさん2008/02/04(月) 22:58:45ID:???
失礼、引数みるとsetBodyTextも2番目はcharsetなので
setBodyText($str,'ISO-2022-JP',Zend_Mime::ENCODING_7BIT);
ですな
まぁラッパークラス作ればエンコーディングの指定は毎度毎度やらないだろうからいいんじゃないかな
0849nobodyさん2008/02/05(火) 13:18:44ID:???
>>845
今度出る1.5では「FooController::CamelCaseAction」が「foo/camel-case.phtml」になるらしい
ttp://tdiary.ishinao.net/20080204.html#p01
0850nobodyさん2008/02/05(火) 15:07:24ID:???
camelcaseの区切りはアンダースコアにして欲しいんだけどな
アンダースコアはpath delimiterに使われてるからか

url: controller/action_name
action: actionName()
view: controller/action_name.phtml

が一番しっくりくるんだけど
0851nobodyさん2008/02/06(水) 12:07:54ID:P8eN/dUP
オプションで変更できればいいんだけどな。
0852nobodyさん2008/02/06(水) 23:02:38ID:???
このフレームワークって
controller/action/引数名/値/引数名/値/
ってリクエストの形式だけど、
controller/action/値/値/
の形式でgetParam(0)とかで引数参照できるようにできないのかね。そっちのほうが好きなんだが。
0853nobodyさん2008/02/07(木) 00:46:59ID:???
>>852
http://framework.zend.com/manual/ja/zend.controller.router.html
Zend_Controller_Router_Rewrite
のあたりと、getParamsを使うと少し幸せになるかもよ
0854nobodyさん2008/02/07(木) 10:19:25ID:???
>>852
デフォルトでできるんだが
むしろ前者のパターンだと相当古いバージョンを使ってると思うが
0855nobodyさん2008/02/07(木) 10:26:05ID:???
デフォでできんの?どうやんの?
0856nobodyさん2008/02/07(木) 11:18:06ID:???
>>855
routerにrouteを追加するだけ
$route = new Zend_Controller_Router_Route(':controller/:action/:id/:id2');
$router->addRoute('two_params', $route);
ていうかマニュアル嫁
0857nobodyさん2008/02/07(木) 23:56:07ID:???
ttp://msdn.microsoft.com/msdnmag/issues/08/01/PHPandIIS7/default.aspx?loc=jp
ZFっぽく、URLパースして特定のメソッドをInvokeMemberするようIIS7モジュールを
ZFのControllerソース見ながら作ろうとして挫折
便利に使えるように、なんだかんだで内部じゃ頑張ってるんだな、ZF
0858nobodyさん2008/02/08(金) 00:12:15ID:???
1.5のPreでても1.5の話題が全然でなくてしょんぼり。
0859nobodyさん2008/02/08(金) 02:27:47ID:kZbVINNL
でも、良いの〜。あたしゲイツ様に捕まってうれしいの〜♪
0860nobodyさん2008/02/08(金) 16:03:42ID:???
Zend_Db使ってDBの行に値を格納するときって、
必ず自分で
class Bugs extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs';
protected $_primary = 'bug_id';
}
みたいに書かなきゃいけないの?
0861nobodyさん2008/02/08(金) 16:43:41ID:???
そんなことないけど?
0862nobodyさん2008/02/08(金) 23:31:33ID:???
>>860
1.5はまだ触っていないけど、1.0.3の話で言うと
テーブル名から機械的に作れないようなクラス名を使いたい時だけ $_nameの明示が必要だよ

$_primaryはキー項目を要求するメソッド、たとえばfindを使いたいときに指定してあげる必要があるよ
0863nobodyさん2008/02/12(火) 10:38:38ID:???
modelsディレクトリの存在って特に意味ないのかな
ただ、そこにスクリプト置くと効率がいいよってな感じと見ておk?
モデルを簡単に呼び出すようなものがあれば便利なんだけどなぁ
0864nobodyさん2008/02/12(火) 11:38:37ID:???
MVCについて勉強するといいよ
0865nobodyさん2008/02/12(火) 11:40:01ID:???
>>864
いや、仕組みは理解できたんだけど、
ZendにはModelをサポートするような機能がないから気になって・・・
結構Modelに関しては放置してるような記事が数点見られたし、どうなのかなと
0866nobodyさん2008/02/12(火) 12:54:34ID:???
Zend_Db_TableとZend_Db周りがあるじゃない
0867nobodyさん2008/02/12(火) 15:16:31ID:???
質問です。
PDO接続で、どうしてもエラーが出るのですが、
The mysql driver is not currently installed'

MySQLは使えるのですが、PDOの接続ができないということでしょうか?
普通のMySQLとして接続する方法とかないのでしょうか
0868nobodyさん2008/02/12(火) 15:33:30ID:???
pdoは入っているけど、pdo_mysqlが入っていないと見た。
0869nobodyさん2008/02/12(火) 15:36:00ID:???
>863
>モデルを簡単に呼び出すようなものがあれば便利

これって例えばどんな感じ?
ただ、ZFのDB関連は比較的プリミティブだとは思う。
0870nobodyさん2008/02/12(火) 15:37:06ID:???
>>868
そのとおり、Pdo_Mysqlが入っていませんでした・・・
Zend_Dbを見ると、Pdo_Mysqlが入っていること前提ということなのでしょうか?
ローカルでできたのにレン鯖でできなかったorz 作り直さなきゃいけないのか・・・
0871nobodyさん2008/02/12(火) 15:48:39ID:???
pdo_mysqlだとレン鯖では難しいかもしれない。ユーザ領域に追加するのが難しい。
サーバがCentOSみたいなパッケージベースでバージョンが分かっていて、
PHPのインクルードパスを変更できるなら、
コンパイル済みのpdo_mysqlパッケージをユーザ領域に展開してインクルードできるかも。
当然、コンパイル環境はないんだよね?
0872nobodyさん2008/02/12(火) 15:50:40ID:???
>>871
当然ないです。
ということは、ZendDbは使えないということで決定でしょうかorz

おとなしくPEARに戻らないとorz
0873nobodyさん2008/02/12(火) 18:17:01ID:???
php5とmysqlサポートしてるのに
pdo_mysqlのドライバが入ってないっていうサーバもアレだな
とりあえずサポートに連絡して
40秒で今からpdo_mysql入れなかったら解約だバカってクレームつけろ

まあライブラリがサポートしてるドライバくらい先に見とけってのもあるけど
mysqliドライバはZend_Dbにあるからmysqliが使えないか調べてみるとか
書き直すくらいなら自分でZend_DbのAPIに合わせて
PHPネイティブのmysqlのfunction使ったドライバ書く方が早いんじゃね
0874nobodyさん2008/02/13(水) 09:17:27ID:???
>>873
有名なさくら鯖様です
0875nobodyさん2008/02/14(木) 02:17:26ID:???
たまたま自分もさくらで試していたけど、Pdo_Mysqlもmysqliも入ってなかったorz
Pdo_Mysqlが入ってる鯖に乗り換えました
0876nobodyさん2008/02/14(木) 09:51:02ID:???
意外とPdo_Mysqlの入ってる鯖って少ないのかな?
だったらDb関係は全てPEARで実装するしかないか・・・
$select->from()みたいな感じの記述方法結構気に入ってたのになー
0877nobodyさん2008/02/14(木) 11:46:52ID:Fq1v3NmX
xrea
0878nobodyさん2008/02/14(木) 14:08:48ID:???
PDOで$select->from()? PDOはプリペアードステートメントじゃねーの?
0879nobodyさん2008/02/14(木) 16:45:46ID:???
何言ってんの?
0880nobodyさん2008/02/14(木) 17:35:10ID:???
あれ?別のアクション呼び出しって$this->_callじゃなかったっけ・・・
0881nobodyさん2008/02/14(木) 21:41:48ID:???
インターフェースとか正直PHPにとってJava真似のカッコつけでしかないよな。
これはインターフェースを使って実装したからうまくいったなんて例あったら教えてくれ。
0882nobodyさん2008/02/14(木) 22:07:34ID:???
いきなりどうしたんだ?
0883nobodyさん2008/02/14(木) 22:32:59ID:???
> これはインターフェースを使って実装したからうまくいったなんて例あったら教えてくれ。

Javaの例がそのままあてはまる。以上。
0884nobodyさん2008/02/14(木) 22:35:21ID:???
> Javaの例がそのままあてはまる。
0885nobodyさん2008/02/14(木) 22:45:12ID:???
>>881
インターフェイスはメソッドを実装せずにそのまま継承するとエラーを出すクラスを表現する糖衣構文。
絶対なくてはならないものじゃないけど、あった方が便利でいいよね。
0886nobodyさん2008/02/14(木) 22:54:53ID:???
それはabstract classじゃないのか
0887nobodyさん2008/02/14(木) 23:08:42ID:???
>>886
abstractはすでにいくつか実装されたメソッドを持ってるけど、interfaceは持ってない。
まあ似たようなもんだけど。

あ、もしかして>>881は全部abstractでいいじゃんって言いたいのか?
0888nobodyさん2008/02/14(木) 23:31:13ID:???
インターフェイスってタイプヒンティングにも使えたっけ?
0889nobodyさん2008/02/14(木) 23:35:13ID:???
もち。
使えなかったらインターフェイスの意味なくね?そうでもない?
0890nobodyさん2008/02/14(木) 23:41:04ID:???
PHPでの例ならZend_View_Interfaceが良い例だと思うよ。

正直JavaやC#やるまでインターフェイスの便利さが理解できんかった。
便利さが実感できるのは厳格な型がある言語とそうでない言語との違いじゃないかと思う。

08918812008/02/15(金) 04:02:49ID:???
>>890
まさにそうだと思う。PHPなんて何でも受け取れるんだからイランと思う。
PHPは方向を見失ってるな。matzは嫌いだが、言っていることは正論だ。
彼のオブジェクト指向に対する考えの深さには驚く。
0892nobodyさん2008/02/15(金) 04:13:23ID:???
ってかrubyも厳格な型がある言語じゃねーだろ
■ このスレッドは過去ログ倉庫に格納されています