ZendFramework Part2
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2008/03/05(水) 23:21:24ID:???http://framework.zend.com/
マニュアル
http://framework.zend.com/manual/ja/
m-takagi ver(↑よりたぶん新しい)
http://www.m-takagi.org/docs/php/zend/
API
http://framework.zend.com/apidoc/core/
0002nobodyさん
2008/03/05(水) 23:25:27ID:???来るべき時が来た。
その名は勇者「Zend Framework」
君は生き残ることができるか!?
0003nobodyさん
2008/03/06(木) 05:21:30ID:???ほんの一部ZF1.0.3本体を弄ったんだよなぁ、どこだったか思い出せん...orz
差分取るしかないか。
0004nobodyさん
2008/03/06(木) 16:16:28ID:???0005nobodyさん
2008/03/06(木) 18:15:35ID:???これってZend_Viewを使うこと限定なのか?
Zend_View使わずSmarty使ってるんだけど、そのままrenderできないのかな
0006nobodyさん
2008/03/06(木) 18:35:53ID:???require_once 'Zend/Form.php';
$form = new Zend_Form;
$form->setAction('/')->setMethod('post');
$form->addElement('text', 'name');
echo $form->render();
出力「error」
00083
2008/03/07(金) 01:17:52ID:???ん? ZFを自分のリポジトリにつっこんで差分取ったり管理しろってことかな?
弄ったのはどこかの正規表現だったかな。
まぁupdateの度にdiffで確認するよりSubversionにつっこんだ方が楽だろうけど、
で、実際はどうする? 俺はZF1.0.3で初めて使ったんだけど、
1.0.3をsvnにつっこんで、branch分けしてそこに俺々修正したものをつっこむ。
1.0.4をtrunkでupdateしてbranch側でmergeって感じになるのかな。
0009nobodyさん
2008/03/07(金) 03:49:03ID:???00103
2008/03/07(金) 04:59:24ID:???そう、俺もそう思う。
弄ったのはバグだろうと思われるところだけ。
どうせそのうち修正されるだろうと思ってたから
ちょっと悩んだんだけど、継承せずに直で弄った。
確かググったら出てくる有名どころのバグだったと思うよ。
だから、修正箇所をちゃんと控えてupdateしたときに確認すればいい程度なんだろうけど、
ZFを初採用してバタバタしてたから控えてなかったのだ(´・ω・`)
0011nobodyさん
2008/03/07(金) 05:00:54ID:???00123
2008/03/07(金) 08:55:10ID:???有名どころって書いたのはmb_encode_mimeheaderが入れる改行だったんだけど、
こちらはZF本体を弄る必要がないね。
ひとつはZF入門本に載っていたZend_Mailのバグなんだけど、
本当にバグなんかな? 1.0.4でも修正されてないし、修正しなくてもよさそうな気もするが、
検証せずにとりあえず適用してる。
あと、Zend_DateのRFC2822の正規表現。これはZFが悪いんじゃなくて
某メール鯖が悪いんだけど、正しく拾えないので悩みつつZF側を修正した。
/**以下チラシの裏
trunkに1.0.3をつっこむ
1.0.3を分岐して俺々修正
trunkに1.0.4をつっこむ
1.0.4を分岐して1.0.3の俺々修正をmerge
ってなかんじでやってみた。
1.0.4つっこんだときに1.0.3との差分を見たけど
1000以上のファイルで修正されてた。
追加されてたのは5ファイルだけ。
**/
0013nobodyさん
2008/03/07(金) 14:48:59ID:???なんとか自前で継承して挙動の変更できないか検討して
止むを得ず本体のコードを変更する場合は
その該当ファイルのみコミットしておくかな、自分なら
rubyは再定義しやすいから
FWの一部分の挙動をちょろっとだけ変えるってのも楽なんだがな
0014nobodyさん
2008/03/07(金) 22:38:40ID:???0015nobodyさん
2008/03/08(土) 00:28:19ID:???framework.zend.com/issues/browse/ZF-1950
00163
2008/03/08(土) 01:56:10ID:???で、例えばZend_Mailのバグフィックスとかデフォルト文字コードをISO2022JPに
変更したMy_MailをZend_Mailから継承して作ったとするでしょ。
当然クライアントコードにはrequire_once 'My/Mail.php'とか new My_Mail() などが
ちりばめられるのだが、将来ZF側でフィックスされたり文字コードもmbstring_language
から自動判別されるようになり、My_Mailはお役ご免になったりしても
クライアントコードをいちいち書き換えたりするのも馬鹿らしいので中身が空のMy_Mailを
引きずることになる。
どうせMy_*を管理しなきゃならんのならZF本体を弄っても手間はあまり変わらないよなぁ。
他の人はどうしているんだろうと悩みつつ、時間がないのもあって前回はZF本体を弄っちゃった。
幸い外からも接続できる鯖を持ってるし、svn+sshで接続可能な様にしているので、
ZF専用のリポジトリを作って管理していけば、出先からでもcheckoutやexportできる。
本来フレームワークを直接弄るなんて邪道なんだろうけど、それはZFの完成度がまだまだ
低いと言うことで納得して、逆にリポジトリを立てることによって、遠慮なしに弄っていけるから
ある意味"すっきり"した感じがする。
0017nobodyさん
2008/03/08(土) 02:28:39ID:???自分の意図してないように変更がかかったらどうすんの?
またFW本体をハックする?
あと、FWがバージョンアップしたら自分のリポジトリで管理しているバージョンと
マージするんよね?そっちの方が手間暇かかりそうな気がする。。。
まぁここらへんは人それぞれなんだろうけど。。。
俺はFW本体はいじらない派。
0018nobodyさん
2008/03/08(土) 02:42:05ID:???00193
2008/03/08(土) 03:17:30ID:???もろに修正箇所が衝突したら手動マージしなきゃならないが、
でなければマージそのものはそんなに手間かからないんじゃ?
と思ってる。
本体を弄らず継承でが王道で、本体を弄ってしまうのは邪道だとは思う。
Zend_Mailのデフォルト文字コードなんてのは、継承で書き換えるのが
どう考えても普通。Smartyなんかも結構弄ったけど、基本的には
継承したり、新たなプラグインやフィルターを書いてた。
でもね... まぁ人柱気分でやってみるよ。
本体再書き換えしなきゃならんときも出てくるだろうけど、
そのうち、拡張は別だが修正は減ってくるだろうと願ってる。
(まだそんなに弄ってないけど、弄りたいところは他にもあったし)
FW使いながら、貧乏コードって言われそうだ(^^;
0020nobodyさん
2008/03/08(土) 03:33:37ID:???0021nobodyさん
2008/03/08(土) 05:32:10ID:???0022nobodyさん
2008/03/11(火) 14:16:57ID:???同じZendからfile_get_contentsで読み込めないの?
0023nobodyさん
2008/03/11(火) 18:55:26ID:???0024nobodyさん
2008/03/11(火) 19:27:58ID:???0025nobodyさん
2008/03/12(水) 03:54:29ID:???0026nobodyさん
2008/03/13(木) 14:50:15ID:???0027nobodyさん
2008/03/13(木) 17:01:18ID:???0028nobodyさん
2008/03/13(木) 18:25:33ID:???対象が違うアクション(管理者向けの編集機能やユーザ向けの閲覧機能)が混在してるコントローラ
は別コントローラとして分けたほうがいいんだろうか
0029nobodyさん
2008/03/18(火) 00:48:46ID:???0030nobodyさん
2008/03/18(火) 01:11:51ID:???ウチが検証と移行を検討できるのはいつになることやら。。
0031nobodyさん
2008/03/18(火) 01:24:23ID:???0032nobodyさん
2008/03/18(火) 01:25:03ID:???全部英語おおおおおおおおおおおおお
書き換わってるうううううううううう
m-takagi・・・がんばって・・・ください・・・応援してます・・・
0033nobodyさん
2008/03/18(火) 01:52:51ID:???多分サイトリニューアル時の作業ミスだろうね。
0034nobodyさん
2008/03/18(火) 23:01:29ID:???0035nobodyさん
2008/03/25(火) 01:22:11ID:???[controller]/fooBar/ってリクエストのとき
以前はfooBarActionメソッドが呼ばれてたんだけど、foobarActionメソッドじゃないと呼んでくれなくなった。
0036nobodyさん
2008/03/25(火) 01:57:20ID:gUsYdsCkその辺は仕様変更された。
よく確認した上で、実装しる。
0037nobodyさん
2008/03/25(火) 02:09:06ID:???0039nobodyさん
2008/03/25(火) 03:36:46ID:???ごめん、悪いけどその辺りの話ってドキュメントのどこに書いてある?
テンプレートがハイフン区切りになったのは知ってたんだが、今回のは初耳で、
http://framework.zend.com/manual/ja/zend.controller.html
http://framework.zend.com/manual/ja/zend.controller.action.html
を見ても書いていなくて困ったんだ。
0040nobodyさん
2008/03/25(火) 04:20:41ID:gUsYdsCkこの辺が参考になるんじゃない?
http://framework.zend.com/manual/ja/zend.controller.migration.html
0041nobodyさん
2008/03/25(火) 21:28:57ID:???ありがとうございます。
しかし
> しかし、PHP の関数名は大文字小文字を区別しないので、URL 自体を camelCasing 形式で書くこともできます。
> PHP では大文字小文字を細かく区別しないため、 これらはどちらも同じメソッドを実行することになります。
などは、ビュースクリプトはダッシュ区切りにすべきものの、アクションリクエストとアクションメソッド名はどちらでも構わないように読み取れる。
どうも腑に落ちないので、ファイルの中を検証してみた。
1.5からは最終的にZend/Controller/Action.php 498行目の
if ($this->getInvokeArg('useCaseSensitiveActions') || in_array($action, get_class_methods($this))) {
でメソッドが存在するか確認されるようになっているが、ここで渡される$actionは既に小文字に正規化されているため、
大文字メソッド名だとin_arrayがfalseになってしまう。
ここのif文は
if ($this->getInvokeArg('useCaseSensitiveActions') || method_exists($this, $action)) {
である方がドキュメントのニュアンスに即しているのでは。
0042nobodyさん
2008/03/27(木) 15:12:28ID:???0043nobodyさん
2008/03/27(木) 17:47:06ID:???何が修正されたんだ
0044nobodyさん
2008/03/27(木) 21:47:41ID:???http://framework.zend.com/issues/secure/IssueNavigator.jspa?reset=true&&pid=10000&fixfor=10174&status=5&sorter/field=issuekey&sorter/order=DESC
0045nobodyさん
2008/03/31(月) 01:42:25ID:DgX3Qd/tなんか使いにくい感じがするんだけど・・・
独自のがいいのかね?
それとも使ってれば慣れる?
ZendController使ってる人
メリットデメリットあれば教えてぷりず!
0046nobodyさん
2008/03/31(月) 01:53:02ID:???0047nobodyさん
2008/03/31(月) 02:03:49ID:???URIとかアプリとしてセキュリティ的にいいのか?とか
Directory構成とか考えるとなんだかなぁと
使ったことないからそんなもんだといわれればそれまで
かもしれませんが
ZF使ったオープンソースとか何かありませんかね?
0048nobodyさん
2008/04/01(火) 00:44:20ID:???あとRequestObject、ReponseObjectあたりが割と使いやすくて気に入ってる
0049nobodyさん
2008/04/01(火) 01:06:58ID:???とても自分でルーティング周りやDispatcher周りを自分で一から実装する気にはなれんw
ま、オレオレFWにZend Frameworkをライブラリの一部として使うのはそれはそれでアリだと思うけど。
0050nobodyさん
2008/04/01(火) 01:08:31ID:???0051nobodyさん
2008/04/01(火) 14:48:39ID:7JV3dDHX0052nobodyさん
2008/04/01(火) 15:09:08ID:???低機能なだけ・・
0053nobodyさん
2008/04/05(土) 21:54:16ID:???ケーキや管弦楽とは別の見方でモノ提供してる感じだね
FW作るための土台みたいな感じ
0054nobodyさん
2008/04/05(土) 22:59:41ID:???0055nobodyさん
2008/04/05(土) 23:17:50ID:???symfonyって打ったほうが早いだろ
0056nobodyさん
2008/04/06(日) 00:02:17ID:???既に結構作られてそう。
0057nobodyさん
2008/04/08(火) 13:18:35ID:???Zend_Form 使ってるけど、速度的に重い気がする。
だから Zend_Cache でキャッシュしてる。
0058nobodyさん
2008/04/11(金) 21:49:28ID:???検索してもサイトによって書いてる事がばらばらだったりで。
ZFにあるinterfaceから継承したsmarty用クラスは作成しました。
ここからなにをすればいいんでしょう?
$opt = array(
'templete_dir' => '../application/views/scripts/index',
'compile_dir' => '../../var/templates_c'
);
$smarty = new Common_View_Smarty(null, $opt);
$smarty->assign("books", "テスト");
$smarty->render("index.tpl");
これがアクション内の記述なんですが、何か変なところはあるでしょうか?
やったことは、
・PHP.iniにsmartyのincludeパスを通す。
・ttp://wadslab.net/2008/03/zend_view_smarty/
を参考にZend_View_Interfaceを実装したCommon_View_Smartyを作成
・index.phpの中身は
Zend_Session::start();
Zend_Controller_Front::getInstance()->setParam('noViewRenderer',true);
Zend_Controller_Front::run('../application/controllers');
これだけ
でIndexController.phpの中のindexActionに↑の奴を書いています。
エラーがでるでもなく、真っ白な何もない画面が表示されてしまいます。
0059nobodyさん
2008/04/11(金) 22:56:44ID:???0060nobodyさん
2008/04/11(金) 23:16:02ID:???画面に何も表示されないので、まずテンプレートファイル自体読み込めてないと思うんですが
$opt = array(
'templete_dir' => '../application/views/scripts/index',
'compile_dir' => '../../var/templates_c'
);
$smarty = new Common_View_Smarty(null, $opt);
$smarty->assign("books", "テスト");
$smarty->render("index.tpl");
この下に
echo 'てすと'
と書くと、てすとだけ表示されます。
なのでこのアクションは呼び出されているけど、上の方の処理が意味をなしてない?ようですが
どこで間違ってるのかが突き止められない状態です。
せめてphpのエラーメッセージがでればまだおいかけられるんですが、一見エラーがないように素通りするので・・・
0061nobodyさん
2008/04/11(金) 23:42:39ID:???ViewRendererに登録してZend_Viewを置き換える方法と
Zend_Viewを無効にしてアクション内でSmartyのrenderメソッドを呼び出す方法の2通りがある。
俺は前者でやっているが、後者でやるならマニュアルの42.3.2.2.にそのまんまの方法が載っているからそれ参考にすればおk。
そのサイトの怪しげな方法を参考にする必要は無い。
強いていうならそれはテンプレートディレクトリが正しく指定されてないと思われ。
0062nobodyさん
2008/04/12(土) 00:11:46ID:???マニュアルのはこれですよね?
一番最初はこれを見てやってたんですが、結局できず色々検索した次第です。
前述しましたが、interfaceを使ってsmarty用の,このマニュアルで言うところのZend_View_Smartyは作成しています。
このマニュアルで言うと、後は
$view = new Zend_View_Smarty();
$view->setScriptPath('/path/to/templates');
$view->book = 'Zend PHP 5 Certification Study Guide';
$view->author = 'Davey Shafik and Ben Ramsey'
$rendered = $view->render('bookinfo.tpl');
これすればいいだけなんですよね?(テンプレートファイルの配置は終わってるとして)
これだとテンプレートファイルのパスは指定していますが、templates_cのパスは指定してませんよね。
なしでもいけるんでしょうか?
このマニュアルのインターフェースを継承したsmarty用のクラスは作成して
マニュアル通り、アクション部分に↑の5行ほどのプログラムを書き、テンプレートファイルも適宜設置済み。
で実行してもやはり真っ白なんですが、何かが足りないんでしょうか。
テンプレートディレクトリが間違ってるかもしれないと、何十通りか考えられる全てパスは試してみましたが、やはり無理でした。
0063nobodyさん
2008/04/12(土) 00:33:44ID:???0064nobodyさん
2008/04/12(土) 00:40:04ID:???は設定済みです。
なのにエラーが出ない状態です。
0065nobodyさん
2008/04/12(土) 00:45:03ID:???みたいなところがおかしいと真っ白になるよね
0066nobodyさん
2008/04/12(土) 01:15:36ID:???0067nobodyさん
2008/04/12(土) 01:17:28ID:???ViewRendererに登録しないでやるんだったら、自分でZend_Controller_Response_HttpのsetBody()に登録せんと。
・コントローラ
$this->_view = new Zend_View_Smarty();
$this->_view->setScriptPath('/path/to/templates');
$this->_view->book = 'Zend PHP 5 Certification Study Guide';
$this->_view->author = 'Davey Shafik and Ben Ramsey'
・コントローラのpostDispatch()にこんな感じで書く。
$rendered = $view->render('bookinfo.tpl');
$this->getResponse()
->setBody($this->view->render($rendered));
こんな感じでどう?
0068nobodyさん
2008/04/12(土) 01:20:50ID:???$rendered = $view->render('bookinfo.tpl');
↓
$rendered = $this->_view->render('bookinfo.tpl');
0069nobodyさん
2008/04/12(土) 01:27:39ID:???0070nobodyさん
2008/04/12(土) 02:17:04ID:vLVKIeUG//Zend_Controller_Front::run('../application/controllers');
$front = Zend_Controller_Front::getInstance();
$front->addControllerDirectory('../application/controllers');
$front->throwExceptions(true);
try {
$front->dispatch();
} catch(Exception $e) {
echo nl2br($e->__toString());
}
0071nobodyさん
2008/04/12(土) 09:16:17ID:???0072nobodyさん
2008/04/12(土) 15:22:15ID:???はい、使えています。
>>67
参考に色々やってみたら、少し進んだような手応えがありました。
テンプレートの読み込みまではいったようです。
ただ、テンプレートの中に{$test}のようなsmartyタグを書くとエラーが出ます。
一切タグのない純粋htmlを読み込んでrenderするだけならできています。
テンプレートの中にタグを埋め込むと
Fatal error: Smarty error: [in index.tpl line 6]: [plugin] modifier 'sanitize' is not implemented (core.load_plugins.php, line 118) in
ライブラリのパス Smarty.class.php on line 1092
というエラーがでてしまいます。
恐らくこれを解決すれば表示されるのではないかと思いますが、エラーで検索してみてもこれといった解決法が見つかりませんでした。
in index.tpl line 6
この行に{$book_name}のようなタグがあります。
0073nobodyさん
2008/04/12(土) 15:57:34ID:???何をやったの?
> sanitize
カスタム関数のsanitizeファイルが無いんでしょ。
0074nobodyさん
2008/04/12(土) 15:59:52ID:???Zendのオフィシャルじゃなくて、少し改良したらしい他のサイトの継承クラス使ってたのが原因でした。
Zendオフィシャルのにしたらエラーは出なくなりましたが、表示はやはりでませんでした。
テンプレートには{$book_name} が埋め込んであります。
実行すると、コンパイル済みディレクトリにファイルが出来てそのタグを埋め込んだ部分が
<?php echo $this->_tpl_vars['book_name']; ?>
となっていました。
そのファイルではそうなっているんですが、Webでアクセスするとその部分が綺麗さっぱり消え去ってしまっています。
そのファイルのタグ該当部分の違いですが
テンプレファイル:{$book_name}
コンパイルファイル:<?php echo $this->_tpl_vars['book_name']; ?>
Webでアクセスしたページのソース:なにもなし
こんな状態です。
0075nobodyさん
2008/04/13(日) 17:59:08ID:???book_nameに値が入ってないんじゃね
0077nobodyさん
2008/04/22(火) 23:30:49ID:???すげーZF好きになった。
ZFの方が記述が納得しやすいと思う。
0078nobodyさん
2008/04/23(水) 00:19:31ID:???0079nobodyさん
2008/04/23(水) 00:22:18ID:???特にとんがった工夫も特徴もない標準的な実装がZF
0080nobodyさん
2008/04/23(水) 11:57:54ID:???0081nobodyさん
2008/04/23(水) 20:59:08ID:???と思ってたら本当にやりやがった。
マジかよw
な事になると思うよ。
Zendはいつもそうだもの。
0082nobodyさん
2008/04/23(水) 21:23:45ID:???マジかよw
0083nobodyさん
2008/04/26(土) 02:06:01ID:5isAEf4Oなんででしょう?
0084nobodyさん
2008/04/26(土) 02:15:12ID:???0085nobodyさん
2008/04/26(土) 03:22:30ID:???0086nobodyさん
2008/04/26(土) 03:46:35ID:faNVTaZiとすると、Zend_Date_Exceptionが1018行目から飛んできます。
第一引数に以下のような配列を渡すと正常にインスタンスが生成できます。
(※定数START_TMEの中身はtime()の戻り値です)
$dateArr = array(
'year' => date("Y", START_TIME),
'month' => date("m", START_TIME),
'day' => date("d", START_TIME),
'hour' => date("H", START_TIME),
'minutes' => date("i", START_TIME),
'second' => date("s", START_TIME));
Zend_Dateの199行目の以下のメソッドの戻り値がタイムスタンプでるので、
その後の処理で例外が飛んでいるのは何となく分かりました。
(以下の後にコールされるsetTimeZone()の中で、timezone_open($zone)で$zoneがintのタイムスタンプなのでこけているようです。)
$zone = $this->getTimezoneFromString($date);
リファレンスによると、引数なしでコールした場合は、
勝手に'now'なインスタンスが生成されるようなのですが、
同じような現象が起こった方はいらっしゃいますでしょうか。。
Zend_Dateのバージョン記述は以下です。
@version $Id: Date.php 8943 2008-03-20 21:43:37Z thomas $
これって既知のバグなのでしょうか。
それともこちらの何がしかの設定の問題なのでしょうか。。
事前にdate_default_timezone_set('Asia/Tokyo');は行っています。
0087nobodyさん
2008/04/26(土) 04:05:06ID:???008886
2008/04/26(土) 04:41:19ID:???こんなです。
<?php
define('START_TIME', time());
define('START_DATE', date("Y/m/d H:i:s", START_TIME));
define('APP_ROOT_DIR', dirname(dirname(dirname(__FILE__))));
define('DIR_SEP', DIRECTORY_SEPARATOR);
define('APP_LIB_DIR', APP_ROOT_DIR . DIR_SEP . 'library');
error_reporting(E_ALL);
set_include_path(APP_LIB_DIR . PATH_SEPARATOR . get_include_path());
date_default_timezone_set('Asia/Tokyo');
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
set_error_handler(array('My_ErrorHandler', 'userErrorHandler'));
$date = new Zend_Date();
008986
2008/04/26(土) 04:43:14ID:???今気がつきましたが、set_error_handlerの前でnew Zend_Date()だと、例外が飛んできません(正常にインスタンス生成できる)
0090nobodyさん
2008/04/26(土) 04:48:52ID:???009286
2008/04/26(土) 05:24:31ID:???すみません。自己解決しました。
初めの説明がちょっとおかしかったりしてるので補足します。
Zend_DateObjectの1016行目で、(ここ最初にちゃんといえてなかったです)
if (!@timezone_open($zone)) {
となっていますが、このZend_Dateのコンストラクタの第一引数がnullだと、
上記の$zoneがintのタイムスタンプで入ってきます。
そうすると、timezone_open()はタイムゾーン文字列が渡されることを期待しているので、
E_WARNINGを発しますが、@で抑制されます。(通常は。)
しかし、独自のエラーハンドラをすべてのエラーレベルに対して設定していて、
そのハンドラの中で@付きのエラー(ハンドラ内でのerror_reporting()の戻り値が0の場合)に対して適切な処理を行っていないと、
本来の@によるエラー抑制は無視され、処理が停止します。
このためnew Zend_Date(パラメータなし)がこけていました。
これは、Zend_Loaderの160行目でもおきます。。
(独自エラーハンドラのせいで@fopen()の@が効かないので)
E_WARNINGに対しても独自のエラーハンドラを適用している場合は、ZFでは色々と気をつけないといけないみたいです。
以上、お騒がせしました。
0093nobodyさん
2008/04/26(土) 13:15:49ID:???error_reportingのチェックは必須
ZFとかに限ったことじゃないぜ
0094nobodyさん
2008/04/26(土) 21:29:22ID:???Zend_Loaderの160行目の fopenの@は いろいろな問題を引き起こしているわけだけれど、、
さまざまなモジュールとの絡み合っている問題が多くて、どうしたものか悩んでます
http://framework.zend.com/issues/browse/ZF-2985
009592
2008/04/27(日) 06:13:29ID:???これじゃだめなんですかね?
自分は↓みたいにしてます。(Zend_Loaderそのものを)
// if (!$fh = @fopen($filename, 'r', true)) {
// return false;
// }
// return true;
add> clearstatcache();
add>
add> if ( is_readable($filename) ) {
add> return true;
add> }
add> $include_path = get_include_path();
add> $path_list = explode(PATH_SEPARATOR, $include_path);
add>
add> foreach ( $path_list as $path ) {
add> $fullpath = $path . DIRECTORY_SEPARATOR . $filename;
add>
add> if ( is_readable($fullpath) ) {
add> return true;
add> break;
add> }
add> }
add> return false;
009694
2008/04/27(日) 16:07:42ID:???fopenはinclude_pathを考慮してファイル取得できるのに、file_existsはinclude_pathを考慮できないのがデメリットなのだそうです
0097nobodyさん
2008/04/28(月) 10:22:32ID:zm3zzhzx0098nobodyさん
2008/04/30(水) 13:59:47ID:???http://FQDN/controller/01
Actionメソッドの定義の仕方がわからない・・・orz
0099nobodyさん
2008/04/30(水) 14:48:12ID:???actionメソッド名は適当につけてroutingで変えればいい
0100nobodyさん
2008/04/30(水) 17:55:35ID:???アダプタはPdo_Pgsql。
0101nobodyさん
2008/04/30(水) 18:12:00ID:???0102nobodyさん
2008/04/30(水) 18:27:25ID:???Zend_Db_Statement_Pdo::fetch() が、 PDOStatement::fetch() のラッパーになっていて、
PDOStatement::fetch()のリファレンスには
「スクロール可能なカーソルの場合にoffset指定が扱える」的な事が書かれているのです。
スクロール可能なカーソルを要求するには、
PDOStatement::prepare() の時点でdriver_optionsを渡す必要があるっぽいのですが、
Zend_Db_Adapter::prepare() 経由でdriver_optionsを渡す事が出来なくて・・・
結果的にoffsetが使えなくなってるのかなと、思った次第。
うーん・・・
0103nobodyさん
2008/04/30(水) 18:57:56ID:???http://bugs.php.net/bug.php?id=37340&edit=1
0104nobodyさん
2008/05/01(木) 10:57:14ID:???cannot acquire it though I want to acquire the offset of the specified
cursor.
and, fetch() is next offset acquired when acquiring it.
ってかいてあるね。
0105nobodyさん
2008/05/01(木) 19:46:46ID:???Zend/Validate/EmailAddress.php
の216のatextに\x2eを追加したらOKだが、本末転倒か。
0106nobodyさん
2008/05/01(木) 20:30:50ID:???0107nobodyさん
2008/05/02(金) 17:39:15ID:???0108nobodyさん
2008/05/02(金) 23:15:40ID:???0109nobodyさん
2008/05/03(土) 00:45:54ID:???0110nobodyさん
2008/05/03(土) 13:53:26ID:K4MBJC9rCGIモードで動きますん?
0111nobodyさん
2008/05/03(土) 14:10:15ID:???0112nobodyさん
2008/05/04(日) 00:13:53ID:didjFSw20113nobodyさん
2008/05/04(日) 07:48:44ID:???を使った時に、
プレースホルダに入れる値をクォートしたくないんだけど、
Zend_Db_Expr型にしてもクォートされてしまうのは仕様?
回避策はある?
例)
$param => array('param' => new Zend_Db_Expr('true'));
$db->query("SELECT * FROM hoge WHERE :param", $param);
生成されるクエリ
SELECT * FROM hoge WHERE 'true';
期待するクエリ
SELECT * FROM hoge WHERE true;
0114nobodyさん
2008/05/04(日) 17:48:43ID:???Zend_Dbのプレースホルダは確か、プレースホルダに対応して無いDBでも
プレースホルダがあるかのごとく使えるように作られてるから、
その関係でクォート掛かるんじゃないかな。
0115nobodyさん
2008/05/07(水) 03:55:17ID:???0116nobodyさん
2008/05/07(水) 05:02:51ID:???0117nobodyさん
2008/05/07(水) 14:14:51ID:???<?php echo $this->layout()->content ?>
これだとなんか綺麗じゃないんだよね
ショートタグあんまり使いたくないけど。
0118nobodyさん
2008/05/07(水) 17:30:34ID:???0119nobodyさん
2008/05/07(水) 17:39:51ID:???0120nobodyさん
2008/05/07(水) 20:36:27ID:???smartyっていうかテンプレートエンジンあんまり使いたくない
0121nobodyさん
2008/05/07(水) 20:55:26ID:???0122nobodyさん
2008/05/07(水) 21:26:31ID:???0123nobodyさん
2008/05/07(水) 23:39:38ID:???Smarty使って2、3回仕事をこなせば、もうSmarty無しでは生きられない体になるぜ。
今ではテンプレートエンジン否定派は、ただの初心者にしか思えないww
0124nobodyさん
2008/05/07(水) 23:58:04ID:???なんとなくだ。
0125nobodyさん
2008/05/08(木) 00:05:51ID:???0126nobodyさん
2008/05/08(木) 00:30:38ID:???<php echo $hoge; ?>とか一々毎回同じ様な事を長く書くのが嫌なんだろうけど
同じ様な事を書くって事は、自動化できるっつー事でもある。
0128nobodyさん
2008/05/08(木) 08:15:42ID:???マクロで自動化とか初心者の発想すぎるだろw
「やっぱり使えねぇわw」とあざ笑う目的でもいいから、一度Smartyあたり使ってみなされ。
デメリットは、学習コストくらいだよ。
0129nobodyさん
2008/05/08(木) 10:11:06ID:???【PHP】 Smarty 隔離スレ 【テンプレート】
http://pc11.2ch.net/test/read.cgi/php/1201879269/
0130nobodyさん
2008/05/08(木) 14:36:40ID:???index.phpに
require '../application/bootstrap.php'
ってのを見かけるんだけど、DocumentRootから見えないようにしてるだけでindexに書いても同じこと?
0132nobodyさん
2008/05/08(木) 18:42:27ID:???applicationrディレクトリ内で全ての処理を完結出来る。
bootstrap.phpを基点にファイルパスを管理しておけば、
設置場所が変わったときに最小限の修正で済む。
というのがメリットなんじゃないかな。
0133nobodyさん
2008/05/08(木) 23:32:34ID:936RkXZF0134nobodyさん
2008/05/08(木) 23:33:19ID:???そんなトリッキーなルーティングなんてする人少ないんだから、
FWとしては解りやすくシンプルな実装でいい気がする。
0135nobodyさん
2008/05/08(木) 23:53:15ID:???Routerのモジュール機能は使わなくて良い
RouteのStaticとRegexも使わなくて良い
0137nobodyさん
2008/05/09(金) 16:00:24ID:???navとかってどこで定義されてるの?
0140137
2008/05/09(金) 16:37:49ID:???最初からあるのはcontentだけで、navとかsidebarとかはコントローラーで
$response = $this->getResponse();
$response->insert('sidebar', $this->view->render('sidebar.phtml'));
とかしないといけないのか?
0141nobodyさん
2008/05/09(金) 16:38:17ID:???みたいなところ見てみたら?
多分そこらへん
0142nobodyさん
2008/05/10(土) 13:15:55ID:vET5c+hoZendFrameworkに最近興味をもったんですが、これを使ってできるというPDFの出力は
・完全に日本語対応していますか?
・背景(テンプレートのJPGとか)と表(プログラムに応じて出力)を組み合わせて
書き出すことはできますか?
・どこかの企業のロゴが刷り込まれたりしませんか?
以上3点について教えて欲しいです
もしこの機能を使っている方がいたら、困ってる点などあれば教えてください。
自分でも調べたんですが、本自体少ないし良くわかりませんでした お願いします
0143nobodyさん
2008/05/10(土) 13:26:04ID:???ZendFreamwork1.5で日本語対応しました
言ってることはたぶん実現できるはずです
どこかの企業ロゴが云々のことは知りません
でもそんなの出てたら誰も使わないよねw
0144nobodyさん
2008/05/10(土) 13:29:59ID:vET5c+hoおお、お返事ありがとうございます すごく使いたくなりましたw
pearでPDF書き出す機能があって使おうと思ってたんですが、
そのモジュール作った企業のロゴが入って参ってたんです
ほんとにありがとうございました!
0145nobodyさん
2008/05/10(土) 13:47:19ID:???0146nobodyさん
2008/05/10(土) 16:28:30ID:???ゴールデンウィークは30度近くいったと思ったら。
0147nobodyさん
2008/05/11(日) 02:21:42ID:???しかし久々にさわったらまた随分ポリシー変わったね。毎回思うが。
>132
開発している内にindex.php上のbootstrapの記述が結局数十行とかになって、
超・汚くなるし危ないんだよね。
それに対応するbootstrap.phpが推奨になるまで2年(もっと?)か。。。
0148nobodyさん
2008/05/13(火) 05:09:01ID:???シンプルな実装なので基底クラス郡としては強力だが、制作効率に反映されるまで時間がかかる印象。
フレームワークを実装する為のフレームワーク/ライブラリ郡って感じかねぇ・・・
現時点ではマルチバイト系全般の処理が甘いのが痛い。
総評:今後に期待。コーディングスタイルは好みなので支持して行きたい。
0149nobodyさん
2008/05/13(火) 12:21:40ID:???0150nobodyさん
2008/05/13(火) 21:26:22ID:???0151nobodyさん
2008/05/13(火) 21:38:51ID:???やり方がわからねぇ。
validateインクルードしないでmb関数直接書く。
全部のクラスに凄い親切にコメント書かれまくってるけど、
書かれすぎてて読みきれない。
コードの2,3倍コメントある気がする。
0152nobodyさん
2008/05/13(火) 23:21:24ID:???マニュアルとコード見ても分かんないの?
0153nobodyさん
2008/05/13(火) 23:25:50ID:???複雑になってたり設定が多かったり
ラッパーやビルトインの上書きを書いてる時点で
なんかしんどくなってくるねZFは
色々できるのは有り難いけど
デフォルトで一通り全部フルスタックな状態にしておいてくれて
そこからカスタマイズしたいやつは
デフォルトを取り除いてカスタマイズしていく形にして欲しいよ
デフォルトではとりあえず色々なもん自前で乗せてかないと
そこかしこで何かしら足りないっつーのは面倒過ぎる
エラーハンドラプラグインがデフォルトでついてるのに
そのエラーハンドラは自前で書かなきゃエラーをハンドルしないのかよ
おまえはどんだけツンデレなんだとしばき倒したい
マシューちゃんもうZend_Controllerはオナニーの域だよ
素直に作ってくれよあんた綺麗なコード書くんだからさ
全土フレームワークのコードは大好きだけど
実用的さの欠けっぷりは半端ないよ
ここを見てるPHPのエロい人がいたらそう伝えてよ
僕はこのオナニーコードの断片で昇天して
にちゃんねるに便所の落書きする事くらいしかできないよ
I love Zend Framwork!! I love PHP!!
0154nobodyさん
2008/05/13(火) 23:36:00ID:???俺のコード見たらお漏らしするな
0157nobodyさん
2008/05/14(水) 17:07:05ID:fprIBGJx0158nobodyさん
2008/05/14(水) 18:48:31ID:/iZUMp8N死んだほうがいい
0159nobodyさん
2008/05/14(水) 22:46:18ID:???同意。
Zend_Dbの足りなさ過ぎにはずっこけたというかPDOで十分というか中途半端なPDOラッパーなぞいらん。
0160nobodyさん
2008/05/14(水) 23:20:22ID:???0161nobodyさん
2008/05/14(水) 23:55:26ID:???0162nobodyさん
2008/05/14(水) 23:58:10ID:???0163nobodyさん
2008/05/15(木) 19:02:20ID:???0164nobodyさん
2008/05/15(木) 19:14:46ID:???ちゃんと実装されてリリースされたら
ActiveRecordパターンでまともな実装のORMが出ると思う
0165nobodyさん
2008/05/15(木) 19:55:57ID:???みたいにごちゃごちゃ言ってねーで、5.0で実装しとけっつー話だわな。
0166nobodyさん
2008/05/15(木) 20:29:48ID:???結局5.0のリリースで見送ったもののツケが回ってきてる感じだな
その辺りとクロージャのパッチさっさと取り入れてくれりゃ
各FWも随分すっきりした実装になりそうなのにな
今のPHPの実装でFW書く人はほんとマゾ過ぎる
0167nobodyさん
2008/05/16(金) 11:18:11ID:???0169nobodyさん
2008/05/17(土) 01:58:07ID:???0170nobodyさん
2008/05/17(土) 03:56:33ID:???0171nobodyさん
2008/05/17(土) 13:25:41ID:???0172nobodyさん
2008/05/17(土) 13:28:53ID:???0173nobodyさん
2008/05/18(日) 20:51:12ID:???0174nobodyさん
2008/05/21(水) 02:55:52ID:???0175nobodyさん
2008/05/21(水) 05:22:02ID:???0176nobodyさん
2008/05/21(水) 14:24:36ID:???0177nobodyさん
2008/05/21(水) 14:31:27ID:LYIqFUi60178nobodyさん
2008/05/21(水) 16:30:45ID:???毎回書くのがめんどくさいです。
なのであらかじめ2つのphtmlファイル(ヘッドとフッター)を用意してページをrenderする前後に呼び出したいのですがどうすればいいでしょうか?
$view = new Zend_View();
echo $view->render("/var/hoge/views/design/top.phtml");
echo $view->render("/var/hoge/views/index/hoge.phtml");
echo $view->render("/var/hoge/views/design/footer.phtml");
こんな書き方でできるかと思ったのですがエラーになります。
0179nobodyさん
2008/05/21(水) 20:13:42ID:???0180nobodyさん
2008/05/22(木) 00:28:27ID:???microsoftはやだな。オラクルも
0181nobodyさん
2008/05/22(木) 00:38:39ID:???PHP本体はな……
オープンソースとはいえ、≒Zendな訳でしょ
0182nobodyさん
2008/05/22(木) 01:10:22ID:???Zend時代よりも大幅な開発力アップになったりしてw
0183nobodyさん
2008/05/22(木) 01:20:40ID:???0184nobodyさん
2008/05/22(木) 01:22:23ID:???0185nobodyさん
2008/05/22(木) 01:26:46ID:???「Zend公式」という強みしかない糞FWが生き残るわけねーじゃん
「Zend公式」の印籠をもってしてもメインストリームになってないし
0186nobodyさん
2008/05/22(木) 01:35:43ID:???ヘタに主流作れないのでフレームワークのためのフレームワーク的なモンしか提案できない
言語本体から切り離した地盤固めの試みなんじゃねえの
0187nobodyさん
2008/05/22(木) 01:51:36ID:???PHP&ZendFrameworkごとMSとかに買収された方がPHPの発展になるんじゃねーの?
Visual PHP.net とか普通に期待しちゃう。
0188nobodyさん
2008/05/22(木) 01:56:06ID:???そしたら事実上脂肪
0189nobodyさん
2008/05/22(木) 01:56:49ID:???元ネタによるとyahooに買われても、いきつく先はMSだけどなw
http://jp.techcrunch.com/archives/20080519job-cuts-at-php-startup-zend-could-be-aimed-with-an-eye-towards-a-sale/
0191nobodyさん
2008/05/22(木) 03:20:08ID:???googleはpythonだろうけど
0192nobodyさん
2008/05/22(木) 03:25:14ID:???0193nobodyさん
2008/05/22(木) 03:41:32ID:???0194nobodyさん
2008/05/22(木) 06:49:57ID:???みんなが幸せになるとは思うけどな
0196nobodyさん
2008/05/22(木) 17:25:29ID:???0197nobodyさん
2008/05/22(木) 17:25:59ID:???0198nobodyさん
2008/05/22(木) 19:55:35ID:3xiPTBYp/module1/module2/controller/action/
setControllerDirectory()ではモジュール名に対してコントローラディレクトリを指定すると思うので、
ネストする場合には
"module1"=>"/path/to/controller"
とするしかできないと思います。
ちなみに無謀なチャレンジをしてみましたが
"module1/module2"=>"/path/to/controller"
Module2Controllerを読もうとしてエラーになってしまったようです。
当方女子高生です。
よろしくお願いします。
0199nobodyさん
2008/05/22(木) 20:44:04ID:???0200nobodyさん
2008/05/22(木) 21:35:28ID:???無職だけど、モジュール自体をネストしなくても
/foo/bar/:controller/:action で module1 のディレクトリに対してマッピングすれば良い
Routerのモジュール機能でどうこうするよりも
routerのマッピングを変えた方がわかりやすいし変更も楽
0201nobodyさん
2008/05/22(木) 21:56:47ID:???0203nobodyさん
2008/05/23(金) 00:56:14ID:???0204198
2008/05/23(金) 02:08:23ID:???モジュールをネストする必要と言うよりは、
クライアントからのパスの指定があったからという理由です。
マッピングを設定できるというのは知りませんでした。
>>200の方のいうようにやってみたいと思います。
どうもありがとうございました。
実は女子高生と言うのは釣りです。
どうもすいませんでした。
0205nobodyさん
2008/05/23(金) 03:07:53ID:???↓
モジュールをネストしよう!
って発想になるのがなかなかエクセレントだな。
0206nobodyさん
2008/05/23(金) 03:08:05ID:???0207nobodyさん
2008/05/23(金) 03:32:17ID:???0208nobodyさん
2008/05/23(金) 04:03:46ID:???0209nobodyさん
2008/05/23(金) 04:19:20ID:???0210nobodyさん
2008/05/23(金) 12:21:01ID:???相対パスだと意図したとおり表示されますが、汎用性が低くなってしまいます。
define('ROOT_DIR',dirname(dirname(__FILE__))."/");
$this->view->render(ROOT_DIR."apps/layouts/template.phtml");
エラーになる
何かいい方法はないでしょうか?
0211nobodyさん
2008/05/23(金) 12:39:44ID:???0212nobodyさん
2008/05/23(金) 12:49:52ID:???テンプレートがまとまって入っているスクリプトパスを
viewに設定してそのスクリプトパスからの相対パスを指定して
テンプレートを読み込んで使うっていうものだから
絶対パスで扱えないから汎用性が低いってのはちょっと違和感が
まあ例外的に絶対パスで指定したい時もあるし
絶対パスでそのまま扱えるオプションやメソッドがあってもいいとは思うよ
(railsのactionviewにもそういうオプションはある)
それはZend_View_Abstractを継承するなりして
それ用のメソッドなりオプションを用意してやれば良いと思う
0213210
2008/05/23(金) 14:49:52ID:???>テンプレートがまとまって入っているスクリプトパスをviewに設定してそのスクリプトパスからの相対パス
たとえば以下のように設定して
Zend_layout::startMvc(array('layoutPath'=>'/apps/layouts'));
/apps/layoutsからの相対パスで設定可能なら管理上、便利なのですが、(個人的に、ですが)
setControllerDirectory('apps/controllers')
で設定したファイルパスからの相対パスのようです。
レイアウトはレイアウトで管理したいのでなんか気持ち悪いです。
'layoutPath'で管理する方法はないでしょうか?
0214nobodyさん
2008/05/23(金) 19:15:50ID:???そのlayoutPathで指定してる '/apps/layouts' っていう
絶対パスはちゃんと合ってる?ルート直下になってるけど
そのlayoutPathから相対で指定できなかったら
個人的にも何もlayoutPath設定してる意味がないと思うんだけど、、、
少なくともcontroller directoryからの相対指定ってのは明らかにおかしいし
自分なら何か設定が間違ってると考えるけど
0215nobodyさん
2008/05/23(金) 22:57:34ID:???0216nobodyさん
2008/05/24(土) 01:21:29ID:???0217nobodyさん
2008/05/27(火) 00:22:51ID:???smartyでいうところのprefilterみたいな機能です。
0218nobodyさん
2008/05/27(火) 11:53:14ID:???example.com/index/hoge/id/12345/
だと長すぎるので
example.com/id12345/
や
example.com/12345/
でできればと思います。
内部的に第二パラメータ(id([0-9]+),([0-9]+))がある場合は
index/hoge/id/12345/として扱うようにしたいのです。
0219nobodyさん
2008/05/27(火) 12:22:10ID:???0220nobodyさん
2008/05/27(火) 12:25:14ID:???0221nobodyさん
2008/05/27(火) 13:01:28ID:???個人的にrouterは冗長で読みにくいので、標準のルーティング以外はmod_rewriteを使っている。
>>218
普通にやればスンナリ出来る事なのに、
詳細を調べないと実現出来ないような実装な時点で、router使うやつはただのマゾ。
0222nobodyさん
2008/05/27(火) 13:26:50ID:???俺はErrorControllerいじって実装してたわ。
0223217
2008/05/27(火) 17:42:54ID:???これができないと携帯用の出力ができません、、、
Zend Frameworkでは携帯サイトは作れないですか?
お願いいたしますm(_ _)m
0224nobodyさん
2008/05/27(火) 18:04:06ID:???自分はSmarty+ZFで対応してるけど。
>>出力ファイルの文字コードのみ変換したいのですができないでしょうか?
ZFのView実装見てないから何とも言えないけど、ob_start()でバッファリングして、最後に一括変換すればいけない?
0225nobodyさん
2008/05/28(水) 15:54:55ID:GUHYGw3g0226nobodyさん
2008/05/28(水) 19:28:44ID:???0227nobodyさん
2008/05/28(水) 19:34:29ID:???0228nobodyさん
2008/05/28(水) 22:32:55ID:???記述と動作が追いにくいので、FWの利点である「FWを知っていれば、他人のコードも理解しやすい」というメリットが薄い上に、
シンプルな動作を実装するのに、複雑なコードが必要になるとかww
0229nobodyさん
2008/05/28(水) 22:41:53ID:???0230nobodyさん
2008/05/29(木) 01:54:23ID:???ZFの想定に近いことをやろうとしているかの見極めどころの話だな
0231nobodyさん
2008/05/29(木) 02:03:36ID:???未だにだっさいURLなの?
0232nobodyさん
2008/05/29(木) 02:29:11ID:???routerの冗長でだっさいコーディングに疑問を持たない人ってなんなの?
0233nobodyさん
2008/05/29(木) 02:32:27ID:???0235nobodyさん
2008/05/29(木) 02:57:54ID:???では他にどんなソリューションがあるのか教えて頂けますか?
物知りさん
0236nobodyさん
2008/05/29(木) 13:26:28ID:???それってデフォルトのルーティング以外のを
デフォルトルーティングに沿うように変換するってこと?
それは明らかに無駄だし、Router無しだと
アクションからURLを解決するような逆変換もできない
URLをどうこうだけじゃなく
URLとコントローラをマッピングすることがRouterの役目
Routerの設定が冗長ってのも微妙
実際のところRewriteRouterを使って
デフォルトルーティング以外を追加するくらいのもんだと思うんだけど
あれで冗長ならRouter的な概念を持つもの何も使えないんじゃない?
設定が冗長だと感じるならsymfonyみたいに
マッピングをyamlで設定できるようにラップするといい
まあそれでも冗長と感じてよりシンプルな方法があるなら
俺も正直教えて欲しい
0237nobodyさん
2008/05/29(木) 13:32:19ID:???とするための設定教えちくりくり
0238nobodyさん
2008/05/29(木) 13:40:21ID:???ttp://framework.zend.com/manual/ja/zend.controller.router.html
0240nobodyさん
2008/06/01(日) 07:16:58ID:???以下のように、設定したいのですがどう書いてよいのやら・・・
/test → IndexController::TestAction();
/test/ → TestController::IndexAction();
0241nobodyさん
2008/06/02(月) 01:35:52ID:dJEt55md0243nobodyさん
2008/06/02(月) 03:05:27ID:???zend使ったことないからしらんけど
0244nobodyさん
2008/06/02(月) 03:33:35ID:???デフォルトでは
/module
/module/
/module/action
と認識されてしまうんですよ。
これを
/action
/module/
/module/action
と設定したいのですお。
0245nobodyさん
2008/06/02(月) 03:40:15ID:???/hoge
と指定した時に
/default/hoge
に変換する等、ひとつひとつ設定するのが普通
0246nobodyさん
2008/06/02(月) 03:45:27ID:???0247nobodyさん
2008/06/12(木) 14:02:23ID:Mes6XuGv0248nobodyさん
2008/06/13(金) 18:48:28ID:/Epk/r4F0249nobodyさん
2008/06/13(金) 19:54:57ID:???0250nobodyさん
2008/06/13(金) 20:12:31ID:???0251nobodyさん
2008/06/14(土) 04:30:28ID:???なぜ「ある」と思ったんだい?
0252nobodyさん
2008/06/14(土) 04:37:28ID:???そもそもfactoryパターンの意味も分かってないっぽい
0253nobodyさん
2008/06/14(土) 04:46:12ID:???Grepすりゃ一発だろって話だが
0254nobodyさん
2008/06/14(土) 11:33:00ID:???/default/index/index
/index/index
/index
/
全部同じアクションが呼ばれますよね。
SEO的に良くなかったり相対パスで書いた画像が表示できなかったりするから、
どれか一つ以外のもの (この場合は/) 以外はリダイレクトさせるか、404にしたいのですが、
そんなことできますか?
0255nobodyさん
2008/06/14(土) 12:18:09ID:???0256nobodyさん
2008/06/15(日) 01:23:44ID:???どもです。しかしそれだと、/が使えなくなって index/index と書かなくちゃいけなくなるんじゃないですか?
逆が良いのですが。
0257nobodyさん
2008/06/15(日) 01:59:21ID:???0258nobodyさん
2008/06/15(日) 02:13:16ID:???/ に index/index を当てればいい。
index/indexなんてかっこわるいのはイラン
0259nobodyさん
2008/06/15(日) 21:57:49ID:???なんのためのデフォルトなのか考えろ
>>254
不要なURLをリダイレクト or 404用のアクションにマッピングするだけ
0260nobodyさん
2008/06/17(火) 02:33:00ID:???>>259もいってる通りリダイレクトなんかが一番楽なのかもね
ただGETで変数渡したい時だけルーティングしたいような気もする
0261nobodyさん
2008/06/25(水) 12:10:06ID:???0262nobodyさん
2008/06/25(水) 12:13:09ID:???0263nobodyさん
2008/06/25(水) 15:10:01ID:???0264nobodyさん
2008/06/29(日) 09:04:08ID:???設計思想はわからんでもないが、そのままじゃ使えない上に、カスタマイズが面倒で、独自実装する方が早い気がしてならない。
使った場合のメリットを教えてエライ人。
0265nobodyさん
2008/06/29(日) 10:01:33ID:???0266nobodyさん
2008/06/29(日) 14:15:24ID:???AuthもAclもセットで使ってる
メリットは単純だし実装が楽だから
カスタマイズってそんなにするところあるの?
0267nobodyさん
2008/06/29(日) 19:48:09ID:???単純で実装が楽ってのが実感出来ないなぁ・・・
機能としては単純なのに、少々冗長で、覚える事が多いなぁ・・・と感じてしまう。
0268nobodyさん
2008/06/29(日) 20:05:20ID:???0269nobodyさん
2008/06/29(日) 20:55:07ID:???0270nobodyさん
2008/06/29(日) 22:15:27ID:???Acl/Auth程度、他人(それも2chの名無し)に良い悪い論せたところで遠回りよ
俺の私見では、汎用性整えつつ最低限の道具であろうとしたらこうなるね、という感じだ
俺がこう述べたところで君がそうかと判断するのは早計だ
何人か反論してきて初めて判断基準としての価値があるだろうな
その間にざっくり試して判断すりゃ30分も掛からんだろうよ
0271nobodyさん
2008/06/29(日) 23:05:45ID:???サンプルで実感できないかつ実際にも使う気がしない面倒臭がりなら使わなきゃいいだろ何のためにこのスレにいるの
ケチだけつけて何がしたいの?ネガキャン?つかむしろなんのために生きてるの
0272nobodyさん
2008/06/29(日) 23:10:33ID:???汎用性とのトレードオフなんだろうけど、
Authは機能の割に実装量と学習コストが高いと感じたのさ。
率先して使う価値はあるのかなと。恩恵はあるのかなと。
チーム内のコード共有の為にZFを導入した経緯もあるので、
他の人の意見を聞きつつ、使うか避けるかを判断したいんです。
0275nobodyさん
2008/07/19(土) 04:29:15ID:d6w3PPzh0276nobodyさん
2008/07/19(土) 18:13:28ID:???0277nobodyさん
2008/07/23(水) 21:54:27ID:???0278nobodyさん
2008/07/23(水) 22:20:42ID:???0279nobodyさん
2008/07/23(水) 22:30:24ID:???Rubyみたいにメソッドにブロック渡してyieldで呼び出されたりできるようになんの?
0280nobodyさん
2008/07/23(水) 23:19:12ID:???0281nobodyさん
2008/07/24(木) 00:06:48ID:???0282nobodyさん
2008/07/24(木) 01:14:18ID:???0285nobodyさん
2008/07/24(木) 12:39:52ID:???0286nobodyさん
2008/07/25(金) 20:17:42ID:???別にクロージャなんて無くても困らんし
0287nobodyさん
2008/07/25(金) 20:48:04ID:???0288nobodyさん
2008/07/25(金) 21:13:20ID:???0289nobodyさん
2008/07/25(金) 21:39:35ID:???構文が無理矢理な感じがして好きになれんなぁ。
無名関数も一度変数に代入しないと呼び出せないとか、中途半端すぎる。
0290nobodyさん
2008/07/25(金) 21:47:54ID:???0292nobodyさん
2008/07/25(金) 23:47:36ID:???0293nobodyさん
2008/07/26(土) 17:01:31ID:???0294nobodyさん
2008/07/26(土) 21:13:49ID:???0296nobodyさん
2008/07/28(月) 22:00:51ID:???5.3がどうかは知らないけど、クラス名の解決とrequire(_once)のパスの解決は別問題やん。
require(_once)が遅いといわれているのは読み込み済のファイルの検証ではなく(これはハッシュ
テーブルを参照するだけなので問題ない)、include_pathから対象のファイルを検索するのが原因。
include_pathは実行時に書き換えられるので、結果をキャッシュするわけにもいかんのですよ。
絶対パスや./から始まる相対パス指定なら、そんなに遅くないんだけどね。
で、これは言語コアレベルでの改善は困難なので、PEAR2のように依存ファイルの一括読み込みと
autoloadを併用して、スクリプトの書き方で改善することが推奨されている。
0297nobodyさん
2008/07/28(月) 23:18:41ID:???ソースは?とか言う前に少しは調べるなりカンファレンスなり出ればいい。
カンファレンス発表でのパフォーマンス測定では
PHP5.3>PHP6>PHP5>PHP4
と発表されていた。
0299nobodyさん
2008/07/29(火) 00:41:29ID:???同じ。
autoloadを使う以外にも、require_onceを if (class_exists("hoge", false)) {} の中に入れるだけでも
だいぶ違うよ。前にプロファイルをとったことがあるけど、require_onceのコストはけっこう大きい。
0300nobodyさん
2008/07/29(火) 00:47:16ID:???0301nobodyさん
2008/07/30(水) 04:11:45ID:???0302nobodyさん
2008/08/02(土) 17:20:13ID:bAiSenEi0303nobodyさん
2008/08/02(土) 17:47:41ID:???0304nobodyさん
2008/08/03(日) 05:45:22ID:???FWの出来自体はZend_Textを見た時点で諦めた。
0305nobodyさん
2008/08/22(金) 02:57:58ID:???使う利点が一切ないわ。
0306nobodyさん
2008/08/26(火) 23:00:54ID:lmmx+hnD0307nobodyさん
2008/08/26(火) 23:33:35ID:???0308nobodyさん
2008/08/27(水) 00:17:46ID:Ajt89UCU0309nobodyさん
2008/08/27(水) 00:47:59ID:???0310nobodyさん
2008/08/27(水) 01:57:34ID:Ajt89UCUフレームワークとしてみると、他のに比べて面倒なところがあるってことかな
0311nobodyさん
2008/08/27(水) 18:46:13ID:???これフレームワークじゃねーだろ
0312nobodyさん
2008/08/27(水) 19:00:04ID:???0313nobodyさん
2008/08/27(水) 19:23:45ID:???0314nobodyさん
2008/08/28(木) 01:48:56ID:???仕事に使うなら、いままで使ってた社内俺俺ツールキットやらライブラリやらを移植するには丁度良いと思うし、
単にライブラリとして使って俺俺フレームワークの理想を探求するのもアリじゃね
0315nobodyさん
2008/08/28(木) 08:02:54ID:???0316nobodyさん
2008/08/28(木) 16:22:55ID:???ライブラリとしては便利だけど、
主要なコンポーネント「メール、DB、コントローラ」が使いにくいのがなぁ・・・
(日本語に弱かったり、微妙なバグがあったり、)
0317nobodyさん
2008/08/28(木) 21:52:02ID:???0318nobodyさん
2008/08/28(木) 22:18:41ID:???0319nobodyさん
2008/08/28(木) 22:45:59ID:rcv32CRYそれかController拡張してそっちで自動でやっちゃうとか。
めんどいけど。
0320nobodyさん
2008/08/31(日) 12:35:28ID:???0321nobodyさん
2008/08/31(日) 16:10:05ID:MXRJjD+M0322nobodyさん
2008/09/01(月) 05:53:23ID:???どっちも使える環境ならどっちでも一緒?
Mysqliの方はプリペアドステートメント使用のときはクロージャがどうこうってのは見たんだけど
0323nobodyさん
2008/09/03(水) 04:32:00ID:NF58ThMC0324nobodyさん
2008/09/03(水) 14:43:22ID:???萎えるわ。
0325sage
2008/09/03(水) 21:51:27ID:???0326nobodyさん
2008/09/03(水) 22:42:48ID:???なんかおしゃれだぞ
0327nobodyさん
2008/09/04(木) 11:34:02ID:yd995+aV何ができればframeworkなんだ?
0328nobodyさん
2008/09/04(木) 14:22:56ID:???ZFはその点弱すぎる印象がある・・・もう1層コードをかぶせてやらないとアプリケーションを乗せ辛いんだよね
0329nobodyさん
2008/09/04(木) 14:27:43ID:???このコンポーネントつかって自分好みのフレームワークとしてカスタマイズしてくださいって感じだな
0330nobodyさん
2008/09/04(木) 14:42:56ID:???0331nobodyさん
2008/09/05(金) 00:01:06ID:???アリだと思うけどねぇ
0332nobodyさん
2008/09/05(金) 02:47:14ID:???例えば抽象DBアダプタとか最低限()の機能しか無い、
拡張するには継承するしか無い、
継承
0333nobodyさん
2008/09/05(金) 02:49:47ID:???その割には柔軟性低いけどねぇ・・・
例えば抽象DBアダプタとか最低限(PDO以下)の機能しか無い、
拡張する為に継承するわけだけど、
継承したクラスのみに機能を実装すると抽象DBアダプタの意味が薄れる
それなら1から自前で組む方が柔軟に組める。
0334nobodyさん
2008/09/06(土) 11:06:01ID:???より高度な機能を保管するためのZFだと思えばいいんじゃないか。
0335nobodyさん
2008/09/06(土) 20:52:43ID:???Zend_Db_Tableは、ZFの最大の駄作のひとつと思われる
というか、アーキテクチャの選択を間違えた感じだが
つまり、そういう表現のほうが適切なんではないかと思う
ZFのばあい、ZFというコンセプトだけは共有してるが、
その中の機能はライブラリ毎に担当者がいて、設計段階から
パラレルに進行しているので機能面の評価はZF全体ではなく
各ライブラリに掛かってくる
とか言ってみたわりには大して使い込んでないんだが
0336nobodyさん
2008/09/06(土) 21:02:43ID:???Zend_Db_Tableにしても駄作と分かれば一切使わない、もしくは
別の抽象化プロジェクトがIncubatorなり各個人なりで用意され、置き換えられるのが
格好良いとこだと思う、まぁZFのプロジェクト進行の全てが牛歩なのが痛いが
0337nobodyさん
2008/09/07(日) 02:20:15ID:???SQL直書きならPDOがあるんだから、やるなら本格的にORMORMしたライブラリにすれば良かったのに
0338nobodyさん
2008/09/07(日) 14:43:56ID:???何で Validator を Element にアサインするんだ?
あの実装じゃ複数の elements にまたがる Validation ルール書けなくない?
QuickForm の方がいいな。
0339nobodyさん
2008/09/07(日) 20:33:04ID:???0340nobodyさん
2008/09/07(日) 20:36:25ID:???ValidatorChain的なモノで実現出来るかと思ったら、出来ないのよね・・・
ウリが無いフレームワークだよね。
開発も遅いし、ドキュメントも入門窓口としては充実してるかもしれないが実際使うとなると足りなすぎる。
PHP5向けのしっかりしたコーディング規約に惚れたけど、使うのは苦痛でしかないわ。
0343nobodyさん
2008/09/07(日) 21:41:23ID:???0346nobodyさん
2008/09/07(日) 21:52:57ID:???:::::::::::::::::::::::::::::::::。::::::...... ... --─- :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::.. (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡:::: //[|| 」 ||] >>343゜:::::::::: ...:: :::::
:::::::::::::::::: . . . ..: :::: / ヘ | | ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .::::::::: /ヽ ノ ヽ__/ ....... . .::::::::::::........ ..::::
:.... .... .. . く / 三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧ ∧∧ ∧∧ ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:( )ゝ ( )ゝ( )ゝ( )ゝ無茶しやがって… ..........
.... i⌒ / i⌒ / i⌒ / i⌒ / .. ..... ................... .. . ...
.. 三 | 三 | 三 | 三 | ... ............. ........... . .....
... ∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪ ............. ............. .. ........ ...
三三 三三 三三 三三
三三 三三 三三 三三
0348nobodyさん
2008/09/07(日) 22:03:38ID:???0350338
2008/09/08(月) 11:54:05ID:???一応 Zend_Validate_Abstract::isValid() の $context param を使って実装した。
でも element に validation をアサインするのがとにかく気持ち悪すぎる。
で、 Zend_Form::isValid() が各々の Element の isValid を呼びつつ、
全ての Elements の value を $context に渡すって、効率悪すぎだろ。。
0352nobodyさん
2008/09/18(木) 00:49:29ID:???0353nobodyさん
2008/09/18(木) 19:17:51ID:???0354nobodyさん
2008/09/19(金) 04:10:59ID:???0355nobodyさん
2008/09/19(金) 10:29:28ID:???買う価値ありって感じたら買ってきて、少しだけレビューするわ
0356nobodyさん
2008/09/20(土) 12:47:58ID:???0357nobodyさん
2008/09/20(土) 13:28:21ID:???0358nobodyさん
2008/09/20(土) 16:09:06ID:???0359nobodyさん
2008/09/24(水) 21:12:51ID:???0360nobodyさん
2008/09/24(水) 21:35:25ID:???0361nobodyさん
2008/09/24(水) 22:49:18ID:ksgvzPqo0362nobodyさん
2008/09/25(木) 03:00:33ID:???0363nobodyさん
2008/09/25(木) 03:08:11ID:???0364nobodyさん
2008/09/25(木) 03:31:40ID:???コーディング規約以外は使い物にならん。
0365nobodyさん
2008/09/25(木) 03:35:45ID:???0366nobodyさん
2008/09/25(木) 03:40:26ID:???つっても、privateとprotectedは_を付ける、くらいだけど
0367nobodyさん
2008/09/25(木) 03:42:11ID:???みたいになってるだけで美しいじゃん
function hoge_unko_chinko()
{}
とかキモイじゃん
0369nobodyさん
2008/09/25(木) 03:49:44ID:???0370nobodyさん
2008/09/25(木) 05:15:02ID:???0371nobodyさん
2008/09/25(木) 05:22:54ID:???0372nobodyさん
2008/09/25(木) 06:18:28ID:???改行はLFのみ
1行は最大120文字
連想配列のvalueの先頭をそろえる
ざっと調べた感じではこんなところ。
後2つはどうでもいいけど、前2つが守られていないのは酷すぎる。
0373nobodyさん
2008/09/25(木) 13:06:35ID:???"\ No newline at end of file" は御免です。
0374nobodyさん
2008/09/25(木) 14:01:45ID:???ファイルの持ち方とクラス名の付け方もZFが一番スマート(競合が起きない)気がする。
ちょっと冗長だけど・・・
0375nobodyさん
2008/09/26(金) 09:05:06ID:???0376nobodyさん
2008/09/26(金) 09:57:31ID:???キーワードを半角or全角スペースで区切って配列にする
みたいな処理はフィルターでやるべきですか?
0377nobodyさん
2008/09/26(金) 10:10:34ID:???全然用途が違うような
0378376
2008/09/26(金) 10:23:10ID:???こんな風に入力されたとしたら
全角スペースを半角にして
連続するスペースをひとつにして
前後からスペースをとって
spliteで配列に
したいんですけど
この一連の処理はモデルとかでやるんですか?
0379nobodyさん
2008/09/26(金) 11:06:14ID:???0380nobodyさん
2008/09/26(金) 11:51:30ID:???俺もそう思ったけどPHP5の普及速度見る限り、あまり期待出来ないww
>>378
そういうのはOOPとかMVCとか変に考えすぎないで、適材適所な箇所にコード書けばいい。
自分だったら検索実行の直前でパラメータ分割する。
0381nobodyさん
2008/09/26(金) 12:02:24ID:???preg_splitのPREG_SPLIT_NO_EMPTY使えば
一行で済むって気づいたので
そうすることにします。
ありがとうございました。
0383nobodyさん
2008/09/26(金) 22:45:34ID:???PHP5ですら普及度低いのに、
ネームスペースが実装された 5.3 or 6.0 が普及するのは相当先なんだろうなって意味だ。
0384nobodyさん
2008/09/26(金) 22:54:29ID:???ただ5.3/6.0はZend Engineがかなりチューンされていて、パフォーマンスでは有利。
基本的に5.2で動くものは5.3でもそのまま動く(6.0ではそうとは限らない)ので、
5.3の新機能は使わなくても鯖に5.3を入れるのは十分ありうると思う。
0385nobodyさん
2008/09/26(金) 23:59:50ID:???0386nobodyさん
2008/09/27(土) 10:16:51ID:???0387nobodyさん
2008/09/27(土) 13:23:07ID:???怠慢が分かりやすく見抜けて楽
0388nobodyさん
2008/09/27(土) 16:57:15ID:???0389nobodyさん
2008/10/02(木) 03:36:41ID:???緑の本は公式リファレンスを抜粋&補足しただけの内容だったけど、
こちらは幾分か実践的で、これからZF始める人には良いんじゃなかろうか。
helperとかDbとか、サンプルコードが豊富なのでリファレンス読むより早く理解出来ると思う。
0390nobodyさん
2008/10/02(木) 04:48:09ID:???下手な入門書より参考になるんだが
0391nobodyさん
2008/10/03(金) 02:28:52ID:???0392nobodyさん
2008/10/03(金) 02:41:02ID:???0393nobodyさん
2008/10/03(金) 10:47:38ID:???使う場面がよーわからん。
認証サイト作る場合、認証処理はヘルパーなりプラグインにするべきだろうか?
今はベースクラスに色々定義しまくっている。
0394nobodyさん
2008/10/03(金) 11:43:10ID:???/home/user1/application/controllers/addressController.phpを作成。
addressController.php内のアクションはaddressActionとしたとき、
http://サーバ名/~user1/address/address で実行できる?
NOT FOUNDになってしまうんだけど....
0396nobodyさん
2008/10/03(金) 22:13:33ID:???今までどおりの方法しかないですか?
ZendFreamworkで簡単にという方法はないのでしょうか?
Zend_Config_XmlとかZend_XmlRpcとかで利用してるような人はいますか?
0397nobodyさん
2008/10/04(土) 01:52:33ID:???0398nobodyさん
2008/10/04(土) 09:26:45ID:???0399396
2008/10/04(土) 11:11:10ID:???大量なデータの時の速度的な問題もあるし簡単かつ高速な
XMLモジュールがフレームワークとしてあったらよかったんですが
他の方法でやってみます
ありがとうございました
0400nobodyさん
2008/10/04(土) 17:55:48ID:???0401nobodyさん
2008/10/20(月) 17:45:23ID:???0402nobodyさん
2008/10/21(火) 14:07:56ID:V5bf6vPWencoding=>utf8
は試してみました。
MySqlってUTF8でDB作って、
mysql -u root --default-character-set=utf8 hoge
みたいに接続するときの指定してやら無いと
おかしなことになりますよね?
お願いします
0403nobodyさん
2008/10/21(火) 14:59:08ID:???いちいち接続後に $db->query('SET NAMES utf8') するのは面倒なので、
class MyAdapter_Pdo_Mysql extends Zend_Db_Adapter_Pdo_Mysql
{
protected function _connect() {
if ($this->_connection) return;
parent::_connect();
$this->query('SET NAMES utf8');
}
}
というようなクラスを作って、
Zend_Db::Factory('Pdo_Mysql', array('adapterNamespace' => 'MyAdapter', 'host' => ...));
のように使うと楽だし、SET NAMES のしわすれで酷い目にあうこともない。
0404nobodyさん
2008/10/21(火) 15:18:39ID:V5bf6vPWありがとうございます。
実はsymfonyも試しに使っいたので
コードを追っていって
SET NAMES utf8
しているところを突き止めたところでした。
dbの接続をするシングルトンなクラスをつくってあったので
そこで、最初の接続だけSET NAMES utf8するようにしました。
0405nobodyさん
2008/10/21(火) 18:58:53ID:???0406nobodyさん
2008/10/21(火) 19:09:49ID:???0407nobodyさん
2008/10/21(火) 19:11:44ID:???http://blog.ohgaki.net/set_namesa_mcb_asc
0408nobodyさん
2008/10/21(火) 19:19:34ID:???こっちはレンタル鯖でやってて細かい設定できないの!
ホント現実みないよなこういう意見の人は
0409nobodyさん
2008/10/21(火) 19:21:07ID:???0410nobodyさん
2008/10/21(火) 20:48:13ID:???0412nobodyさん
2008/10/21(火) 20:54:21ID:???0414nobodyさん
2008/10/21(火) 21:56:54ID:???sqlインジェクションどうやってやるのか、
WebPG>>412のサンプルコードに期待。
0415nobodyさん
2008/10/21(火) 21:58:15ID:???SET NAMES utf8してる事を意識してPG側で適切にエスケープ処理を行えば脆弱性は回避出来るのだが。
具体的な攻撃方法出してくれよ。
>>407のURL見て真に受けてるような奴こそWebPG向いてないね。
0416nobodyさん
2008/10/21(火) 22:35:39ID:???0417nobodyさん
2008/10/22(水) 09:50:57ID:4sQkv8n5driver_optionsで
PDO::MYSQL_ATTR_READ_DEFAULT_FILE => 'path/to/my.cnf'
とか指定して、path/to/my.cnfには
[client]
default-character-set = utf8
と書いておく。
あるいはシステムのmy.cnfに適当なグループを作って
PDO::MYSQL_ATTR_READ_DEFAULT_GROUP
を指定する方法もある。
0418nobodyさん
2008/10/22(水) 11:23:32ID:???> 例えば元のエンコーディングがISO-8859-1で
> EUC-JP, UTF-8に変更した場合は安全。
俺もほぼ同様に理解しているが、本文中で理屈も攻撃例も示さず「禁止」では
良識的な技術者の態度ではないわな。
(「普段MySQLを利用していないので指摘いただくまで忘れていました」等とおっしゃるし、
mysql_real_escpae_stringをmysql_escpae_stringと書く致命的なtypoをしているし)
このSET NAMESの問題については『MySQL徹底入門』でも触れられていたはず。
0419nobodyさん
2008/10/22(水) 14:20:18ID:???ってどういう扱いにして、どこに入れてます?
モデルと同じにしちゃっていいのか、別の専用の場所か。それともDB?
0421nobodyさん
2008/10/22(水) 21:56:20ID:???0422nobodyさん
2008/10/22(水) 23:35:49ID:???0423nobodyさん
2008/10/22(水) 23:44:46ID:???0424nobodyさん
2008/10/23(木) 00:10:01ID:???0425nobodyさん
2008/10/23(木) 15:42:52ID:kG4UC8qH0426nobodyさん
2008/10/23(木) 16:04:17ID:???0427nobodyさん
2008/10/23(木) 20:12:47ID:???0428nobodyさん
2008/10/23(木) 23:29:36ID:???0429nobodyさん
2008/10/23(木) 23:36:27ID:???適当なこと言ってんじゃねーぞ
0430nobodyさん
2008/10/24(金) 01:24:14ID:???問題が起こる理由と、対策を知っていれば SET NAMES 自体が悪で無い事はわかるはず。
使わざる得ない環境が多々ある以上、対応出来るようにしておいて損は無い。
0431nobodyさん
2008/10/24(金) 01:34:49ID:???って捕らえたほうがいいの?
0433nobodyさん
2008/10/24(金) 11:00:47ID:???逆に問題って何?
エンコーディングの関係でエスケープAPIが動作不具合を起こす可能性がある。
って事理解してればいくらでも対策思いつくよね…それすら解らないのであればWebPG辞めた方がよいよ。
0434nobodyさん
2008/10/24(金) 12:17:04ID:???その値を変更したときに、ロジックに影響が出るか否か、で判断してる。
影響が出るなら、適当なクラスにまとめておく(別にMVCにおけるModelにこだわる必要はない)。
影響が出ないならDBに入れておく(必要ならWebからCRUDができるようにしておく)。
0436nobodyさん
2008/10/25(土) 04:37:02ID:???はやく具体的にどんな問題が起こっちゃうのか教えてくれよ。
0437nobodyさん
2008/10/25(土) 06:02:28ID:???0438nobodyさん
2008/10/25(土) 06:11:35ID:???0439nobodyさん
2008/10/25(土) 06:20:28ID:???>問題が起こる理由と、対策を知っていれば SET NAMES 自体が悪で無い事はわかるはず。
この日本語は、SET NAMESには問題があるけど対策を知ってればどってことないよ
って意味にしか取れないんだが何か最近新しい文法でもできたの?
0440nobodyさん
2008/10/25(土) 06:21:46ID:???0441nobodyさん
2008/10/25(土) 06:28:28ID:???オフにしたら何の問題もなくね?
0442nobodyさん
2008/10/25(土) 11:08:37ID:???>この日本語は、SET NAMESには問題があるけど対策を知ってればどってことないよ
SET NAMES自体にが悪では無いと書いてあるが。
しょうもない揚げ足取りはしないくていい。
>>433で起こりうる問題点挙げてるだろ。
0443nobodyさん
2008/10/25(土) 11:48:06ID:???どうでもいい話題で伸びてないでZFの話しようぜ!
0444nobodyさん
2008/10/25(土) 22:56:39ID:???Zend_Loader::isReadable('Validate/NotEmpty.php'); はtrue
is_readable('Validate/NotEmpty.php'); はfalse
になるんだけど
これバグ?
0445nobodyさん
2008/10/25(土) 23:03:40ID:???0446nobodyさん
2008/10/25(土) 23:07:14ID:???/test/Validate
/library/Zend/Validate/NotEmpty.php
ってあったとして
include_pathに
/test
/library
って設定してると
Zend_Loader::isReadable('Validate/NotEmpty.php'); はtrue
is_readable('Validate/NotEmpty.php'); はfalse
になる
0447nobodyさん
2008/10/25(土) 23:30:12ID:???でもなんで
Zend_Loader::isReadable('Validate/NotEmpty.php');はturuになんの?
なっちゃだめじゃね?
0448nobodyさん
2008/10/26(日) 00:11:57ID:???0449nobodyさん
2008/10/26(日) 00:18:16ID:???>>446
は完全に勘違いだからスルーしてくれ
で、
http://framework.zend.com/issues/browse/ZF-2985
↑
公式にも同じ悩みの外人がいたぞ
>>448
require とか includeだと
require 'Validate/NotEmpty.php';
はエラーになるじゃん当然だけど
だけど
Zend_Loader::isReadable('Validate/NotEmpty.php');
ってするとtrue(このファイル存在しますよ)になるの
これのおかげで困ってるの
ちなみにnclude_pathには/libraryだけ設定してやってみてよ!
0450nobodyさん
2008/10/26(日) 00:19:49ID:???0452nobodyさん
2008/10/26(日) 00:23:01ID:???どの情報が正しくてそうでないのかが良く分からん。
0453まとめ
2008/10/26(日) 00:29:36ID:???set_include_pathでセットしてあります。
それで
require 'Validate/NotEmpty.php';
みたいにやっても当然エラーが出ます
しかし、
Zend_Loader::isReadable('Validate/NotEmpty.php');
ってするとtrue(このファイル存在しますよ・読み込めますよ)になるんで
おかしいですよね〜
って話です。
で、多分これと同じことを言ってる公式のヤツ
http://framework.zend.com/issues/browse/ZF-2985
0454nobodyさん
2008/10/26(日) 00:48:14ID:???0455nobodyさん
2008/10/26(日) 00:49:27ID:???fopen("Validate/NotEmpty.php", "r", true);
で判別してるから、一応readableではあるはず。
0456nobodyさん
2008/10/26(日) 00:51:08ID:???0457nobodyさん
2008/10/26(日) 00:52:11ID:???その挙動は正しくても
includeの前にisReadable()呼んでから
trueならincludeみたいにしてる箇所があるんだから
そういう動きじゃダメじゃん
0458nobodyさん
2008/10/26(日) 00:55:24ID:???isReadableというメソッド名が誤解を招いてるだけで
0459nobodyさん
2008/10/26(日) 04:36:12ID:???0460nobodyさん
2008/10/27(月) 16:27:30ID:???どちらにせよカレントディレクトリにあるかどうかも探索するみたい。
// ※実行スクリプトは/path/to/libraryに置かないように。
set_include_path('/path/to/library');
// error!
//require_once('Validate/NotEmpty.php');
require_once('Zend/Loader.php');
var_dump(Zend_Loader::isReadable('Validate/NotEmpty.php')); // true
var_dump(isReadable('Validate/NotEmpty.php')); // false
// hoge.phpは実行スクリプトと同じ場所にある
var_dump(Zend_Loader::isReadable('hoge.php')); //false
var_dump(isReadable('hoge.php')); //true
function isReadable($filename){ ...Zend_Loader::isReadableからコピペ... }
0461nobodyさん
2008/10/30(木) 15:57:14ID:???なんか上手くいかない。
アクション名もHogeFugaActionとかにできないみたいだし…
0462nobodyさん
2008/10/30(木) 16:40:58ID:???HogeFugeControllerだったら
http://ddd.com/hoge-fuge
でいける
アクショんもいっしょ
0463nobodyさん
2008/10/30(木) 16:59:29ID:???サンクス
0464nobodyさん
2008/10/31(金) 14:18:18ID:???WSDL自動生成も出来るみたいだけど...
046594
2008/11/03(月) 08:38:22ID:???Zend_Loader::isReadableの件ですが、93さんのおっしゃるとおり、error_reportingを使ってゼロかどうかチェックしてね、ということで落ち着きそうです。
Zend_Loader::isReadable自体の変更は影響範囲が広いため、回避することで話が進んでいます。
詳しくは
http://framework.zend.com/issues/browse/ZF-2900
のコメントのうち Simon R Jones - 02/Nov/08 07:11 AMをご覧ください。
0467nobodyさん
2008/11/03(月) 09:17:28ID:???requireできないものがtrueになってたら
ダメじゃんってことなんですよ
具体例出すと
アプリケーションの独自のバリデータをMy_Validate_NotEmptyとかじゃなくて
Validate_NotEmptyにしたいときに
困るんです
046894
2008/11/03(月) 13:09:34ID:???話がかみ合っていないように思われます。
ZF-2985は file not existの場合にwarningが発生することを問題にしており、
あなたが指しているであろうBasil Guevarra さんはSubversion Revision9451
のロジック変更によりデグレードすることを指摘しています。
ZF-2985で取り扱うべきだ、というご意見をお持ちなのかもしれませんが、
new issueを作成して取り扱うべきでしょう。
お手数ですが下記にて投稿お願いいたします。
http://framework.zend.com/issues/secure/Dashboard.jspa
0469nobodyさん
2008/11/16(日) 06:00:20ID:WM8aCUuHゼンド・ジャパン監修の「ゼンドフレームワーク入門」ていう本読んでますがいまいちよくわからないので質問します。
たとえば、プロフィールを紹介するサイトがあって
http://www.myprofile.com/
http://www.myprofile.com/address/
http://www.myprofile..com/school/
http://www.myprofile..com/vision/
という構成のサイトをZendFWで作るとき、各ディレクトリに一つずつデフォルトコントローラを含むphpファイル(index.php)を
置くんでしょうか?
というか、従来の静的なサイト構造の時と同じように.com/以下に物理的なディレクトリファイルを置いてもかまわないんですかね?
/actionName/name1/val1/name2/val2 でアクションを引数つきで実行するのなら、/address/がディレクトリなのか
そこにあるindexphpに含まれるアクション名もしくは変数名・値なのかどう判断するんだろうと疑問に思っています。
それとも、 myprofile.com/ 以下には子ディレクトリは作らず全部index.php内のアクションで/address/や/school/の
ページの表示をするんでしょうか?
すごく非常識な質問かもしれないですが、公式を見てもピンと来なかったのでどなたか良ければお願いします
0470nobodyさん
2008/11/16(日) 06:50:30ID:???普通はおかないですね。
> /address/がディレクトリなのか
> そこにあるindexphpに含まれるアクション名もしくは変数名・値なのか
> どう判断するんだろうと疑問に思っています。
ディレクトリかどうかというとmode_rewriteの対する設定の問題で、
一般的なFWでは大概一緒です。
> それとも、 myprofile.com/ 以下には子ディレクトリは作らず
> 全部index.php内のアクションで/address/や/school/の
> ページの表示をするんでしょうか?
FWに処理させたいないようはそうですが、画像ファイルや静的なファイルを
ディレクトリを作って配置するケースはありますが、それは設計次第ですね。
URLの調整を詳細に行いたい場合はRouterをカスタマイズして利用します。
ただ、最初に機能を評価するときは、いきなりRouterの動作は検証しにくい
と思うので、コントローラーを一つ作って、
/コントローラー/アクション/var1/name1/
といった形のURLでやるのがありがち。
0471469
2008/11/16(日) 10:05:08ID:WM8aCUuHご回答ありがとうございます
>FWに処理させたいないようはそうですが、画像ファイルや静的なファイルを
>ディレクトリを作って配置するケースはありますが
繰り返しになってしまって申し訳ないですが、
.com/profile/にindex.phpを置いて、その中でZendFWを使った処理をしてもかまわないんでしょうか?
(ZendFWを使ったプログラムがいろんなディレクトリに複数存在することになりますが、いいのかな という疑問です)
それとも、そうしたFWを使った処理は .com/index.php の中のアクションで処理するんでしょうか?
というのも、本を見ると「公開ディレクトリに置かれるphpプログラムは最小限にする」と書いてあるので
(/profile/ディレクトリや/address/ディレクトリは設置せずに)
profile情報もaddress情報もそのほかも .com/index.php から出力しろという意味なのかと疑問で。。
たとえばprofile情報が極端に少ないときに長大な .com/index.phpをいちいち読み込むのは
無駄なんじゃないかと思って考え込んでいます
原則としては1つにするくらい少ないほうが良いけど、分けたければ分けろってことでしょうか?
>ディレクトリかどうかというとmode_rewriteの対する設定の問題で
ありがとうございます、それも気になってることでした。
結局のところ、URLを ?name1=var1を/name/var1/と表示するのはmode_rewriteも併用しなければ
無理ということでいいでしょうか?
本には単純にZFWの機能で出来ると書いてあり、mode_rewriteに触れてなかったので疑問でした。
お手すきの時に応えていただけると幸いです。よろしくお願いします
0472nobodyさん
2008/11/16(日) 12:00:50ID:???とりあえず、Yesかと。
設計は自由ですね。
> URLを ?name1=var1を/name/var1/と表示する
というのは、変数と値のセットをURLとして表示するという意味なら、
mod_rewriteではなくrouter->assembleで可能です。
rewriteは、あらゆるURLをエントリーポイントに振り分けるために使います。
本もいいですけど、オンラインマニュアルは見てました?
http://framework.zend.com/manual/ja/zend.controller.html
0473nobodyさん
2008/11/16(日) 12:01:27ID:???0474nobodyさん
2008/11/16(日) 12:47:54ID:???ほんとにたびたびありがとう、助かりました
公式をもう少し真剣に読み込んでみますね
>>473
確かに素人プログラマ?なんですが、FWに触れることで
スクラッチでピンとこなかったMVCやオブジェクトを理解するヒントが
得られるかもなぁと思ったので。
今のままの『とりあえず動いてる』っていうレベルの上にいけるよう頑張ります
0475nobodyさん
2008/11/16(日) 15:09:08ID:???0476nobodyさん
2008/11/16(日) 15:24:43ID:???開発力、設計力がないとまともなものは何もできないからね。
ただ、ガッツがあれば初心者が学ぶ題材にはいいと思うんだよね。
ソースはphp5ネイティブだしドキュメントはしっかりしてるし。
間違ってもいきなりサービス公開とかはしてほしくないけど。
0477nobodyさん
2008/11/16(日) 16:40:07ID:???作り込もうと思ったら情報抜け過ぎてて詰まる罠。
0478nobodyさん
2008/11/16(日) 16:42:45ID:???0479nobodyさん
2008/11/16(日) 18:06:07ID:???俺はコントローラ、ルータ、ディスパッチャあたりをカスタマイズしようとして萎えた。
結局ソース読んだけども。
0480469
2008/11/16(日) 18:10:04ID:NmOYkuM+本や公式を理解してもその他の必要条件もクリアしたとは言えないわけですか?
その場合、どんな資料や本を参考に学習したらいいのか良ければ教えてください
もし書籍やサイトを教えてもらえたら幸いです
気が向いた方よろしくお願いします
0481nobodyさん
2008/11/16(日) 18:15:59ID:???0482nobodyさん
2008/11/16(日) 18:17:13ID:???それはZFをいくら学んでも身につかない部分。
0484nobodyさん
2008/11/16(日) 18:48:18ID:???本や公式がちゃんと理解できれば、まぁスタートラインには立てるよ。
ただ、他の方が書いているのは、>>469や>>471を見れば、
理解できていないことは明白だし、理解しようと思ったら、付随することも
自分で勉強しないとだめ。
それはたとえば、mod_rewriteだったり、デザインパターンだったりするわけで。
>>480さんの技量、詳しくはわからないですけど、あの書き込みからだと
基本的なWebアプリの理解が足りないように思われても仕方ないですよ。
0485nobodyさん
2008/11/16(日) 19:01:27ID:???参考にさせていただきます
0486nobodyさん
2008/11/16(日) 19:42:10ID:???ソース読めばいいじゃん
こんなもん
0487nobodyさん
2008/11/16(日) 19:49:08ID:???0488nobodyさん
2008/11/16(日) 20:08:32ID:???無駄をパフォーマンスに影響させない設計が必要になる。
この点、CIとは対極にある気はする。
0489nobodyさん
2008/11/16(日) 22:58:02ID:???リンゴ 100円 [ ]
みかん 90円 [ ]
さかな 222円 [ ]
[注文][リセット]
みたいなのをテーブルで作るときって
一体どうしたらいいんですか?
デコレーターを自分で作るのが一番なんですか?
Zend_Form意味がわかりません><
0490nobodyさん
2008/11/17(月) 01:04:22ID:???0491nobodyさん
2008/11/17(月) 01:42:08ID:???DtDdラッパーをぱくってTrTdラッパーを作ってパスを通す
フォームのHtmlTagデコレーターのオプションでtag=>tableするだけで
自動でテーブル作れるから、フォームの量産具合によるんじゃない?
0492nobodyさん
2008/11/18(火) 16:21:40ID:???0493名無しさん@十周年
2008/11/18(火) 16:26:31ID:???0494nobodyさん
2008/11/19(水) 00:20:24ID:???0495以下、名無しにかわりましてVIPがお送りします
2008/11/19(水) 11:52:57ID:???0496nobodyさん
2008/11/20(木) 00:40:28ID:HrZmpLyBフロントコントローラが
http://hoge.com/~userDir/index.php というような位置にいるとき
これのコントローラの実体は
application/controllers/indexController.php という場所にあるとします。
このとき、indexController.php の中で行われている require_once '../test.php';は
フロントコントローラindex.phpの場所からの相対パスをとるべきなんでしょうか?
ためしに require_once '../test.php';を実行してみたところ
hoge.com/test.php の値を返してきました。
が、 require_once 'test.php'; をやってみたら
application/controllers/test.php の値を返してきたんですが、、
何か単純なミスしてるのか、ZFWの特別なやり方があるのか気になります。
すみませんが教えてください
0497nobodyさん
2008/11/20(木) 01:18:11ID:???PHPとして正常な動作です。
includeパスの優先順位の問題かと。
試しに application/test.php を設置してから、require_once '../test.php';を試してみてごらん。
0498nobodyさん
2008/11/20(木) 07:37:17ID:HrZmpLyBアドバイスありがとうございます
application/test.php と hoge.com/test.php が存在する状態で application/controllers/indexController.phpから
require_once '../test.php';を実行したところ hoge.com/test.phpの値を返しました
これで正常なんでしょうか?
正常なら、コントローラファイル内のrequireはフロントコントローラからのパスで考えればいいんですね。
ZF以前の質問になってしまって失礼しました。
0499nobodyさん
2008/11/20(木) 08:27:30ID:???エントリーポイントでなんかしてるとか?
おいてあるファイルがなんかしてあるとか、実際のコードの該当部分が
ないとわからないですけど。
0500nobodyさん
2008/11/20(木) 11:26:34ID:???PHP標準設定ではinclude_pathの最優先がカレントディレクトリ(上記の場合hoge.com/~userDir/index.php)なので、そうのような動作になります。
indexController.phpからの相対パスで記述したいなら
require_once dirname(__FILE__) . '/../test.php';
と記述すればOKです。
他にも set_include_path() でinclude_pathの優先順位を変更したり、
chdir() でカレントディレクトリを変更する事で挙動を替える事が出来ます。
0501nobodyさん
2008/11/20(木) 11:33:42ID:???requireを書いたファイルからの相対が
".:/usr/lib/php"のドットの意味じゃなかったっけ?
0502nobodyさん
2008/11/20(木) 11:39:23ID:???0503nobodyさん
2008/11/20(木) 12:10:47ID:???本当にありがとう!
0504nobodyさん
2008/11/21(金) 17:06:52ID:???面倒だからZFやめたw
0505nobodyさん
2008/11/21(金) 19:34:30ID:???0506nobodyさん
2008/11/21(金) 20:23:02ID:???下のLatest Releaseにリンクあるよ。
http://framework.zend.com/download/latest
0507nobodyさん
2008/11/23(日) 14:32:06ID:???ルーターやフロントコントローラのカスタマイズ方とか、
プラグインの起動タイミングとか、O/Rマッパーとか、Viewに関しても
凄く詳しく乗ってる。
巻末にクラスとメソッドリストも付いてるし
libraryディレクトリの中のソース読む作業から開放される。
smartyとかpearとかの本がリファレンス写しただけ+ちょっとおまけな感じで
山田氏の本は微妙だと思ってたんだけど、この本は凄く良い。
0508nobodyさん
2008/11/23(日) 14:33:21ID:???0509nobodyさん
2008/11/23(日) 15:16:20ID:???すべてがお見通しな天才か、すでにJAVAを齧ったことのある普通の人か
何も疑問に思わず丸暗記する凡才かのどれかでしょ。
0510nobodyさん
2008/11/23(日) 15:23:54ID:???0511nobodyさん
2008/11/23(日) 16:27:03ID:???数千円で勉強時間を短縮出来るなら安いもんだ。
俺は買ってないけど。
これから勉強する人には勧めたい。
0512nobodyさん
2008/11/23(日) 16:30:04ID:???昔藤野 真吾のPHPフレームワーク Zend Framework入門
っての見てやってたんだけど、そっちの方がいいのかな?
もし両方見た事あるなら、感想を教えて欲しい。
こっちは古いからVer的にも1.0辺りで今だと結構違いがあるしなあ。
その徹底入門はどのぐらいのVerで話しているのだろう。
0513nobodyさん
2008/11/23(日) 17:22:59ID:???緑本は公式マニュアル+多少のサンプルレベルで内容物足りなさ過ぎ。
コーディング規約がまるっと乗ってるのは便利だけど。
0514nobodyさん
2008/11/23(日) 18:34:20ID:???0515nobodyさん
2008/11/23(日) 19:22:03ID:???徹底入門立ち読みしてみなって。マジで中身濃いから。
PHP界隈では信じられない位ちゃんとした本。
数百冊売れれば良さそうなフレームワークの本に
ここまで頑張る所に俺は情熱を感じた。
0516nobodyさん
2008/11/23(日) 19:29:45ID:???本出すとなればそれなりの出来にしないと
マニュアル読めばいいじゃんって言われるからな
0517nobodyさん
2008/11/23(日) 20:26:28ID:???0518nobodyさん
2008/11/23(日) 23:16:48ID:???>>512
自分も以前買って半年放置してたZendFramework入門読んでやってるんだけど
その後出た徹底入門てやつみたらあまりの落差に鬱になった
〜入門に2800円払ってるし今から3800円?出すのはキツイ、、 でもわかりやすいんだよな明らかに
どっちもDBとかPDFとかコンポーネントの紹介部分はなくてもいいし
そういう意味じゃ同じなんだけど、概念の紹介部分に差がスゴイある
〜入門を放置してる間に徹底入門が出たみたいで自業自得なんだけど
ほんと大失敗した
というか、〜入門の通りにVer1.6で試してるんだけど動かないです。。
自分がバカすぎるのかもしれないけど
なんて悩んでる時間が無駄か 買ったほうがいいのか ホント鬱だ
山田本、今まで何冊か買って相性悪かったんだけど、この本だけはいいよ
もし今からはじめる人がいたら参考にしてください
マニュアルで理解できる頭のよさや経験があれば一番良いんだけどなぁ
0519518
2008/11/23(日) 23:41:18ID:fMqqqFAZ上にも書いたんですが、「ZendFrameWork入門」って本の第4章、「RSSまとめサイトを作る」ってやつですが
ZFW1.6以上で本に書いてある通りやってちゃんと動いてる方いますか?
自分は出版社のサイトからサンプルプログラムDLしてそのままローカルのサーバに入れたんですが
動きません。 ループし続けてエラーになってます。
同じ本利用してる方の意見が聞きたいです、よろしくお願いします
(こういうこと書くと宣伝みたいに思われそうなんですが、山田本だったらWINGSのサイトで
山田本についての疑問点やわかりづらい点質問したら教えてもらえるんですよね。。
そういう意味でも自分みたいなほんとの初心者は徹底入門買った方がいいかもです。)
0520nobodyさん
2008/11/23(日) 23:59:29ID:???載ってた気がする。俺は場所突き止めて治したけど、作業的に無駄かと…
どっかで、無いアクション読んで、リダイレクト先でアクションが無いから
どっかにリダイレクトしてループ始めてたと思う。
うる覚えだけど。
0521nobodyさん
2008/11/24(月) 00:06:28ID:???0522nobodyさん
2008/11/24(月) 00:15:16ID:???0523nobodyさん
2008/11/24(月) 00:31:13ID:yMz0LXvoほんとですか? ありがとうございます
自分も自力で探そうかなぁ、でもどの道まともな本買いなおしたほうがいいか…
メドがついただけありがたいですが、買い物失敗を駄目押しされたようで悲しいですが
ありがとうございました
0524nobodyさん
2008/11/24(月) 01:28:23ID:???0525nobodyさん
2008/11/24(月) 08:00:26ID:???まぁ、それでも読みたいか本?って感じ
Zend Studio for E 使ってたら本なんてイラネって思うけどなぁ
0526nobodyさん
2008/11/24(月) 09:26:46ID:???0527nobodyさん
2008/11/24(月) 21:39:19ID:???ヘッダを含むレスポンス出力を送信するには、 sendOutput() を使用します。
(例文)
$response->sendResponse();
どっちやねん!
0528nobodyさん
2008/11/24(月) 21:53:54ID:???0529sage
2008/11/24(月) 23:11:17ID:???日本人で作業しているのは多分2人しかいない(翻訳がTakagiさん)ので、訂正箇所見つけたら修正協力お願いしま−す
0531nobodyさん
2008/11/25(火) 08:39:59ID:???日本語版の修正などの協力は、具体的にどこにレポートするのが効率がいいでしょうか?
ttp://framework.zend.com/issues/secure/Dashboard.jspa
ここ?
0533nobodyさん
2008/11/25(火) 11:42:07ID:???get_hogehoge()
set_hogehoge()
って感じになるんですが、Zendコーディング規約だとcamelCaseですよね。
これって設定で変更可能でしたでしょうか?
使ってる人います?
0534nobodyさん
2008/11/25(火) 11:44:07ID:???protected $_hogehoge;
ってしてる時に、setter getterを作ると「_」が入るって当たり前か・・ごめ。
0535nobodyさん
2008/11/25(火) 14:04:47ID:???0536nobodyさん
2008/11/25(火) 14:19:50ID:???_getHogehoge()
が正しいんじゃないか?
0537nobodyさん
2008/11/25(火) 14:27:52ID:TqJfzk7aクラス変数のアクセシビリティとは別で。
0539nobodyさん
2008/11/25(火) 14:37:50ID:???0540529
2008/11/25(火) 22:20:33ID:???日本語翻訳の修正は532さんの方法で良いと私も思いました(笑
ロジックの修正はお手数ですけど531にて記載いただいたアドレスにお願いしますm(__)m
MatthewとかThomasとかRalphさんがあっさり直してくれるかもしれませんし。。
0541nobodyさん
2008/11/26(水) 00:13:26ID:???現状、特にレポートすることがあるわけではないんですが・・・
翻訳者の方のメルアドってどこかに載ってますか?
0542nobodyさん
2008/11/26(水) 04:57:47ID:4hnD4pTRhttpd.confに処理を任せていいんでしょうか?
RewriteEngine on
#RewriteBase / #これはコメントアウトしてます
RewriteRule !\.(js|ico|gif|jpg|png|css)$ "C:/Program Files/Apache Group/Apache2/htdocs/index.php"
とhttpd.confに書いた場合は動作しているんです。今のところは簡単なサンプルを動かしてるだけですが、
.htaccessでちゃんと設定しないと複雑なアプリを作ってるうちにおかしくなるということはありますか?
環境はwinXP apache2 php5.23 ZF1.6です
0543nobodyさん
2008/11/26(水) 06:06:16ID:???0544nobodyさん
2008/11/26(水) 08:32:39ID:???0545nobodyさん
2008/11/26(水) 09:03:28ID:???あれだよね。
ZFのコントローラーを実装するのにmod_rewriteの設定が必要で
mod_rewriteのスレで聞いたらあとは自分でやれと言われてここに来たって感じっしょ。
とりあえず、がんばれ
0546nobodyさん
2008/11/26(水) 11:18:20ID:???してるんですが挙動が変なんです
>>545
そんな感じです。
.confだけでOKとわかって安心しました、ありがとうございます。
0549nobodyさん
2008/11/27(木) 21:41:31ID:nkJ4I6fbページ全体の要素や構成を決めるのではなく、たとえばグローバルメニューや
フッタ部分など複数のページで使いまわされるパーツを作るのに使うのも
ありなんでしょうか? それはモデルで定義するべきなのかな?
0550nobodyさん
2008/11/27(木) 21:50:53ID:???0551nobodyさん
2008/11/27(木) 21:54:35ID:???まぁ、だいたい設計は自由だけど、たとえば、
全体の構成ならZend_Layout
共通のメニューやフッターはviewのpartialヘルパーで、
モデル=データ由来のメニューであれば、
コントローラーで準備しとくとか。
もちろん、専用のコントローラを用意しておいてアクションヘルパーを呼ぶとか
そりゃまったく自由なわけで
0552nobodyさん
2008/11/27(木) 22:14:33ID:KUrXy2lE使い分ける必要性出てきますか?
間になにか挟まる事がありえるんでしょうか。
0553nobodyさん
2008/11/27(木) 23:12:04ID:???どうもありがとうございます。テンプレートってsmartyとかかな?
Zend_Layoutてのがあるの初めて知りました、使ってみます
0554nobodyさん
2008/11/27(木) 23:29:14ID:DhKL8FdT_forward
0555nobodyさん
2008/11/28(金) 02:51:15ID:???Flexとの連携は面白そーですね。
0556nobodyさん
2008/11/28(金) 11:48:11ID:???おまいらはどんな何系のシステムでZF使ってますか?
0557nobodyさん
2008/11/28(金) 13:54:54ID:???0558nobodyさん
2008/11/28(金) 21:28:14ID:???Zend_Amf_Server試してみたけど未完成過ぎる印象。
・提供していないPHPメソッドを実行できる(不具合?仕様?)
以下のコードでZend_Json::encodeをFlashから実行出来てしまう。
connection.call("Zend_Json.encode", responder, params);
これは Zend_Amf_Server::_dispatch() の実装が原因
・ネームスペースが機能していない
$server->setClass("Hoge", "Namespace");
としてもNetConnection.call("Namespace.method") が呼ばれない。
これも Zend_Amf_Server::_dispatch() / _handle() あたりの実装が原因
・エラーが起こる
Zend_Amf_Server::_dispatch() 150行目あたりに、
PHPのWarningが発生する箇所がある為、Flash側で不正なAMFパケットとみなされてしまう事がある。
例)存在するクラスの存在しないメソッドをコールすると起こる
connection.call("Zend_Json.hoge", responder, params);
不具合なのか、仕様なのかわからんので修正する気にならん。
Parser系は普通に使えそうなので自前でサーバ部分(リクエスト受けてレスポンス返すだけ)を作れるならいいかもね。
0559529
2008/11/29(土) 09:54:36ID:???initは初回だけ実行すれば良いもの、たとえばデータベースへの接続作成とか
preDispatchはアクションを呼び出すたびに(どのアクションかにかかわらず共通で)実行したいものに使うと便利です
>>558
ソース見てみましたが、Unimplementedと記載されているfunctionたちが目に付きますね
0560nobodyさん
2008/11/29(土) 12:15:11ID:Q7h0AD5b物件IDが存在しない時なんかに、「該当の物件は存在しません」みたいに
使えばいいのかな?
0561nobodyさん
2008/11/29(土) 22:57:14ID:???物件を検索したけど、該当するIDが存在しなかったのかによる。
0562nobodyさん
2008/11/29(土) 23:00:44ID:???0563nobodyさん
2008/11/29(土) 23:04:37ID:???好きなように使えばいいんでは?
物件IDが存在しないときに、例外を投げ、かつエラーコントローラーにわたるように
設定し、エラーコントローラーでcatchすればそれに応じたエラーメッセージは出せるだろうけど、
物件IDが存在しない程度で例外か?ってのは気になる。
普通は、DBから不正な値が返ってきたとか、想定外を想定して作るもんじゃない?
検索でヒットしないってめっちゃ普通の現象のように思うけど。
まぁ自由なので個人的な感覚にすぎないけどね。
0564nobodyさん
2008/11/29(土) 23:08:12ID:???0565nobodyさん
2008/11/30(日) 01:05:31ID:???へんに機能として用意されてる分「使わなきゃ」って気になっちゃうなぁ
妙に考え込んでナチュラルじゃない処理をわざわざ作らないようにしよう、、ありがとうございました
0566nobodyさん
2008/11/30(日) 02:05:35ID:???エラーコントローラに投げて
このページは削除されました->TOPページのリンクへ誘導でOK。
もし、そういう意味じゃないならフレームワーク以前の問題だな。
0567nobodyさん
2008/11/30(日) 15:03:50ID:???URI、GET、POST、COOKIEなど外来ではないデータで、たとえば認証済みのユーザーIDなど、
クライアントが自由にセットできるわけではないが、クライアント固有のリクエスト情報を
格納・取得するための仕組みはないでしょうか?
リクエストオブジェクトを拡張するか、レジストリやフロントコントローラーに保存などを
使った方がいいでしょうか。
Zend_Controller_Request_AbstractにあるgetUserParamというのが使えそうかと思ったのですが、
実質的にgetParamとほとんど変わらない実装になっていますよね。
Zend_Controller_Request_HttpではgetParamでGET POSTから取得できるできないの違いは
ありそうですが、/controller/action/key1/val1/userid/hoge/
みたいな感じでgetParamに混入できる可能性を制約したいと思っています。
0568nobodyさん
2008/11/30(日) 15:06:57ID:???0569nobodyさん
2008/11/30(日) 15:27:55ID:???リクエストの方がTestがやりやすいかと思って検討していたのですが、
セッションを使う方がすっきりしそうなので、セッションで行きたいと思います。
ありがとうございました。
0570nobodyさん
2008/12/01(月) 22:10:13ID:???ソースを絞れるっぽいけど。
0571nobodyさん
2008/12/01(月) 22:28:42ID:???paramsに入ってしまうのでparamSourceじゃ絞れないですよね。
インフレクター側で何を受け入れるか、もしくは受け入れないという設定をしたものを
使えば制御できることはできるんですけど・・・
0572nobodyさん
2008/12/01(月) 22:57:39ID:???0573nobodyさん
2008/12/01(月) 23:08:10ID:???getUserParam?みたいな名前の奴は、アクションとパラメータ?か
こっちでセットしたデータしか入ってないんじゃなかったっけ?
何か使い分けられるみたいなのをどっかで見た覚えがあるけど。
0574nobodyさん
2008/12/02(火) 07:54:53ID:???そうですね。状況によってはリクエストを自作する方向で考えたいと思います。
ユーザーIDについてはZend_Auth::getInstance()->getIdentity()でいいやってことで
リクエストからの取得はあきらめました。自動的にセッションに保存されるようですし。
>>573
getParamとgetUserParamの違いは、Zend_Controller_Request_Abstractの段階では
$request->_paramsから返すだけで、ほぼ同じコードなので同じデータのようです。
セットされるのはルーター由来の値で、まぁ、リクエストオブジェクトなんだから当然といえば当然ですね。
マニュアルを読んだ時は、getUserParamってコントローラーでセットしたり
ルータでもルートで明示的に受け入れ設定した変数だけかな?
と誤解してしまったので、>>567みたいな質問をしてしまったのですが、
リクエストオブジェクトはリクエストなんだなと、今は理解しております。
テストが簡単だからという理由で、別の情報や機能をリクエストオブジェクトに
含めようという方が邪道だったと反省しています。
0575nobodyさん
2008/12/02(火) 12:22:41ID:X8fwryD+モジュールを使うことで、どんなメリットがあるんですか?
「モジュール自体が一つの完結したMVCアプリケーション」という解説を見ましたが、
それではモジュールをまたいでmodelのincludeやクラスのextendsをしては
いけないのでしょうか?
ディレクトリがまとまるからそこそこ大規模なサイトになったら見やすい・管理しやすいのかなと
は思うんですが、モジュール不使用と比べた大きな長所があれば教えてください
そういう経験談を聞かせてくれたら嬉しいです。
0576nobodyさん
2008/12/02(火) 12:32:04ID:???0578nobodyさん
2008/12/02(火) 12:45:00ID:???includeやextendsは自由に使っていいと思うよ。
Zend推奨のディレクトリ構成だと、モジュール単位で独立しちゃってるイメージだけど
自分は /controllers/ModuleName/ でディレクトリ掘って、サブモジュール的なイメージで使ってる。
サイトに大きめの機能追加をする時にモジュールを分けておくと、
ネームスペースが独立してコントローラ名の競合が防げるメリットがある。
0579nobodyさん
2008/12/02(火) 12:46:57ID:???0581nobodyさん
2008/12/03(水) 01:29:21ID:???http://framework.zend.com/manual/status
0582nobodyさん
2008/12/03(水) 14:09:39ID:C1dbydXA負荷とか大丈夫なの?教えて
0583nobodyさん
2008/12/06(土) 02:47:49ID:???各コントローラーの各アクションに、select()->from()->
where->leftJoin()->leftJoin()・・・以下略と書きまくっている
のだが、これでいいのだろうか?
俺の理解だと、コントローラーはリクエストパラメーターにより
上で書いたような処理をモデルで行ったり、その結果をビューに
返したりするものだと思うのだが。
さらにいうと、ModelでForm部品用の設定をしている。DBの項目が
フォームの項目だからだって。
0584nobodyさん
2008/12/06(土) 02:50:09ID:???0585nobodyさん
2008/12/06(土) 02:53:01ID:???規模が膨らめばそれこそMVCに属さないコードとか出てくるしさ。
長期稼働させない一時的なシステムとか、叩き台程度の作成ならそのやり方でサックリ作るのもありでしょう。
そうじゃないなら、炎上する前に転職すれw
0586583
2008/12/06(土) 03:22:51ID:???MVCじゃない、ライブラリ的なクラスを切り分けるくらいのことを
したいとは思う。
でも、一時的なシステムじゃなくて、今後うちの会社の核になる
システム。多分炎上はしないかな。メンテしにくそうだけど。
0587nobodyさん
2008/12/06(土) 06:50:07ID:???てか、それが普通だろ
ウェブフレームワークのMVCと言われている処理の主流はそんなのだよ
モデルはDBをオブジェクト指向で操作するインターフェイスを提供、
actionはそれをドライブって感じ
0588nobodyさん
2008/12/06(土) 07:11:45ID:???普通では無いだろw
そのAction内でしか使わないDBクエリならActionに直書きでいいだろうけど、
複数Actionから参照されるようなDBクエリなら、普通はモデルなりライブラリなりに切り分ける。
0589nobodyさん
2008/12/06(土) 08:36:08ID:???ここではactionにモデル操作を書くことの是非が問題になっているんだろう。
0590nobodyさん
2008/12/06(土) 08:42:45ID:???ActionControllerからモデルを利用するにしても、newしてメソッドを呼ぶとして
そのアクション固有のパラメータはやっぱりコントローラーで設定するんだよね。
境界線をどこに置くかっていう問題のような気はする。
0592nobodyさん
2008/12/06(土) 17:18:11ID:???コントローラで操作するやり方は、railsとその影響を受けたFWでは一般的じゃね?
ZFを実際には使ってないからZend流の普通は知らないが。
Zend流ではZend_Dbをいわば広義のモデルでラップするの?
0593nobodyさん
2008/12/06(土) 18:22:58ID:???Zend_Dbでselect()とか使ってるのであれば、SQL直書きとなんら変わらないんだぜ。
オブジェクト指向でDBへのコネクションを管理できるだけであって、
データの操作は最低限のAPIしか無い。
モデルを作るためのDBアダプタって感じかね。
Zend_Db_Tableなら低レベルO/Rマッパとして機能するけど、
やはり1枚ラップしてやらないとコードが汚れる気がする。
0594nobodyさん
2008/12/08(月) 21:32:33ID:???0595nobodyさん
2008/12/10(水) 02:51:00ID:???モジュール別に404エラーの出力内容を制御したいのですが、
現状ではErrorControllerが全てのエラーをcatchしてしまう為、処理が無駄に入り組んでしまっています。
0596nobodyさん
2008/12/10(水) 20:56:49ID:???0597nobodyさん
2008/12/10(水) 21:23:54ID:???コントローラと名前が被った場合は
モジュールが優先されて、次にコントローラ。
だから、モジュールと同じ名前のコントローラを作って、
__callから飛ばせば良いんじゃないかな。
モジュールにアクションが無い→同じ名前のデフォルトコントローラのアクションを探す
__callで引っかかる。
__callがモジュールのエラーコントローラへ_forward
やってみてないからわからないけど。
0598nobodyさん
2008/12/11(木) 18:56:21ID:???ドキュメントでは
----------
Zend_Loader_PluginLoader には、 複数のプラグインの間でオブジェクトを共有する機能もあります。
その際にシングルトンインスタンスを作成する必要はありません。
この機能は、静的レジストリを用いて実現しています。
インスタンスを作成する際に、 コンストラクタの 2 番目のパラメータでレジストリを指定します。
// プラグインを静的レジストリ 'foobar' に保存します
$loader = new Zend_Loader_PluginLoader(array(), 'foobar');
PluginLoader がインスタンス化したその他のコンポーネントで このレジストリ名を使用すると、すでに読み込まれているパスやプラグインを使用できます。
----
と書いてあるのですが、オブジェクトを第2パラメーター付きでnewすると、
スタティックプロパティは初期化されてしまって、次にインスタンスをとった
時に再利用できるようには思えないんですが違いますか?
再利用するのであれば、シングルトン等で独自にインスタンスを保持
しないとだめなように思うのですが・・・
0599nobodyさん
2008/12/11(木) 21:25:11ID:???ソース読んでないけど、例えば、Zend_Loader_PluginLoaderが
シングルトンのフロントコントローラにプラグインオブジェクトを
預けたりしてるか、独自のシングルトンを作ってそこに保存してれば大丈夫だろうし。
0600nobodyさん
2008/12/11(木) 21:40:05ID:???$loader = new Zend_Loader_PluginLoader(array(), "hoge");
forwardedController:
$loader = new Zend_Loader_PluginLoader(array(), "hoge");
たぶん、こんな感じで2か所で呼ばれても同じ名前を使っていれば
同じプレフィックスパスやクラスが使えるという意味だと思うんですが、
実際には
public function __construct(Array $prefixToPaths = array(), $staticRegistryName = null)
{
if (is_string($staticRegistryName) && !empty($staticRegistryName)) {
$this->_useStaticRegistry = $staticRegistryName;
self::$_staticPrefixToPaths[$staticRegistryName] = array();
self::$_staticLoadedPlugins[$staticRegistryName] = array();
}
foreach ($prefixToPaths as $prefix => $path) {
$this->addPrefixPath($prefix, $path);
}
}
こうなってて、new したときに
self::$_staticPrefixToPaths[$staticRegistryName] = array();
self::$_staticLoadedPlugins[$staticRegistryName] = array();
これで、スタティックに登録されたプレフィックスパスやプラグインが初期化されてしまうんですよ・・・
で、それをZend_Registoryにでも保存してるのかと思いきやそんな形跡はないんですよね・・・
レジストリ名一つにつき、自前でインスタンスを一つにしぼって、インスタンス化させないルールにすれば、問題ないんですけど、
ドキュメントの解釈が違うのかなぁ・・・
0601nobodyさん
2008/12/11(木) 22:13:41ID:???この後も変更しないだろうし、入れ物は単に配列なので
addPrefixPathとかget|set|clear PrefixPathとかを作って、
作り変えちゃえば大丈夫じゃないかと。
それかバグ報告ですかね。
ドキュメントの方が予定されていた物っぽく感じるので。
0602nobodyさん
2008/12/11(木) 22:49:49ID:???ちょっとSVN確認してみます。
if (!isset(self::$_staticPrefixToPaths[$staticRegistryName]))
を加えればいいんだと思うんで・・・
0603nobodyさん
2008/12/12(金) 16:18:51ID:5OtupgTiたとえばヘッダとフッタを定義したテンプレートファイルがあるとして、
これを取り込む各ページごとにユニークの<title></title>情報を入れようと思ったら
どうしたらいいんですか?
<html>
<head>
<title>ここを変えたい(例:12月13日の日記 / 「秋刀魚を食べた」)</title>
</head>
<body>
<img src="header.jpg" />
↓この下が各ページのコンテンツだよ
<?php print($this->Layout()->content); ?>
<img src="footer.jpg" />
</body>
</html>
っていうテンプレートです(現状)。
0604nobodyさん
2008/12/12(金) 16:27:45ID:???0605nobodyさん
2008/12/12(金) 16:41:39ID:???$this->headTitle()
などとする。
特殊なやつはレイアウトオブジェクトにアサインしてもいい。
その辺はドキュメントに出てるよ
0607nobodyさん
2008/12/13(土) 13:52:16ID:???Zend Frameworkには同等のクラスライブラリ無いよね?
みなさんどうしてる?
0609nobodyさん
2008/12/13(土) 18:02:07ID:???さんくす。
XML_Serializer/Unserializerの手軽さはないが、これ使ってグリグリするかな。
どもでした。
0610nobodyさん
2008/12/14(日) 17:48:13ID:???まさか確認画面なんていらないよ!てことじゃないですよね。
0611nobodyさん
2008/12/15(月) 14:05:56ID:???preDispatch内で認証をしており、
未認証のユーザはエラー画面を表示したいのですが…
0613nobodyさん
2008/12/15(月) 14:23:56ID:???使ってるんだけど_forwardのほうがいいの?
0614nobodyさん
2008/12/15(月) 14:26:57ID:???0615612
2008/12/15(月) 14:38:58ID:???で、>>611なんだけど、エラー画面に飛ばしっぱなしなら_redirect()の方がいいかもね。
俺は認証後に本来表示すべき画面に戻したいから_forward()使ってるけど。
0616nobodyさん
2008/12/15(月) 14:54:53ID:???でも、_forwardだと共通の画面しか出せませんよね?
状態によって、エラーメッセージを振り分ける必要がある場合はどうするのがベストでしょう?
理想としては
public function preDispatch()
{
if (!$auth) {
// ここで認証状態を判別して、個別のエラーメッセージを表示
// dispatchループを抜けて、継続するActionは破棄する
}
}
みたいな処理にしちゃいたいのですが…。
0617612
2008/12/15(月) 15:21:23ID:???> でも、_forwardだと共通の画面しか出せませんよね?
> 状態によって、エラーメッセージを振り分ける必要がある場合はどうするのがベストでしょう?
個別メッセージがどのような条件で切り替えられるのかにもよるが、
preDispatchで処理するぐらいだからそれほど細かいものでも無かろう?
で、_forward()してもUriは変わらない、$this->_getParam()でcontrollerやactionを取ると元のままなので、
それらで判別してエラーアクション内でメッセージを切り替えるってのはどうよ。
#ただ、コントローラの独立性が少し失われてしまうが...
他には、Zend_Registryに格納するしかないかなぁ。
0618nobodyさん
2008/12/15(月) 15:27:35ID:???レスポンスオブジェクトに設定して_forward
0620nobodyさん
2008/12/15(月) 15:58:13ID:???やはりAction間で値を受け渡す変数は必要になるんですね。
色々試してみます。
0621nobodyさん
2008/12/15(月) 23:23:41ID:???ZFがフレームワークとしてユルイってのを実感してるよ。
Action中に十何個ものswitch caseがあってメンテする気起きねえ。
0622nobodyさん
2008/12/15(月) 23:49:09ID:???0623nobodyさん
2008/12/16(火) 02:34:01ID:???0624621
2008/12/16(火) 02:49:58ID:???switch case文の嵐以外の方法を知りたいだけ。
0625nobodyさん
2008/12/16(火) 03:05:05ID:???0626nobodyさん
2008/12/16(火) 03:24:54ID:???という事に気づけない621が腐ってる。
って事でおk?
0627621
2008/12/16(火) 03:53:21ID:???単にZF使っただけってシステムで・・・。
設計なんて誰もやってないさね。力技で作って・・・。
0628nobodyさん
2008/12/16(火) 11:53:37ID:???0629nobodyさん
2008/12/16(火) 13:05:30ID:???0630nobodyさん
2008/12/16(火) 13:20:56ID:???どんどん条件が複雑になっていってactionが腐れた
というよくある失敗例に見える
0631nobodyさん
2008/12/16(火) 13:37:31ID:Rl9W2bGtどこに問題があるんでしょうか? よろしくお願いします
//IndexController アクション
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action{
public function indexAction(){
echo date('U');
} //不要な場合は、メソッドの中は空でも構いません
public function helloAction(){ //helloアクションメソッド
Zend_Registry::set('testParam' ,'12345test');
$this->view->testP = "設定したテストパラメータは".Zend_Registry::get('testParam')."です";
}
}
//テンプレ
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<?php print($this->escape($this->testP)); ?>
</body>
</html>
0632nobodyさん
2008/12/16(火) 14:46:08ID:???$front->throwExceptions(true);
等でエラーの情報を提示してみたらどうでしょう。
0633nobodyさん
2008/12/16(火) 20:56:47ID:Rl9W2bGtどうもありがとう
viewRendererは無効にしてないんです
根本的に書式とか構造とかに問題があるのかなと思ったんですが
指摘がないってことはそうでもないんですよね? なんでかなぁ…
0634nobodyさん
2008/12/16(火) 21:59:57ID:???ローダー使ってないと想像するけれど、
require_once 'Zend/Registory.php';はどこかでしてるの?
0635nobodyさん
2008/12/16(火) 22:23:00ID:Rl9W2bGtお恥ずかしい!忘れてました、コンポーネント呼び出すの!
このZend_Registryコンポーネントって、変数や配列の宣言に使うんですよね?
スクラッチで書くときみたいに $hoge = "変数です"; みたいな定義はZendFWじゃやっちゃいけないのかな
引数が2つしかないけど、変数の型(数値・文字列)は気にしないってことでしょうか
0636nobodyさん
2008/12/16(火) 22:23:38ID:???0637nobodyさん
2008/12/16(火) 22:45:02ID:???各アクションでプロパティ名が被りそうで怖くて
フレームワークの意味が無さ過ぎるNE。
0639nobodyさん
2008/12/16(火) 23:37:13ID:???0640nobodyさん
2008/12/16(火) 23:41:05ID:???http://framework.zend.com/manual/ja/requirements.html
ってなってるけど、いつから? 俺が使い出したときは5.1.xだったと思うんだけどな。
CentOS5.2は5.1.6で、個人のリポジトリで5.2.6を公開しているところがあることは知ってるんだが、
何となく躊躇してる。
とりあえずPHP5.1.6とZF1.7.1でも、今使っている範囲では問題なく動いているっぽいが、
どういったところでPHP5.1系で問題があるのか知っている人いる?
0641nobodyさん
2008/12/16(火) 23:44:16ID:???ZFはコントローラクラスのアクションメソッド内に記述するのがメインだから
ベタ書きと違って、変数作っても全部がローカル変数になるよね。
だから、別のアクションメソッドで
同じ名前の変数作ってしまっても被らない。
逆に言えば、他のクラスからは、意図的に変数を渡さなきゃ、
値が受け取れないって事でもある。
ビューで変数の値を出力するために
$this->view->hoge = 'hoge';ってしなきゃいけない様に。
主にビュー以外の用途で、変数を運ぶトラックがZend_Registory。
フロントコントローラなんかで、サイトのタイトルとかDBの情報みたいな
各コントローラで共通する情報を登録しておいたりするのが普通かな。
ベタ書きからのフレームワーク移行は最初は大変だと思うけど頑張ってなー
0643nobodyさん
2008/12/17(水) 00:23:34ID:???ZFは知らないけど、PHP自体のPDOのバグとかいくつか修正されてるし
Zend_Dbの中身はPDOだから、ZF動いてても気持ち悪ければUPじゃね。
設定地獄で逆に動かなくなるかもしれないけど…。
0644nobodyさん
2008/12/17(水) 03:31:33ID:???PDOのバグとかクリティカルな問題はディストリがメンテしてないかなぁ。
本当は ttp://www.jasonlitka.com/ から5.2.6を入れてみたんだが、
マッチパターンに日本語が混じる正規表現がうまく動かないというのが手元の環境で出て、
mb_ereg、ereg、preg全てダメだった。5.1.6やソースからビルドした5.2.5はちゃんと動いた。
環境の設定がらみかなと思ったんだが解決せずじまい。
jason のビルドに問題有りと決めつけているわけじゃないのだが、
さらに検証するのも面倒なんで、本鯖では避けてる状態。
ソースからビルドしてもいいけど、後々メンテ面倒だし。
つっても、jasonビルドも5.2.6で止まってるがなぁーw。
0645nobodyさん
2008/12/17(水) 16:28:02ID:Fnh4GsCx基本的にデザインの構成はテンプレートファイル(.phtml)でやるわけですが、
パラメータを受けて同じページでも画面の一部が切り替わることってあるじゃないですか
たとえば、ポータルサイトでよくある
・ログイン済みならメールの受信状況
・ログインしてなければアカウント作成への誘導
みたいに。
ああいうのって、表示切替の規模や内容が単純ならテンプレ中で.phtmlの中でif文で
振り分ければいい気がするけど、実際にはパターンごとに別々のクエリを動かす可能性も
あると思います(上の例だとメールの新着確認するとか)
その場合、タイプごとにモデルを作ってその中でクエリからhtmlの部分的な書き出しをして
テンプレの中に出力するようにするんですか?
みなさんどんな風に処理してますか? ご意見お願いします。
0646nobodyさん
2008/12/17(水) 17:00:12ID:???コントローラーで必要な条件を割り出して、必要なモデルで処理をして
結果をスタックする。
ビューはスタックを出力しまくるだけ。
0647nobodyさん
2008/12/17(水) 21:54:11ID:???0648nobodyさん
2008/12/17(水) 22:05:17ID:???0649nobodyさん
2008/12/17(水) 23:29:31ID:???Windows環境で、コントローラ名がFooBarController.phpで、Viewのパスを/view/scripts/FooBer/で指定してたんだが、
Linuxへ移植したら「コントローラ名が見つかりません」って言われた。
試しにFoobarController.phpで、Viewのパスを/view/scripts/Foober/で指定したら通った・・・orz マジかよ・・・
0650649
2008/12/17(水) 23:31:06ID:???○試しにFoobarController.phpで、Viewのパスを/view/scripts/foober/で指定したら(ry
viewのディレクトリ名違ってた。
0651nobodyさん
2008/12/17(水) 23:47:20ID:???ViewRenderを使用しているという前提なら、
FooBarController の場合 view は /view/script/foo-bar/ を探し、
FoobarController の場合 /view/script/foobar/を探します。
http://framework.zend.com/manual/ja/zend.controller.actionhelpers.html#zend.controller.actionhelpers.viewrenderer
詳しくは、↑のマニュアルの「デフォルトの検索方式」をどうぞ。
0653nobodyさん
2008/12/18(木) 00:09:16ID:???ありがとうございます
しかしよく理解できません、スタックって? IT用語辞典で調べたら一番最後に格納したデータが最初に出てくる
いろんな要素を格納する箱、のようなことが書いてありました
具体的にはどういうことなんでしょうか?
>俺も必要なデータを全てassignして、テンプレートは表示の振り分け以外使わない
つまり、assign前のモデルやメソッドで情報の最適化はするんですよね?
本来テンプレートに任せるべきhtml出力も場合によってはそれ以前(モデルなど)の中で
してしまうということですか?
ともかくありがとうございました
0654nobodyさん
2008/12/18(木) 02:40:01ID:???>本来テンプレートに任せるべきhtml出力も場合によってはそれ以前(モデルなど)の中で
>してしまうということですか?
しないよ。
HTML形成に必要な情報だけをassignする。
HTMLの生成はあくまでテンプレート側、
だからテーブル組とか複雑なページ構成だとテンプレートコードが超カオスになる…
どうするのがベストなんだろうねー。
0655nobodyさん
2008/12/18(木) 03:08:45ID:???まずコントローラはログイン情報を元にloginStatusModelを生成。
このときログインしてなかったらloginStatusModelはnullでもいい。
あとはそのままloginStatusModelをビューに渡す。
全体的なビュースクリプト(ex. index.phtml)からログインバー部分のテンプレート(loginStatusBar.phtml)を
読み込んでその中で、loginStatusModelを元にログイン時のテンプレート(loginedStatusBar.pthml)か
未ログイン時のテンプレート(notloginBar.phtml)かを切り替えて表示。
もうちょっとコンポーネント指向的にやるなら、コントローラからビューにログイン情報オブジェクトを渡して
ビュー側でloginStatusModelを呼び出して表示してもいいと思うのだけどね。
0656nobodyさん
2008/12/18(木) 07:02:29ID:???スタックだけれど、たとえば、Zend_Viewヘルパーのplaceholderはスタックの一種。
プレースフォルダーに"スタック"していけば、
ビュー側ではプレースフォルダをechoするだけになります。
この場合、おっしゃられるように
> 本来テンプレートに任せるべきhtml出力も場合によってはそれ以前にしてしまうということですか?
完全に1枚のビューに任せるのではなく、部分的なrenderを行ってそれをスタック、
最後はそれを結合するというようなコントローラーになります。
しかし、段階的なビューの育成が気に入らない場合は、コンテンツとビュースクリプト名をセットにして
スタックを順にレンダリングしていくようなヘルパーを作成するとよいかと。
言われてみて思ったけど、おれも作るわw
0657nobodyさん
2008/12/18(木) 07:10:22ID:???placeholderはスタックじゃないね。ごめん
後入れ、先出し
0658nobodyさん
2008/12/18(木) 09:36:52ID:???>だからテーブル組とか複雑なページ構成だとテンプレートコードが超カオスになる…
ですよねぇ、、 これ嫌ですよねー。どうすんべ、、
0659nobodyさん
2008/12/19(金) 01:48:58ID:Yo9sHh7s0660nobodyさん
2008/12/19(金) 01:56:10ID:???0661nobodyさん
2008/12/19(金) 04:14:38ID:???0662nobodyさん
2008/12/19(金) 10:43:58ID:???0663nobodyさん
2008/12/19(金) 13:41:41ID:N7fEKEUT流れるようなインターフェイスってや津を自分のスクリプトで実装したいです。
ZFのどのファイル見たらずばっと解決するでしょうか?
0665nobodyさん
2008/12/19(金) 14:56:50ID:???ZFのマニュアルにあるように、流れるようなインターフェイスってのをやりたいと思っています。
以下のような記述です。
$hoge->setA('A')->setB('B')->setC('C')
0666nobodyさん
2008/12/19(金) 15:07:35ID:???0667nobodyさん
2008/12/19(金) 15:52:12ID:???0668nobodyさん
2008/12/19(金) 23:40:24ID:???Zend_Cache_Frontend_Outputか Zend_Cache_Frontend_Pageのマニュアルが参考になるかも
>>665
return $this がキモ。
0669nobodyさん
2008/12/20(土) 01:34:15ID:???0670649
2008/12/21(日) 11:18:40ID:???やっぱりコントローラ名は駄目みたい。
/application/apps/controllers/FooBarController.php
<?php
require_once 'Zend/Controller/Action.php';
class FooBarController extends Zend_Controller_Action
{
public function indexAction ()
{
}
}
?>
Linux環境に限ってInvalid controller specified (FooBar)が出るわ、
windows<->Linuxの互換のためには、キャメルケースでコントローラ名
付けたら駄目なのか・・・orz これはFW仕様でしょうか?
0671nobodyさん
2008/12/21(日) 11:25:51ID:???それぞれの仕様をマニュアルで確認すれば問題のある動作はしないと思いますよ。
OSによってファイル検索時のケース依存が変わるので出来たり出来なかったりするのは
基本的に正しくないパスを与えている場合なので、今一度マニュアルを確認してみてはいかがでしょう
0672649
2008/12/21(日) 11:54:28ID:???ありました・・・
http://framework.zend.com/manual/ja/zend.controller.basics.html
コントローラクラスやアクションメソッドの名前に MixedCase あるいは
camelCase の単語を複数使用したい場合は、 URL 上での単語の区切り文字
として '-' あるいは '.' のいずれかを使用しなければなりません
(とは言え、ここで使用する文字は変更することができます)。
たとえば、アクションを FooBarController::bazBatAction() で定義したと
すると、対応する URL は /foo-bar/baz-bat あるいは /foo.bar/baz.bat
となります。
ご助力頂き、ありがとうございました。
0673nobodyさん
2008/12/31(水) 23:10:04ID:???911では小型の水爆が使用されている。
http://ri■ch■ardkosh■im■izu.at.webry.info/
創価の保険金殺人事件。
オウム事件は、統一・創価.北朝鮮の共同犯行である。CIAが監修している。
http://www15.ocn.ne.jp/~oy■ako■don/kok_web■site/ir■iguc■hi.htm
与党も野党もメディアも全部朝鮮人だった。
http://jb■bs.li■vedo■or.jp/b■bs/read.cgi/news/20■92/115794■1306/
2ちゃんねるは統一■教会が個人情報を集めるための道具。運営には統一■教会がいる。
駅前で「手相を見せてください」と勧誘してるのが統一教■会。(カルト宗教)
カルト宗教の下にいる人と上にいる奴を分けて考えないといけない。下にいる利用される人は上がどんなことをしてるか知らない。
ユダヤ権力の子分→2ちゃん運営=統一協会上層部=層化上層部=自民党清和会=野党の朝鮮人ハーフの政治家=
与党の朝鮮人ハーフの政治家=金 正日(キム・ジョンイル )=読売サンケイ=小沢十朗
ユダヤ人=ロックフェラー=ブッシュ=クリントン=ヒラリー=アドルフ・ヒトラー=オサマ・ビンラディン
毎日新聞スレを荒らしてる奴らも統■一教会の可能性が高い。
荒らしは洗脳するために「ネトウヨ」などのレッテル付けレスを何千回もする。
現実には「ネトウヨ」などは存在しない。
http://changi.2ch.net/test/read.cgi/ms/1230363385/
0674nobodyさん
2009/01/08(木) 22:12:51ID:F2D+k5Kuこういうのせっせとあちこちに貼ってる人間の心理ってどうなってるんだろう
0675nobodyさん
2009/01/12(月) 01:17:09ID:???使ってみようと思ったら、日本語リファレンスは充実してるけど、
肝心のWebアプリを作るのにどこからはじめていいかわからないしさ
疎結合にもほどがある
そこがいいとも思うんだけどね・・・
0676nobodyさん
2009/01/12(月) 05:05:08ID:???0677nobodyさん
2009/01/12(月) 08:29:57ID:???0678nobodyさん
2009/01/12(月) 13:35:56ID:???0679nobodyさん
2009/01/12(月) 16:44:32ID:???今のリファレンスだけでは、何が出来るかすら理解し辛い。
0680nobodyさん
2009/01/12(月) 16:55:08ID:???0681nobodyさん
2009/01/12(月) 18:31:43ID:???0682nobodyさん
2009/01/12(月) 18:36:42ID:???0683nobodyさん
2009/01/12(月) 19:00:35ID:???index.phpでrequire_onceするのはどう考えても正しくない使い方だろ。
ZendFrameworkはどう使うことが正しいかということが知りたいんだよ。
0684nobodyさん
2009/01/12(月) 19:04:23ID:???index.phpはブートストラップの起点だろ
0686nobodyさん
2009/01/12(月) 19:45:21ID:???0687nobodyさん
2009/01/12(月) 19:59:40ID:???メリットも不透明じゃ誰も習得しようとはしないだろうし、廃れる一方な気がす。
0688nobodyさん
2009/01/12(月) 20:06:02ID:???(´・ω・`)つ http://framework.zend.com/manual/ja/
0689nobodyさん
2009/01/12(月) 20:13:20ID:???一通り読んでるけど、アプリを作り込む上では情報足りなさすぎるよね。
結局ソースを漁る事になる。
phpDocとか無いの?
0690nobodyさん
2009/01/12(月) 20:22:44ID:???どんなFWだってソースみないで開発する気にはならんし。
phpDocなら自分好みのフォーマットで自分で作った方が手っ取り早いし
IDEがあればphpDocはいらんし。
まぁ、個人差?
0691nobodyさん
2009/01/12(月) 20:24:50ID:???先にFW作れよ
0692nobodyさん
2009/01/12(月) 20:27:33ID:???0693nobodyさん
2009/01/12(月) 20:29:15ID:???つ http://framework.zend.com/apidoc/core/
0694nobodyさん
2009/01/12(月) 20:33:11ID:???0696nobodyさん
2009/01/12(月) 20:35:38ID:???ユーザは多いに越したことは無い
0697nobodyさん
2009/01/12(月) 20:36:10ID:???0698nobodyさん
2009/01/12(月) 20:36:30ID:???0699nobodyさん
2009/01/12(月) 20:42:53ID:???0701nobodyさん
2009/01/12(月) 20:46:39ID:???0702nobodyさん
2009/01/12(月) 20:49:28ID:???スレ的に、初心者の質問すら滅多に無いのは酷すぎるw
0703nobodyさん
2009/01/12(月) 20:51:55ID:???0704nobodyさん
2009/01/12(月) 22:09:45ID:???敷居を下げすぎて失敗した(しかかっている)FW(詳細略)
とは方向性が違うってことは言える。
0705nobodyさん
2009/01/12(月) 22:33:38ID:???Zend Library という名前のほうが相応しい気がするよ。
0706nobodyさん
2009/01/12(月) 22:47:13ID:???0707nobodyさん
2009/01/12(月) 23:28:59ID:???0709nobodyさん
2009/01/13(火) 10:41:32ID:???0710nobodyさん
2009/01/13(火) 22:01:50ID:???ちゃんとカテゴリごとにパッケージングされたのをPEARインストーラ経由で
インストールできるといいんだけどね。特にWebサービス系とか。
展開後のファイル数とかサイズの問題じゃなくて、現状だと必要なコンポーネントの
更新やバグ修正もZend Framework全体のリリースを待たないといけないし、
SVNではstableかどうかの判断もつかない。
0711nobodyさん
2009/01/16(金) 19:03:05ID:???0713nobodyさん
2009/01/16(金) 19:32:51ID:???自己レスだけどnewじゃなくてtoStringが重かったみたい。
(ループごとにインスタンスを生成せず使いまわしても変わらなかった)
14件のデータに対して表示まで1.33秒ほどかかるところを
$date->set($row['date_begin']);
$row['begin'] = $date->toString('YYYY年M月d日(EE)');
$date->set($row['date_end']);
$row['end'] = $date->toString('YYYY年M月d日(EE)');
↓
$row['begin'] = date('Y年n月j日', strtotime($row['date_begin']));
$row['end'] = date('Y年n月j日', strtotime($row['date_end']));
に変えたところ0.58秒ほどで終わった。
やたら重いです先生。
0714nobodyさん
2009/01/16(金) 21:47:16ID:???0715nobodyさん
2009/01/16(金) 22:56:00ID:???toString のソースを読んで戦慄した。
timestampとってきて、strftimeなりで整形する方が良い気がするわこれ。
0716nobodyさん
2009/01/20(火) 22:02:04ID:???0717nobodyさん
2009/01/22(木) 15:16:05ID:???だけど、意外と使ってる人の情報少ないね
0718nobodyさん
2009/01/22(木) 15:32:53ID:???Dojoなんてあんまり使ってる人みたことないけど
0719nobodyさん
2009/01/22(木) 15:36:11ID:???個人が試行錯誤してブログ書いたりってケースは少ないかもな。
おれは個人で使ってるけどw
0721nobodyさん
2009/01/22(木) 18:56:07ID:???0722nobodyさん
2009/01/26(月) 16:03:21ID:???他のフレームワークみたいに、各コンポーネントを組み合わせて使うと手間半分で効果二倍!みたいな解りやすい恩恵が無いから、意欲的に色々使ってみよう!って気にはならないね。
ライブラリとしては割と優秀な気がするけど。
0723nobodyさん
2009/01/29(木) 22:20:22ID:BSzN+ksd<?php
require_once 'Zend/Date.php';
$date = new Zend_Date();
echo $date;
?>
このプログラムを異なるPCで実行した場合以下のように
29.1.2009 xx.oo.??
2009/01/29 xx:oo:??
異なってしまったのですが、どうしてもドットではなく、スラッシュ形式で使用したいです。
どうにかなりませんか?
0725nobodyさん
2009/01/30(金) 08:36:16ID:???$now = $date->toString('yyyy/MM/dd');
echo $now;
これじゃだめなん?
0726nobodyさん
2009/01/31(土) 03:02:47ID:???0727nobodyさん
2009/01/31(土) 03:07:37ID:???0728nobodyさん
2009/01/31(土) 21:01:38ID:???しょっちゅう使ってるしそんなに重いかな?
0729nobodyさん
2009/01/31(土) 21:08:34ID:???0730nobodyさん
2009/01/31(土) 22:18:38ID:???0732nobodyさん
2009/02/01(日) 00:59:58ID:???コーディング規約は無視気味に使ってますが・・・
だってタブを半角4文字ってねえ。手間としてもファイルサイズ面でも無駄なんじゃないの
0733nobodyさん
2009/02/01(日) 01:25:49ID:???読んでて解らないところが次のページには載っててどんどん書ける感じだわ。
少なくとも、白と緑の入門のアレなんかとは段違いで実用的。
0734nobodyさん
2009/02/01(日) 02:26:27ID:???もしかしてタブをいちいち手かプログラムかなんかで空白に変換してるのか?
0735nobodyさん
2009/02/01(日) 02:55:29ID:???ZendFramework最大のウリはコーディング規約ですよ?
>>734
挿入は楽だが、修正/削除時の位置揃えががめんどい。
インデントに半角スペースを推奨ってのは一般的だと思うが、個人的にはタブの方が好ましいかな。
表示が崩れるとか云々はエディタ側で対応出来るし、
プロポーショナルフォント使った場合はどうするんすかwww って気もするし。
0736nobodyさん
2009/02/01(日) 08:49:42ID:???挿入は楽で、修正/削除がめんどい意味が分からない。
エディタ変えた方が良いんじゃないだろうか。
0737nobodyさん
2009/02/01(日) 13:19:35ID:???入力…タブキー一回
削除…バックスペース一回
スペースの場合
入力…タブキー一回(エディタ設定による)
削除…バックスペース4回、or 行を選択してShift+TAB等
0738nobodyさん
2009/02/01(日) 13:41:20ID:???0740nobodyさん
2009/02/01(日) 13:54:57ID:???激しく動意。
初心者のひと白と緑のアレ買っちゃわないようにね。
0741nobodyさん
2009/02/01(日) 13:55:52ID:???0742nobodyさん
2009/02/01(日) 14:25:26ID:???オートインデントとか、エディタ側依存を前提にするなら、
スペースだろうがタブだろうが関係無いって話になるから却下。
0743nobodyさん
2009/02/01(日) 14:26:30ID:???0744nobodyさん
2009/02/01(日) 15:32:41ID:???ってことらしい。
0747nobodyさん
2009/02/01(日) 18:38:07ID:???プロジェクトの迷惑になるから早めに死ねよw
0748nobodyさん
2009/02/01(日) 23:21:23ID:???しょうがないんだよ。
俺がこれ買った時は徹底の方でてなくて事実上こっちしかなかったんだ・・・
徹底を持ってないから比較できないんだけどさ。
この入門の方も一応多少は役に立ったんだけど。
0749nobodyさん
2009/02/02(月) 05:16:19ID:???プロジェクトの迷惑だわな。
フレームワークだったり言語仕様だったり。
0750nobodyさん
2009/02/02(月) 08:08:27ID:???黒いの出る前から持ってるがZF初めての人なら買ってもいいんじゃね?
とはいえ黒いほうが出ちゃったから黒でいいがw
0751nobodyさん
2009/02/02(月) 10:25:19ID:???0752nobodyさん
2009/02/02(月) 15:00:23ID:???0753nobodyさん
2009/02/02(月) 19:17:23ID:pyoydElkobject(hogeRow)#69 (8) {
["_data:protected"] => array(8) {
["id"] => string(1) "1"
}
["_cleanData:protected"] => array(8) {
["id"] => string(1) "2"
}
・・・
次の方法で取得すると、「_data」側の値「1」が取得されます。
$object->id;
本当は「_cleanData」側の値「2」を取得したいのですが、方法はありますでしょうか。
宜しくお願いします。
0754nobodyさん
2009/02/02(月) 19:25:40ID:???rowsetのデータだったら、rowは返らないんじゃない?
rowsetから取得した行ってことでいい?
で、_cleanDataは自分で作ったの?それともどこかのオブジェクト?
いずれにしても、具象クラスを書くときに、current()を実装しなおして、
public function current()
{
$row = parent::current();
$row['data'] = $this->_cleanData[$this->_pointer];
return $row;
}
とでもしてみたらどうかな。ま、実装をエスパーしてるだけだから違うかもしれんけど。
0755nobodyさん
2009/02/02(月) 19:26:58ID:???0756nobodyさん
2009/02/02(月) 19:29:46ID:???0757nobodyさん
2009/02/02(月) 19:38:32ID:???自前で、Zend_Db_Table_Row_Abstractを継承したクラスを作って、__getを再実装
で、取得する側で、setRowClassでそのクラス名を充てて取得する。
0758nobodyさん
2009/02/02(月) 19:46:18ID:???すみません、Zend_Db_Table_Row_Abstractの間違いでした。
教えていただいたとおりできちんとできました。おかげさまで助かりました。
本当にありがとうございます。
0759nobodyさん
2009/02/02(月) 23:21:32ID:???0760nobodyさん
2009/02/03(火) 16:15:28ID:U0x1Z73iこんなメッセージが出る "image/pjpeg" not found by file transfer adapter
どうすればいいか教えてくれ。
0762nobodyさん
2009/02/04(水) 14:42:44ID:???Cannot determine font type: /path/to/font.otf
というエラーが出ます。
TrueTypeフォントの読み込みは問題ありませんでした。
ドキュメント上ではOTFの読み込みに対応しているはずですが、
何かほかのやり方があるのでしょうか?
0763nobodyさん
2009/02/04(水) 18:59:38ID:0LHQjeSW0765nobodyさん
2009/02/06(金) 14:17:07ID:rXNYLOMnパラメータで詰まってるから助けてください><
0766nobodyさん
2009/02/06(金) 15:32:38ID:???0767nobodyさん
2009/02/06(金) 18:06:14ID:???0768nobodyさん
2009/02/06(金) 18:12:47ID:???0769nobodyさん
2009/02/06(金) 18:34:47ID:???0770nobodyさん
2009/02/06(金) 18:39:27ID:???0771nobodyさん
2009/02/06(金) 19:40:41ID:???0772nobodyさん
2009/02/06(金) 19:56:36ID:???0773nobodyさん
2009/02/06(金) 21:37:29ID:???0774nobodyさん
2009/02/06(金) 21:51:31ID:???このライブラリいきなり大きく挙動変えてくるから最悪だ
0775nobodyさん
2009/02/06(金) 21:51:48ID:???0776nobodyさん
2009/02/06(金) 21:55:45ID:???0777nobodyさん
2009/02/06(金) 21:56:49ID:???0779nobodyさん
2009/02/06(金) 22:17:05ID:???<?= $this->paginationControl($this->paginator, 'Sliding', 'my_pagination_control.phtml'); ?>
これお前の言う手書きで書いてみて。
0781nobodyさん
2009/02/06(金) 22:29:23ID:???0785nobodyさん
2009/02/07(土) 00:38:18ID:???0786nobodyさん
2009/02/07(土) 00:39:40ID:???0787nobodyさん
2009/02/07(土) 00:45:29ID:???0788nobodyさん
2009/02/07(土) 22:47:57ID:???0789nobodyさん
2009/02/07(土) 22:49:22ID:???0790nobodyさん
2009/02/07(土) 22:59:40ID:???0791nobodyさん
2009/02/07(土) 23:00:05ID:???0792nobodyさん
2009/02/07(土) 23:00:33ID:???0793nobodyさん
2009/02/08(日) 11:23:27ID:IjLcqr1c0794nobodyさん
2009/02/09(月) 15:26:56ID:0eQmcoPcttp://www.google.co.jp/search?lr=lang_ja&q=%22powered+by+zend+framework%22
0795nobodyさん
2009/02/10(火) 11:37:59ID:???ライブラリ的な使い方しかしたこと無いなぁ。
0796nobodyさん
2009/02/11(水) 14:36:15ID:???読み込みに時間がかかってしまう。
そこで、AJAX出力のMVC処理をPHPファイル1つにまとめて
ZFアプリの外に置き、読み込みテストをしてみた。
以下、FireBugのコンソールに表示された読み込み時間
ZF・・・1.87s
テスト結果・・・137ms
これはwwww
0797nobodyさん
2009/02/11(水) 16:21:21ID:???0798nobodyさん
2009/02/11(水) 18:13:20ID:???htaccessでRewriteEngineが設定できない環境なのですが、
その場合URLはどのようになるのでしょうか?
設定できない場合がドキュメントに書かれておらず困っています。
0799nobodyさん
2009/02/11(水) 18:15:58ID:???これはいつ対応してくれるんだろ。
PHP OpenID Libraryは使いにくくて・・・
0800nobodyさん
2009/02/11(水) 18:16:27ID:???0802nobodyさん
2009/02/11(水) 18:55:52ID:???0803nobodyさん
2009/02/13(金) 04:18:26ID:???クッキーの処理ってどうしたら良いんでしょうか?
ローカルホスト上で、単純にカウントするのを検証しているんですが、
$this->hoge = new Zend_Http_Cookie( "counter", 1, "localhost");
これで、$this->hogeにクッキーがセットされてたらクッキーから取得、
セットされてなければ上記のnewで生成、
これじゃダメなんですかね?
private $hoge;
$name = "counter";
$host = "localhost";
if( !isset( $this->hoge ) )
{
$val = 0;
$this->hoge = new Zend_Http_Cookie( $name, $val, $host );
}
else
{
$val = $this->hoge->getValue();
}
$val++;
echo $val;
$_COOKIEも使えないみたいで、indexActionでやってるんですが、
どうやってもカウントが出来ません・・・。
もしかして、全然検討違いなことやってますかね?
0804nobodyさん
2009/02/13(金) 07:33:44ID:???0806nobodyさん
2009/02/13(金) 22:04:51ID:???レスありがとぅーッス。
1つのphpファイルの場合、
$_COOKIEにセットされているかいないか
と分岐させて書いてた事があり、
同じ感じで書いてみてるのですが、
アクション内ではセットされてないんですか?
0807nobodyさん
2009/02/13(金) 23:17:16ID:???$this->_getParam('counter') なり、リクエストオブジェクトから取らないとダメなんじゃね。
Zend_Http_Cookieが、値を渡さずにインスタンスを生成したときに、
リクエストの中に、名前が同じCookieがあれば、その値を代入するようになってて欲しかったなぁ。
0808nobodyさん
2009/02/14(土) 14:55:44ID:???レスありがとう!
やっぱダメなんですかね。
リクエストオブジェクトからだと、
クッキーとしての機能はどうなんですかね。
掲示板の入力項目の記憶とか。
う〜ん、どうやったらいいんでしょう・・・。
白緑、徹底入門を読んだり、
検索してるんですが、どうも情報が見つけられないっす。
かなりハマっています・・・。
0809nobodyさん
2009/02/14(土) 15:08:04ID:???Zend_Http_CookieJar
0810nobodyさん
2009/02/14(土) 15:10:30ID:???0811803,806,808
2009/02/15(日) 00:18:09ID:???さっぱり判んねぇっす。
>>810
ち、違うんですか。
すみません、どなたかクッキーの使い方の簡単なコード書いてもらえないでしょうか。
公式のマニュアルだけでは、すみません、
未熟な者でよく判らないです。
例えば >>803 みたいにカウントさせて、
有効期限切れたら0からスタート、みたいな・・・。
つーか、何回もすみません。
ほんっと、どうしたら良いか判らなくて。
0812nobodyさん
2009/02/15(日) 00:50:34ID:???0813nobodyさん
2009/02/15(日) 07:50:07ID:???クッキーを受け取る(アクションコントローラー内)
$this->getRequest()->setParamResource(array('_GET', '_POST', '_COOKIE');
としておくか
$this->getRequest()->getCookie('hoge',false);
みたいな。
クッキーの発行は標準関数のsetcookie
掲示板の入力項目の記憶ならZend_Sessionで、覚えててねフラグを立てる。
短いセッションを別に作りたいときは、Zend_Sessionのnamespaceを使う
0814nobodyさん
2009/02/15(日) 13:32:31ID:???0815811
2009/02/15(日) 23:27:17ID:???ありがとうっす!!
できました!!!
Zend_Http_Cookieにばかり目がいってしまい、
リクエストオブジェクトのgetCookie見落としてました。
発行もZF専用のがあるかと思ったんですが、
setcookieでいけるんですね!!
前やった時できなかったので、
なんか間違えてたのかもしれません。
$_COOKIEもちゃんと入ってました。
おかげ様でスッキリ爽快!!
これでバリバリ勉強できます!!!!
>>813さんは良い人!!!!!
ありがとうございました!!!!
0816nobodyさん
2009/02/16(月) 18:56:57ID:???0817nobodyさん
2009/02/16(月) 20:05:34ID:???0818nobodyさん
2009/02/16(月) 20:06:04ID:???0819nobodyさん
2009/02/17(火) 14:02:49ID:???ここにいる人はコマンドからインストールだろうけど
ウェブからやっちゃう人向けにスクリプト書いてみました。
<?php
include_once 'Archive/Zip.php';
define('ZEND_ARCHIVE', './ZendFramework-1.7.5.zip');
define('INSTALL_DIR', '/php/includes/');
$path = basename(ZEND_ARCHIVE, '.zip') . '/library/';
$param = array(
'by_preg' => '#' . $path . 'Zend/#',
'add_path' => INSTALL_DIR,
'remove_path' => $path
);
$zip = new Archive_Zip(ZEND_ARCHIVE);
$zip->extract($param);
echo $zip->errorInfo();
0820819
2009/02/17(火) 14:06:50ID:???by_pregにはi修飾子つけないと一部のファイルが抜き出せないみたいです。
#' . $path . 'Zend/#i
0821nobodyさん
2009/02/17(火) 23:39:53ID:???0822nobodyさん
2009/02/18(水) 00:28:23ID:???0823nobodyさん
2009/02/18(水) 01:25:20ID:???http://framework.zend.com/manual/ja/zend.wildfire.html
画面に出すデバッグメッセージより制約が無くて便利じゃないか
0824nobodyさん
2009/02/18(水) 01:30:40ID:???0825nobodyさん
2009/02/18(水) 01:51:37ID:???任意のデバッグメッセージやSQLトレースをクライアントに送りつけるものであって、
そういうのは対象じゃないと思うんだけど
0826nobodyさん
2009/02/18(水) 13:24:49ID:OeM2TrBc複数で取得するにはどうすればいいか教えてくれ。
0827nobodyさん
2009/02/18(水) 13:45:55ID:???0829nobodyさん
2009/02/18(水) 21:32:31ID:???ZFは疎結合とか言われてる割に、シンプルなMVCとして使えることも分かった。
ただ、ZFって提供してくれる実際の機能の少なさの割りに
工程数がアホみたいに掛かっててどうしょうも無く重い。
しかも、その工程数が、おかしな挙動と
(個々のコードではなくクラス全体の)見通しの悪さに繋がっている。
まるでたらい回しにされたあげく、大した事もしてくれず
時間とコストばかり掛かる日本の地方のお役所みたいなFWだと思う。
コードが綺麗だから一見、しっかりしてそうに騙されるんだけど
体裁だけ整えた役所のレポートと同じで内容が駄目だよ。
ドキュメントも量ばかり多くて重要なところが省かれてるし
英語の方のドキュメントの質もアスペルガーの人がわめいてる並に
分かり難いから翻訳者が困ってるのが見て取れる。
0830nobodyさん
2009/02/18(水) 22:05:10ID:???>分かり難いから翻訳者が困ってるのが見て取れる。
ってどの辺?
0832nobodyさん
2009/02/19(木) 19:04:32ID:aKK5Rtx4selectオブジェクト渡せるらしいだが、使い方がわからん。
そのテーブルに対するselectになるの?joinも書かないとダメなの?
0833nobodyさん
2009/02/19(木) 22:32:45ID:???0834nobodyさん
2009/02/19(木) 22:37:20ID:aKK5Rtx4だけど、そこから条件指定したり、並び替えしたりしたくて、selectオブジェクト使いたいんだけど、
どうやって使えばいいかわからない。
第5引数のselectは一体、どうやって使うのかわからないんだ。
どのテーブルに対してのselectオブジェクトを渡しても、期待通りの動きをしてくれない。
0835nobodyさん
2009/02/20(金) 01:02:36ID:???ZFは好きなんだ。
MVCモデルで作っていくのはいいんだけど、重さはいかんともしがたい。
Zendの有料ソフトをそろえたら少しはマシになるの?
大規模なプロジェクトの場合には、その辺が簡単に解決できるのかな?
ZFで作るとMVC設計の考え方がわかるので、
そこで理解した設計法を元に、オブジェクト指向(的も含む)スクリプトを書くのが
いいんじゃないかと思う。
そんなのが許されるのがPHPだし、
もしかしたら、それがPHPを一番活かせるのでは?と思ってしまう。
ビシっとガチっと設計したいなら
ほかの言語とフレームワークの方がいいのでは?と思ってしまう。
間違ってますかね・・・?
0836nobodyさん
2009/02/20(金) 01:24:33ID:???徹底入門はイケてる書籍
MVCの参考サイトはhttp://zendframework.com/
このスレでは定説。
0837nobodyさん
2009/02/20(金) 02:15:17ID:???作業少しでも減らしたいならCakeでも使えばいい
0838nobodyさん
2009/02/20(金) 02:26:32ID:???0839nobodyさん
2009/02/20(金) 08:13:11ID:???0840nobodyさん
2009/02/20(金) 08:38:29ID:???見た目は綺麗な箸とか食器とか並んでるけどさ
隣の席じゃ美味そうにケーキ食ってる奴がいて
じゃあ俺も、と食ってみるけど
いかんせん不味いんだな
向こうの席じゃヘッドフォンで楽しそうに音楽聴いてる奴がいて
何聴いてるのか尋ねると「クラシックだ」って言うんだけど
どう聴いてもパンクなんだな
参ったな
0841nobodyさん
2009/02/20(金) 09:00:44ID:LxVU4MGc入門書を読めば機能(例えば会員管理とか)ごとにコントローラ
を作成して複数アクションを定義しているみたいだけど機能が増え
たときにすごい大きくなりそうだし1画面1コントローラにしたほう
がよいのかなあ。。
0842nobodyさん
2009/02/20(金) 09:19:35ID:???0843nobodyさん
2009/02/20(金) 10:34:33ID:???取得してくるのはrowsetだし、selectを渡すのはmatchTableに対してだから、
たぶん、あなたの思い通りにはならないかと。
関係テーブルをSELECTでいじりたいなら、ベタにSQLでやったほうがよいと思います。
0844nobodyさん
2009/02/20(金) 10:46:25ID:???正しくこれだよな。
Frameworkって言っても、型にはめてもらえず、
右往左往してる内にとても面倒と感じてしまう。
俺はつまみ食いできるところが気に入ったんで馴染めたけど、
名前から期待する姿とのギャップに、ヘコタレる奴が周りにめっちゃいる。
スカッフォルドなりと、標準的な設計パターンのドキュメント充実したら、
良いと思うんだけどな。
0845nobodyさん
2009/02/20(金) 10:54:43ID:???Zend_Applicationとか。そういう意図なんだと思うけど、
結局これがリリースされると、好きに使ってくれっていうスタイルじゃなくて、
こういう風に使うのが王道みたいになると、オレオレなオレにはちょっとさびしい。
0846nobodyさん
2009/02/20(金) 11:03:19ID:???0848nobodyさん
2009/02/20(金) 15:26:22ID:???DBとか運用中のがあってそれに合わせないといけない場合とか
0851nobodyさん
2009/02/23(月) 02:15:47ID:???なんでプリペアードステートメント使わないでwhere句が直実行なんだろ?
あとreplace構文がないのは仕様なのか
0852nobodyさん
2009/02/23(月) 21:06:56ID:???0853nobodyさん
2009/02/23(月) 21:12:36ID:???0854nobodyさん
2009/02/24(火) 00:57:20ID:???未だにSID引き回せってこと?
最近だとiモードIDとかいう固定識別番号とDB連動でセッション管理するのが普通?
しょっちゅうDB覗きに行くのはなんだかなぁ・・・
0855nobodyさん
2009/02/24(火) 01:07:00ID:???0856nobodyさん
2009/02/24(火) 01:16:46ID:???0857nobodyさん
2009/02/24(火) 01:41:36ID:???iモードIDは後から出来た規格だからSSL領域で送信されない
よって、SSLでのログイン等が必要ならiモードIDだけでセッション管理は無理
というか、他のキャリアの端末でも識別番号はHTTPでも送信されちゃってるから、
Amazonみたいな仮ログインぐらいにしか使えないよ
> しょっちゅうDB覗きに行くのはなんだかなぁ・・・
Zend_Session_SaveHandler_Interface実装したMemcachedアダプタとかどうよ
0858nobodyさん
2009/02/24(火) 03:06:14ID:???Zend_Sessionとか思想はいいんだけど実装が重すぎるのが気になるよね。
0860nobodyさん
2009/02/24(火) 10:49:14ID:???> Docomoの糞仕様のせいでセッションが使えないけど
> 未だにSID引き回せってこと?
↑ドキュモがCookie使えないから、URLかHiddenにセッションIDくっつけて引き回さないとセッション使えないって意味としか見えないが
0861nobodyさん
2009/02/24(火) 19:07:39ID:???mysql_set_charsetとか使えんのかね。そもそもSET NAMESってセキュリティ
的に大丈夫なのかな
0862nobodyさん
2009/02/24(火) 19:10:53ID:???やっぱり別々に覚えるべき?
0863nobodyさん
2009/02/24(火) 19:23:31ID:???連鯖でEUCとかやってるところがカスなだけで文字コード変換なんて文字化けの原因にしかならん
0864nobodyさん
2009/02/24(火) 20:10:59ID:???0865nobodyさん
2009/02/25(水) 02:21:28ID:???> PDOに自作クラス
さーせん!こないだそれで済ませちゃいました。
正直ORMとか利点が理解できてません!さーせん
だれかおしええt
0866nobodyさん
2009/02/25(水) 03:21:37ID:???SQLインジェクション対策とかキャッシュ機構とか。
インピーダンスミスマッチの解消ってのは実際にはそんなに意味がない場合が多い。
あとEFやLINQ、SubsonicならIntellisenseが効くとか。
0867nobodyさん
2009/02/25(水) 03:48:08ID:???丁寧にありがとう。
小規模チームが多いせいか、あんま要らね。って思っちゃうなぁ。
でもキャッシュを隠蔽するにはいいかも。もしかしてZFにもあるの?
ちょっとマニュアル読んでくる。
0868nobodyさん
2009/02/26(木) 16:43:37ID:z2y5dmsnできればdispatchするファイルに設定しちゃいたい。
0869nobodyさん
2009/02/26(木) 16:57:38ID:???やりたいことがいまいち読めない
0870nobodyさん
2009/02/26(木) 16:58:47ID:???それならレスポンスオブジェクトの範疇だけど
0871nobodyさん
2009/02/26(木) 17:23:49ID:z2y5dmsnheader()のことです。
モジュールが増えてきてさらに各コントローラごとにinit()で出力いているので効率が悪いです。
できればZend_Controller_Frontをdispatchするあたりで設定したいです。
0872nobodyさん
2009/02/26(木) 17:28:50ID:???プラグイン書くほどじゃないし。
アクションコントローラーのスーパークラスとか書いてないの?
0873nobodyさん
2009/02/26(木) 21:57:21ID:z2y5dmsnどうもです。
bootstrapってのはbootstrap.phpなりを作ってインクルードってことでしょうか?
というかそもそもの設計が間違えている気がするんですが、
通常は各コントローラごとにヘッダを設定するものなんでしょうか?
0874nobodyさん
2009/02/26(木) 22:07:31ID:???$response->setHeaderでセットしてるよね?
逆に言えば、$responseに干渉できる場所ならどこでも好きな場所でやればいい。
実際、generator ZFってぐらいならbootstrapでもいいわな。
共通なものは基底クラスのinitでもいいし、
個別コントローラーでセットするものがあってもいいんじゃない?
0875nobodyさん
2009/02/26(木) 22:33:02ID:z2y5dmsnはい。
$this->getResponse()->setHeader()でセットしてます。
class Header extends Zend_Controller_Action{}に__autoload
というのを作成して
class IndexController extends Test{}
で継承していく形にします。
0876nobodyさん
2009/02/26(木) 23:03:36ID:???後半がよく分からない
Zend_Controller_Actionを継承した俺俺コントローラ作って
そこのinitメソッド中に書くとかではだめなの?
0877nobodyさん
2009/02/26(木) 23:14:34ID:z2y5dmsn失礼しました。
autoloadではなくinitですね。
init使えるの忘れてました。
フロントにheader()使いたくなってきた。。
0878nobodyさん
2009/02/26(木) 23:15:37ID:???フロントにheaderって?$this->getResponse()->setHeader()で駄目なの?
0879nobodyさん
2009/02/26(木) 23:20:37ID:z2y5dmsndispatchするファイルの先頭あたりに直接header()で出力した方が楽な感じ勝手ことです。。
0880nobodyさん
2009/02/27(金) 01:40:29ID:???bootstrapに書くのは気持ち悪すぎる。
0881nobodyさん
2009/02/27(金) 03:04:34ID:???納得できる説明しような
0882nobodyさん
2009/02/27(金) 08:06:09ID:???例外的にその共通処理をさせたくない場合に面倒
ましてやレスポンスヘッダの処理を
bootstrapに書くとかありえないだろ
BaseになるControllerに書いとけば
その例外的なControllerのinitで
共通処理をしないように上書きするだけだ
これで納得できるか?
0883nobodyさん
2009/02/27(金) 09:36:32ID:???どこに格納してる?models?それともviewsの下?
0884nobodyさん
2009/02/27(金) 10:16:53ID:???0885nobodyさん
2009/02/28(土) 19:04:24ID:???別に気持ち悪くないなら、bootstrapに書いてもいいわけだし、
気持ち悪いからって評価基準は普通だと思うが。
0886nobodyさん
2009/02/28(土) 19:12:28ID:???0887nobodyさん
2009/02/28(土) 19:29:47ID:???フレームワークじゃなくてもいいじゃんみたいなことになってしまう
0888nobodyさん
2009/02/28(土) 22:09:51ID:???気分的じゃない問題があるの?
たとえば、サーバー情報をheaderに入れるっていう方針ならbootstrapでもいいんじゃね?
気分以外の理由があるんなら知りたいなぁ
0889nobodyさん
2009/02/28(土) 22:21:53ID:???0890nobodyさん
2009/02/28(土) 22:23:13ID:???>別に気持ち悪くないなら
>>886
>気持ち悪いからって
>>887
>気持ち悪くてもいいからって
なんか>>887とか完全に意味を穿き違えちゃってるよな。
面白い。
0891nobodyさん
2009/02/28(土) 22:30:14ID:???symfonyでPDF、ajax、html、svg、csv、ファイルダウンロードを扱ってるが、
こういったファイル形式でヘッダ変えたい場合不便だぞ。そんなことすると。
任意の場所でシングルトンでレスポンスオブジェクト呼び出して、いじくり
まわせる便利さを体験するといい。
0893nobodyさん
2009/02/28(土) 22:33:30ID:???そういうケースもあるってだけよな
だいたい、headerの処理を1か所でまとめてやらんでもいいわけで。
まさか、header追加したらすぐにheaderが飛ぶと思ってるわけでもないんだろうけど。
0894nobodyさん
2009/02/28(土) 22:35:03ID:???何でも詰め込むのが正しい。
0899nobodyさん
2009/02/28(土) 23:02:14ID:???個人的にはbootstrapには最低限のコードしか書かないけどね。
0900nobodyさん
2009/02/28(土) 23:03:28ID:???ダイジェスト認証やリダイレクト、キャッシュの有無やら、OpenID認証やら、
もし、コンテンツヘッダのみならコンテキストスイッチでいいだろうけど。
こいつらひっくるめて一か所で処理はまず無理。
0901nobodyさん
2009/02/28(土) 23:16:01ID:???「headerの処理」?
ごめんheaderの処理ってのが、出力のことなのか、
吐き出す内容の決定のことなのかで全然回答が変わってくる。
0902nobodyさん
2009/02/28(土) 23:17:26ID:???0903nobodyさん
2009/03/01(日) 06:56:58ID:???$response->setHeader()をどこでやるかっていう話なんだから、
どこで内容をセットするかってことでしょ、普通
0904nobodyさん
2009/03/03(火) 08:29:52ID:???ところで、こういうマイナーバージョンの変更点をダウンロードせずに
ウェブから確認できるページってありますか?
0905nobodyさん
2009/03/03(火) 08:42:58ID:???http://framework.zend.com/download/latest
0906nobodyさん
2009/03/03(火) 08:52:05ID:???0907nobodyさん
2009/03/03(火) 09:12:52ID:???分かりにくすぎ…
0908nobodyさん
2009/03/03(火) 11:09:39ID:???例外とかはErrorControllerでキャッチしてるし
実行時間なんかはFireBug自体で計測できるし・・・
変数の中身を見たいとき用とか?
0909nobodyさん
2009/03/04(水) 00:09:05ID:???JavascriptやCSSをレンダリングするときとか。
まぁTextにログ出せばいいんだろうが、FirePHPの方が見やすいしね。
0910nobodyさん
2009/03/04(水) 02:04:51ID:???消し忘れが怖いから極力使わないようにしてる。
0911nobodyさん
2009/03/04(水) 02:25:46ID:???そこらへんはStagingかProductionかで自動的に制御するようにするのがベストなんじゃない?
RailsはFCGIの引数(?)で切り分けるんだっけ?
ZFだとどうするのがベストかな
0912nobodyさん
2009/03/04(水) 21:45:42ID:LvKH7NWyいやmodelだけzend_dbとかって手もあるんだけどsfとかcakeとかだと旨みが半分以上なくなるよね
0913nobodyさん
2009/03/07(土) 20:45:10ID:LLWgp4UZなんかお手本になるようなのない?
0914nobodyさん
2009/03/07(土) 20:47:56ID:???0915nobodyさん
2009/03/07(土) 23:05:38ID:???どうするのが理想的なのかがいまいち分からないんです
0916nobodyさん
2009/03/07(土) 23:24:57ID:???0918nobodyさん
2009/03/08(日) 01:33:06ID:???0919nobodyさん
2009/03/19(木) 12:15:38ID:???そういう時のメソッド名について、ZFで使われている名前って何かありますか?
0920nobodyさん
2009/03/19(木) 12:24:40ID:???0921nobodyさん
2009/03/19(木) 13:38:32ID:???__call()で受けて_foward()なり_redirect()で飛ばすとかじゃなくて?
0922nobodyさん
2009/03/19(木) 13:46:14ID:???0923nobodyさん
2009/03/19(木) 15:33:49ID:???http://framework.zend.com/manual/ja/zend.controller.action.html#zend.controller.action.subclassing.example-call
ここに書いてあるようなケースで、indexActionとかerrorActionとかで頻出なメソッドがあるのかと思ってました。
0924nobodyさん
2009/03/23(月) 02:42:16ID:cHToeHq1Zend_File_Transfer_Adapter_Http
を使ってみてるんですが、どうあがいても
No temporary directory was found for the file 'uploadedfile'
となってしまいます。
0925nobodyさん
2009/03/23(月) 23:58:01ID:uVBii4+5indexアクションでフォームを出力して、名前を記入+送信して受け手のhelloActionで
「こんにちは、○○さん」って出力するだけ
それだけに3〜4秒くらいかかる なんでだ?
サーバにしてるマシンがボロ過ぎるんだろうか、、 pentium3 933Mhzだが。。
それにしてもスクラッチで作ったほうがいいじゃんてレベルだ
こういう不安はどう原因見つけて解決したらいいんだろう
0926nobodyさん
2009/03/24(火) 00:30:00ID:???まず、Zend_Formは遅いよ。
うちじゃフォームは自前の処理で書いてる。
それから、もしWindowsサーバーならPHPは遅い。
なんにしても、スペックだけじゃ判断しにくい。
その処理に3〜4秒かかって当然とは思わないけど。
スクラッチの方が...って不安は、
作ろうとするものが単純で少量であるほど付きまとう。
一通り機能の揃ったサービス作るつもりで使えば、
メリットが分かるよ。
ただ、ZFは小規模でもつまみ食いできるのがメリット。
このスレでも何度もあるように、
フレームワークとしての枠が凄く緩いから、
Zend_Dateだけ、Zend_Cacheだけって使い方も何てこと無い。
0927nobodyさん
2009/03/24(火) 00:47:11ID:VfITkfEnそうなんですか…アドバイスありがとうございます
モジュール的機能部分だけ利用するのが賢いのはわかるんですが、
パスを書き換えてくれる id=123 → /id/123 のが嬉しくて使っているので
なかなか切り抜き利用だけに割り切れません
今試したら http://localhost/ の上記のフォームを表示するだけで20秒かかりました
送信したらタイムアウトする始末だし、、これって完全に遅すぎですよね どこを調べたらいいんでしょうか?
http://www.dotup.org/uploda/www.dotup.org7168.txt
ソースはこれだけなんですが、おかしいでしょうか?
作りこんでいってやっぱり遅いのが解決しないってことになると時間がもったいなさ過ぎるしどうしよう…
0928nobodyさん
2009/03/24(火) 01:05:50ID:???それフレームワークの機能じゃなくてWebサーバの機能なので
0930nobodyさん
2009/03/24(火) 01:32:08ID:???> それから、もしWindowsサーバーならPHPは遅い
それってFastCGI Extensions for IISで割と解決してない?
Server2003+FastCGIでWP動かしてるけど、それなりの速度で動いてるよ
まぁ、mod_phpがベストなんだとは思うけど
0931nobodyさん
2009/03/24(火) 01:54:11ID:???Zendはルータでやってるけど普通のフレームワークはサーバに任せて同じ事やってる
mod_rewriteでググるよろし
0932nobodyさん
2009/03/24(火) 02:40:32ID:???0933nobodyさん
2009/03/24(火) 02:43:12ID:???エラーハンドラに404エラーを投げたいのですが、どのように書けばいいでしょうか?
0934nobodyさん
2009/03/24(火) 03:04:27ID:???>>933
switch (true) {
case 404にしたいパターンその1:
case 404にしたいパターンその2:
$this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');
break;
defalt:
}
みたいな
0935926
2009/03/24(火) 21:15:38ID:???テスト用だからか突っ込みどころは色々あるけど、
ソース見る限りじゃ極端に遅くなる原因は無いよ。
んで、ある時は3〜4秒で、今回は20秒、
ってのは流石におかしいんで、ZFより下の層の問題じゃね?
ソースのエンコードやらlocalhostって言ってるとこからすると、
WindowsにXamppか何かで環境作ってる?
どこを調べたらってのは広すぎて困るけど、
・マシンスペックの不足(メモリ足りねーとか)
・マシンの故障(メモリ、HDDの不良とか)
・ネットワーク(ルーター、HUB、NICが腐りかけとか)
・OS(そもそも何使ってて、どんな状態? 他の処理動いてない?とか)
・Webサーバー(これも何使ってる? 静的ファイルでも遅い?とか)
・PHPの設定(メモリ割り当てが何故か異様に少ないとか)
辺りが定番なのかな。
ZFは、ルーターだけでもまあ便利だけど、
一度はMVCとかConfig使い回しとかを組み合わせてみると、
フレームワークとしての向き不向きが見えてくると思う。
俺は変なDBに繋ぎたいんでZF使ってるけど、
フレームワークとして見るなら中途半端ではある。好きだけど。
>>930
ごめん、FastCGI版なら充分速い。
単なるCGI版なWindowsサーバーをよく見掛けるので、言い過ぎた。ごめん。
0936nobodyさん
2009/03/24(火) 21:27:53ID:???0937nobodyさん
2009/03/25(水) 00:07:41ID:4yhBz/QX詳しい意見ありがとうございます
環境は
winXP, 512mb, apache2,
PHPのメモリは memory_limit = 128M
って感じです
普通のネット見たりDTP系のソフト動かすマシンで動かしてるんでまずいんでしょうか?
ウイルスソフトとかバックで動いてるソフトもあるし
あと、
http://pc11.2ch.net/test/read.cgi/php/1236532468/606 も自分です
関係あるんでしょうか?
0939nobodyさん
2009/03/25(水) 00:31:32ID:???前ものっそいテキトーな計測したときは、Linuxでmod_php使った場合の1/10ぐらいの速度しか出なかった
だからIISでFastCGI使った方が良いんだけど、
XPのIIS5.1でも動かせるFastCGI拡張無くなっちゃったみたいね
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1521
http://www.iis.net/downloads/default.aspx?tabid=34&i=1299&g=6
可能であれば、Server2003かVistaかServer2008で、FastCGI使って試してみると良いと思う
ただ、ZF使うとなるとmod_rewrite必須だから、VistaかServer2008でURLRewrite入れて設定しないとダメかな
http://www.iis.net/extensions/URLRewrite
0940926
2009/03/25(水) 00:38:37ID:???他にでかい処理やってるマシンなら、
そんぐらい遅いのもありえるんじゃない?
DLLのエラーが出てるのは関係あるかもしれん。
Windowsにまだしっかり環境構築できないなら、
Xamppなりにお任せしちゃえば。
0941926
2009/03/25(水) 00:42:39ID:???mod_phpでも遅いのって、知らんかった。
なら解説本なんかでよく見る
「まずはxamppで環境構築しましょう」
に従った人は、みんなそのクソ遅い中でやってんの?
うちの発注元、全員xamppみたいなんだけど…。
0942nobodyさん
2009/03/25(水) 00:49:20ID:???Windows用のPHPやApacheはオプションがフルセット入ってたり
コンパイルオプションが平易なものでそれぞれの環境に合わせてないってだけで
まぁ1〜2割くらいは速度変わるかもしれないけど10倍遅いとかはない
0943nobodyさん
2009/03/25(水) 01:25:37ID:???>>942
FWレベルの構成で試してみろって。1〜2割じゃ済まないぞ
0944nobodyさん
2009/03/25(水) 01:59:45ID:4yhBz/QXhttp://www.iza.ne.jp/news/books/
のページで、仮にこれがnewsコントローラのbooksアクションで出力されてるとして
「最新ニュース」の部分はどうやって出力するべきなんでしょうか?
booksアクション中に該当の最新ニュース一覧を出力するSQLだとかを定義して、
それをviewのパラメータに割り当ててるんでしょうか?
どうも扱い方がわかりません
あと、右側にある「おすすめブログ」の部分ですが、ここみたいに他のページでも
表示されるような記事は、それを出力するプログラムを別ファイルとして持っていて、
それをアクション中にincludeしてviewに割り当てて使いまわすのが正解でしょうか?
フレームワークというより、この手のサイトの作り方の知識の問題かもしれないですが
良かったらアドバイスください。よろしくお願いします
0945nobodyさん
2009/03/25(水) 03:16:15ID:???0946nobodyさん
2009/03/25(水) 03:17:20ID:???もうだめや
あかん
全然わからへん
わて、全然わからへんのや〜
0947nobodyさん
2009/03/25(水) 03:30:02ID:???0948nobodyさん
2009/03/25(水) 10:41:33ID:4yhBz/QX一応モデルについても調べて、、それでもよくわからないので
上記の場合についてだけで良いので、アドバイスもらえたら嬉しいです
よろしくお願いします
0949926
2009/03/25(水) 10:54:28ID:???分かってるとは思うけど、飽くまで一例として。
どうとでも組めるのがZFの方針なんで。
最新ニュース部分は、945の言ってるように、
「本・アート」に該当するニュースを引っ張るモデルを作っておき、
booksアクションからそれを使う。
モデルは、Zend_DBやZend_DB_Table使って、
組みやすいように組むのが良いと思う。
最悪はSQL直書きだけど危ないんで避けた方が無難。
但し、毎度毎度DB叩いちゃ困るんで、
どうせ書き出してあるRSSを読み込むか、
Zend_Cacheなどでキャッシングは必須。
おすすめブログ部分は、
Zend_Layoutを調べてみるべき。
http://framework.zend.com/manual/ja/zend.layout.quickstart.html
このドキュメントの、
「最後に、Zend_Layout のフロントコントローラプラグインが持つ〜」を読もう。
アクションをfowordして、使い回し要素に値を割り当てるか分かるはず。
こっちももちろん、キャッシュは必要。
0950nobodyさん
2009/03/25(水) 10:56:12ID:???ある程度MVCを触ってみて自分なりに得た結論としては
M,V,C,それぞれどう作ろうと自由.正解なんてない.特にモデルに関しては完全に好きなように作って問題ない.
0951nobodyさん
2009/03/25(水) 16:01:42ID:4yhBz/QXアドバイスどうもありがとうございます
あと、モジュールについて知りたいんですが、
モジュール化することでどういうメリットがあるんですか?
「ZendFW徹底入門」を読んでるんですが、機能というかMVCのセットを
フォルダに入れて一まとめにする程度の説明しかなく、
機能的にどう効率的になるというような説明がありません。
コントローラ名やアクション名が変わるというのはわかるんですが、
そんなルールを新たに適用してまで得られるメリットって何なんでしょうか?
0952nobodyさん
2009/03/25(水) 16:42:02ID:???0953nobodyさん
2009/03/26(木) 02:21:26ID:9dMsRXyr$row->findDependentRowset('BOOK')
の結果は行セットだと思うのだけど、
この数をカウントしたり、ほんの名前順に並べたりってどうやるの?
0954nobodyさん
2009/03/26(木) 09:56:35ID:QTaJbB0e<input name="namae" value="taro" />
</form>
というフォームを送信して
aaaコントローラのbbbアクションを実行してるんですが
送信先の画面のURL欄を見ると
aaa/bbb?namae=taro となっています
これで正しい処理なんですか?
aaa/bbb/namae/taroとなるのかと思ってましたが…
上記のようになるのはどういう時なんでしょうか
0955nobodyさん
2009/03/26(木) 10:03:38ID:???<input name="namae" value="taro" />
</form>
0956nobodyさん
2009/03/26(木) 10:04:53ID:???<form action="aaa/bbb/namae/taro" method="get">
〜
</form>
0957nobodyさん
2009/03/26(木) 10:13:44ID:QTaJbB0eどうもありがとうございます
正直、そうなの??って気分です
クエリで送られてきたパラメータを xxxx/yyyyって風に変換してくれるのではなくて
xxxx/yyyyってURLからxxxx=yyyyと解析するということでしょうか。。
スゴイ勘違いしてたのかなぁ
0958nobodyさん
2009/03/26(木) 12:44:12ID:???クエリを送出するのは誰?ZF?
0959nobodyさん
2009/03/26(木) 14:42:56ID:???「モジュール化」そのものに大きな意味があるんじゃない。
開発する対象を切り分けて取り扱える事が重要。
無茶苦茶判り易い点だけ挙げれば、
単一のcontrollersディレクトリに100個もファイルあったら大変って事。
>>957
PHP以前の、どういう環境で何が起きているのか理解できてないと思う。
まずはFirefoxにLiveHTTPHeadersでも入れて、
自分の普段のWeb閲覧が、どんな通信なのか見てみ。
0960nobodyさん
2009/03/26(木) 14:44:14ID:???ある程度の規模のWebアプリケーションを組んでない、
若しくは何となく出来ました程度でしか作ってないんだと思う。
しかもPHPか、出来合いのPerlのCGIを改造したぐらい。
俺の周囲にもこの手の人が結構いて、みんな同じく全体の設計スキルが皆無。
例えば単純でもいいから、練習目的にネットショップを構築してみる。
トップページがあり、商品の一覧や詳細があり、注文がかけられる。
注文は複数の商品を対象と出来て、確定前に変更が出来る。
問い合わせページやお知らせページがあり、送料・手数料の案内がある。
裏には、商品管理、ショップ管理、顧客管理、各種統計もある。
こんな仕組みを、出来れば全部自前で素のPHPから、
PEARもZFも使わずに作れたら、フレームワークの価値がようやく分かると思う。
実際に作り上げなくても、自分だったらどう作るか、ノートに設計を書くだけでも良い。
たくさんの、自分が分かっていない点と、面倒だと感じる点が出てくる。
ZF以前が思い切り足りないから、
ZFが分かんないんだと気付かないと、結局遠回りだよ。
0961nobodyさん
2009/03/26(木) 14:49:56ID:???最初はblogくらいの規模でいいと思う
ベタ書きスクリプト掲示板の次のステップとして
0962nobodyさん
2009/03/26(木) 15:06:11ID:???スタンダードな設計が思い描き難いから、
分かってない人への課題として微妙なんよ。
今の所、ネットショップ課題に設計させると、
結構頑張って考えたの提出してくれてる。
突っ込みも、ユーザー視点でやりやすいし。
0963nobodyさん
2009/03/26(木) 15:49:48ID:???商品名と数量を明記したメールを以下に送付して下さい。
折り返し見積を送付しますので、銀行振り込みもしくは商品代引きでお支払い下さい。
0964nobodyさん
2009/03/26(木) 17:29:12ID:xQu6jBsfショップ構築の引き合い受けた客先で、真剣にそれ提案して、
「その機会損失が無視できないから頼んでるだろが!」
って怒鳴られた先輩いたな。
でも俺も、未だに予算と能力が要求に見合ってない客には、
同じ提案やってるよ。必ずFAX注文用紙も付ける。
0965nobodyさん
2009/03/26(木) 21:11:39ID:xQu6jBsf誰かZend_CacheのPageで、
キャッシュクリアするお作法、しらね?
0966nobodyさん
2009/03/26(木) 21:23:24ID:???その先輩カッコよすぎるな。
FAX注文用紙もウケタ、先輩が先輩なら、後輩も後輩だ。
お前ら面白すぎる。
俺も次そういう話があったら真剣に提案してみるよw
0967nobodyさん
2009/03/26(木) 21:27:07ID:???YiiFrameworkもARで複合キーサポートしてるよ。
ただ、今のところMySQLとPostgreSQLでしか動かないらしい。
ベースはPDOだから、DAOを使ってSQLごりごり書くならOracleでも使えると思うけど
。
0969>>968
2009/03/27(金) 06:39:23ID:HWBmRKPrキャッシュのIDが自動で生成されるよね?
で、その自動生成されたIDを使ってremoveする場合
何をどう使って、IDを指定すべきなの?
って事をききたかったんだ
わかりにくくてごめん
0970nobodyさん
2009/03/27(金) 08:01:42ID:???ネットどころかパソコンも触れたこと無いお土産屋のおっちゃんが、
雑誌でちょっと見て「ネットショップ作ってくれ」って言い出す地方だからな。
いや、真剣に、そういう店にはFAXが最適なんだよ。
購買層も爺婆がメインだし。
ちなみに某温泉特産の湯ノ花は、
静的サイト + FAX注文用紙 + その他宣伝
って構成で、月100は売り上げるようになった。
うちもほぼ放置で管理費もらえておいしいし。
0971nobodyさん
2009/03/27(金) 08:04:10ID:???なんか工夫して実装しないかぎり変更があったら全消しだろうね。
工夫ってたとえば、継承して同じオプションを使いながら_makeId _makePartialIdにアクセスする管理用クラスを書くとか。
0973nobodyさん
2009/03/29(日) 01:01:11ID:1IVpc3cd0974nobodyさん
2009/03/29(日) 04:22:59ID:???アクションコントローラーのpostDispatchは違うっぽいけど。
0975nobodyさん
2009/03/29(日) 07:50:35ID:???単純なデータ取得なら
$sql = select * fro '〜〜 where ** = ?';
$db->fetchAll($sql, $var);
で済むような気がした
0976nobodyさん
2009/03/29(日) 07:52:09ID:???0977nobodyさん
2009/04/08(水) 14:20:28ID:UaY/lmRdControllerやViewには命名規則などがありますが、Model部分に関しては参考となるドキュメントを見つけられませんでした。
0978nobodyさん
2009/04/08(水) 14:21:23ID:???あったところでどうなるというのだ
0979nobodyさん
2009/04/08(水) 14:53:03ID:UaY/lmRdこんなことを想像してました。
loadModel('Class_Name');
0980nobodyさん
2009/04/08(水) 14:58:16ID:???でもモデルってのはコントローラと一対一で対応するものでもないし
複数のモデルを組み合わせることもしょっちゅうだからなぁ
0981nobodyさん
2009/04/08(水) 15:26:25ID:UaY/lmRdinclude先もある程度固定されていますし。
0982nobodyさん
2009/04/08(水) 15:50:27ID:???プラグインローダーでできるよ。
誰かがブログに書いてたな。
あと、1.8でZend_Applicationがリリースされる。
そっちの方が本命かも。
0983nobodyさん
2009/04/08(水) 16:54:18ID:???Javaの人に同じ事やりたいって言ったら怒られるぞ
0984nobodyさん
2009/04/08(水) 16:54:56ID:???自前でクラスファイルを探してインクルードする関数を書いて、
spl_autoload_registerで登録すればいい。
>>982
>Zend_Application
なんだこれ、またあいまいな名前のパッケージが出てきたな。
Zend_Controllerとどう違うんだ?
0985nobodyさん
2009/04/08(水) 17:18:12ID:???0986nobodyさん
2009/04/08(水) 19:59:51ID:???0987nobodyさん
2009/04/08(水) 21:23:43ID:???俺フレームワーク作るっていう使い方してもいいのかな?
0988nobodyさん
2009/04/08(水) 21:30:51ID:???0989nobodyさん
2009/04/08(水) 21:35:46ID:???0990nobodyさん
2009/04/08(水) 22:29:56ID:???そもそも全部使うサンプルなんかあるか?
0991nobodyさん
2009/04/09(木) 00:43:51ID:iT6qHOmL希望としてはZend_Layoutあたりでできたら無効化するのも簡単なのでありがたいのですが、どうやらないようです。
Zend_Controller_Action::init()に毎回記述する方法やZend_Controller_Actionを別途実装する以外の方法があれば教えてください。
0992nobodyさん
2009/04/09(木) 01:23:09ID:???0993nobodyさん
2009/04/09(木) 22:48:43ID:oDPn1AxL0994nobodyさん
2009/04/10(金) 01:04:27ID:???0995nobodyさん
2009/04/10(金) 01:38:26ID:mTlvGODg倒産でもして夜逃げ中かね
0996nobodyさん
2009/04/10(金) 02:03:27ID:???エラーは吐く設定にしてたんだな
どうせエラーなんて出ないしという専門家のおごりか?
0998nobodyさん
2009/04/10(金) 06:39:04ID:???0999nobodyさん
2009/04/10(金) 08:37:23ID:???Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。