Zend Framework Part3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/10(金) 08:35:00ID:???http://framework.zend.com/
マニュアル
http://framework.zend.com/manual/ja/
(有力翻訳者のm-takagiさんのver)
http://www.m-takagi.org/docs/php/zend/
バグ報告
http://framework.zend.com/issues/secure/Dashboard.jspa
API
http://framework.zend.com/apidoc/core/
前のスレッド Zend Framework Part2
http://pc11.2ch.net/test/read.cgi/php/1204726884/
0488479
2009/08/08(土) 19:41:03ID:JPFTqmJZありがとうございます
じっくりそのお返事読み込んで対応したいと思います
また質問することになったらすみません
本当にありがとうございました
0489nobodyさん
2009/08/08(土) 22:54:11ID:???サンクス。
今落としてみたけど、目次ペインは文字化け、キーワードタブなしだった。
やっぱり暇見て作り直すよ。
0491489
2009/08/09(日) 05:25:45ID:???どこかのロダへ上げりゃいいのだろうけど、どこがいいのか調べるのも面倒なので、ブログに上げといた。
ttp://imadetato.com/item/365
0492nobodyさん
2009/08/12(水) 16:33:11ID:???table.hoge として扱うことは出来ないでしょうか?
現状ではキーの取得のため $data['"table"."hoge"'] みたいにして取得しています。
0493nobodyさん
2009/08/14(金) 22:41:36ID:???0494nobodyさん
2009/08/15(土) 23:23:59ID:???CentOS 5.3 (PHP 5.1.6) + Zend Framework 1.9.1 で View ヘルパーの headLink 試してみたところエラーになりました。
headLink の getContainer() に ksort メソッドが無いというエラーでした。
調べていくと最終的には SPL の ArrayObject に ksort メソッドが存在しない、というところに行き着きました。
ArrayObject の ksort メソッドは PHP 5.1.0 以上ですのであるはずなのですが…
php.ini の設定や yum のインストールで何とかなるものでしょうか?
よろしくお願いします。
以下に yum でインストールした PHP の RPM を記します。
php-5.1.6-23.2.el5_3
php-bcmath-5.1.6-23.2.el5_3
php-cli-5.1.6-23.2.el5_3
php-common-5.1.6-23.2.el5_3
php-devel-5.1.6-23.2.el5_3
php-gd-5.1.6-23.2.el5_3
php-imap-5.1.6-23.2.el5_3
php-mbstring-5.1.6-23.2.el5_3
php-mcrypt-5.1.6-15.el5.centos.1
php-mhash-5.1.6-15.el5.centos.1
php-mysql-5.1.6-23.2.el5_3
php-pdo-5.1.6-23.2.el5_3
php-pear-1.4.9-4.el5.1
php-pgsql-5.1.6-23.2.el5_3
php-snmp-5.1.6-23.2.el5_3
php-soap-5.1.6-23.2.el5_3
php-tidy-5.1.6-15.el5.centos.1
php-xml-5.1.6-23.2.el5_3
php-xmlrpc-5.1.6-23.2.el5_3
0496nobodyさん
2009/08/16(日) 19:22:09ID:???application.iniを指定して情報を読み込んでいますが、
その情報をコントローラ内から読み取るにはどうすれば取得できるでしょうか。
0497nobodyさん
2009/08/17(月) 14:22:21ID:???0498nobodyさん
2009/08/17(月) 22:15:51ID:GH8UY0nupublic function indexAction()
{
$options = $this->getInvokeArg('bootstrap')->getOptions();
}
これで取れると思う。
0501nobodyさん
2009/08/18(火) 21:46:09ID:???require_once('Zend/Validate/StringLength.php');
require_once('Zend/Validate/Alnum.php');
require_once('Zend/Validate/Alpha.php');
require_once('Zend/Validate/Iban.php');
とか並べにゃならんの?
0502nobodyさん
2009/08/18(火) 22:50:59ID:???パフォーマンスは割と落ちる。
0504nobodyさん
2009/08/19(水) 13:07:53ID:???0506nobodyさん
2009/08/20(木) 09:49:21ID:???ってやると
Action 'create' is not a valid action.
てエラーになるんだけど、なんで?
PHP 5.2.6-3ubuntu4.1 with Suhosin-Patch 0.9.6.2 (cli)
0507506
2009/08/21(金) 12:26:09ID:???ちなみにsvnのstandard/trunk最新版でも同じだた
0508nobodyさん
2009/08/21(金) 12:44:36ID:???0509nobodyさん
2009/08/21(金) 14:35:04ID:???おま簡単なことみたいに言うなよ。めちゃ難しかったよ。
ああ言われたとおりコード追跡したよ、解決したよ。
でもぜってえ教えねえ、ググってここに来た奴ざまあw
ヒントはシンボリックリンクな
0510nobodyさん
2009/08/21(金) 14:50:07ID:???if ($item->isLink()) {
continue;
}
0511nobodyさん
2009/08/21(金) 15:46:36ID:???0512nobodyさん
2009/08/21(金) 21:57:27ID:???Google Trendsでは日本語は10位にも入っていません。
http://www.google.co.jp/trends?q=zend+framework
多くの国の人が使う英語でレポートするか、
http://framework.zend.com/issues/secure/Dashboard.jspa
下記の国々で利用される機会が多めなロシア語でレポートすると
・旧ソ連諸国
・東欧圏
・それらの国からの移民が6分の一を占めるイスラエル(Zend Technologyはここ)
http://zendframework.ru/
きっと今よりも幸福になれると思いますよ
0513nobodyさん
2009/08/22(土) 10:43:35ID:???$this->_forward('hoge');
}
todo();
IndexController::indexAction()内の処理で、上記のようにフォワードしたあとに下の処理が続行されてしまいます。
elseで囲ってやる以外にフォワードしたら下の処理を行わないようにする方法はないでしょうか?
0514nobodyさん
2009/08/22(土) 14:23:39ID:???0516nobodyさん
2009/08/22(土) 23:24:18ID:???バリデータは存在しました。
0517nobodyさん
2009/08/23(日) 13:31:15ID:???htmlのソース見れば分かるけど、?になってるのは " " (26 23 31 36 30 3B)だよ。
%20か に置換してやるか、消してからsjisに変換してやればおk
0518nobodyさん
2009/08/23(日) 14:08:05ID:???$view = new Zend_View();
$view->setEncoding('utf-8');
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->setView($view);
以外に方法はないでしょうか?
getInstance()的なのがあるとありがたいのですが
0519nobodyさん
2009/08/23(日) 15:49:38ID:???0521nobodyさん
2009/08/23(日) 18:59:09ID:???↓エラーはこんな感じです。
[plugin] modifier 'sanitize' is not implemented
modifierの'sanitize' を読み込むように設定されてるみたいなので、
↓この部分をコメントアウトしましたが、変化なし。
$this->_smarty->default_modifiers=array("sanitize");
sanitizeでプロジェクト内を文字列検索してみましたが、それっぽい
記述がなくて困ってます。どうしたら、解決しますか?
参考URL
http://wadslab.net/2008/03/zend_view_smarty/
0522nobodyさん
2009/08/24(月) 21:39:16ID:???プログラムは掲示板でもブログでもなんでもいいのですが、
「ZendFrameworkはこう使うべきである!」みたいな強烈なコードを読みたいです。
0523nobodyさん
2009/08/24(月) 21:43:21ID:???0524nobodyさん
2009/08/24(月) 22:08:56ID:???効率的な使い方とか
そういうのを参考にしたいんだろう
俺は知らん
0525nobodyさん
2009/08/25(火) 01:33:59ID:???嫁
0526nobodyさん
2009/08/28(金) 13:40:37ID:???フロントコントローラ部分(index.php)のdispatch以前に以下のようなコードを記述すると2回記録されています。
file_put_contents('./hoge.txt',microtime(true)."\n",FILE_APPEND);
よろしければ他のサーバーの方上記の結果をお願いします。
XREA+CGIモードでPHPを動かしていますが、同じような方いらっしゃいませんか?
.htaccessは以下の通りです
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [L]
RewriteRule ^.*$ index.php [L]
0527nobodyさん
2009/08/28(金) 17:04:52ID:???そのRewriteルールだと、実態のないディレクトリ・ファイルは
全部フロントコントローラに投げる設定になってる
0529nobodyさん
2009/08/28(金) 20:22:32ID:???favicon.icoを取得しに来ていました。
おっしゃっている通り、該当ファイルがないためこっちにリクエストが来ていたようです。
しかしその問題は解決したのですが、フィルター処理が2回行われてしまっています。
マニュアル通りZend_Filter_Interfaceを継承してコントローラ内で$this->view->setFilter('Filtername')をしています。
書き換え処理を行わず、Zend_View_Filter_Filtername::filter()内に先ほどのロギング処理を追加すると2回記録されています。
動作環境は先ほどの通りです。
フィルターを使用している方に同様の現象はありませんでしょうか?
0530nobodyさん
2009/08/31(月) 02:25:49ID:qG683i9+自分の考えでは、
1)2009-08-01をスタートにループまわして(どの月でも30回)、
2)日にち部分を02,03と一つずつ増やして、
3)出来た日付(2009-08-32)を検証し、日付として不適切なら出力停止
…という感じです。
が、いかにも頭悪そう。スマートな実現方法を教えてくれると嬉しいです。
どんな風に作ったら良いのか、皆さんご意見お願いします。
0531nobodyさん
2009/08/31(月) 03:10:03ID:???jqueryとかYUIとか
0532nobodyさん
2009/08/31(月) 03:23:02ID:???$s = new Zend_Date('2009-08-01');
$e = clone $s;
$e->add(1,Zend_Date::MONTH);
do {
echo $s->toString('d') . "\n";
$s->add(1,Zend_Date::DAY);
} while ($d->isEarlier($e));
0533nobodyさん
2009/08/31(月) 03:23:45ID:qG683i9+ありがとうございます! javascriptですか…、確かに一発で表示してくれる機能ありますね
phpとzendFW(zend_dateほか)だけで作るとしたらどうしたら良いでしょうか?
スケジューラーのイベント一覧みたいにしたいんですが
というか、>>530のやり方で問題ないでしょうかねぇ? 自分で思うほど変じゃないかな?
慣れ親しんだこれまでと同じやり方でやるってのは進歩がないようで落ち着かないんですが…
0534nobodyさん
2009/08/31(月) 03:26:39ID:qG683i9+おお、こんな時間にありがとうございます
do while文?がもうよくわからないですが、、
今このソースを貼り付けて実行したら、真っ白な背景に1とだけ表示されました
どういう結果を表示するプログラムなんでしょうか?
0535nobodyさん
2009/08/31(月) 03:37:33ID:???最後の行をtypoしてた
} while ($s->isEarlier($e));
と最初の行は
$s = new Zend_Date('2009-08-01',Zend_Date::ISO_8601);
ってしておいた方がいいかな。
0536nobodyさん
2009/08/31(月) 03:54:27ID:???携帯サイトなの?
0537nobodyさん
2009/08/31(月) 04:35:41ID:???わー、全ての日付が出ました! ありがとうございます!
コードの解読から始めます。ホントにありがとう
>>534
携帯向けとPC向け両方です。
javascriptで作る方法紹介してくれた人ですか?
今の自分のスキルではajaxとかまで手が回らないしPHP,zendの知識を深めたいので
とりあえずこちらのやり方を選びました。ありがとうございました。
0538nobodyさん
2009/09/05(土) 22:07:05ID:Dg9afmXE今利用してるんですが、ページ送りが動作しません。リンクを押してもずっと最初のページのままです。
原因がこれなのかはわからないですが、
/hobby/user/123
にセットしたPegerのリンクを押していくと
/hobby/user/123/?pgr=2
/hobby/user/123//?pgr=3
/hobby/user/123///?pgr=1
となっていきます。(ページ番号を押した分だけ?前の/が増えていく)
これはzendFWでPager使った場合の正常な動作なんでしょうか?
Pagerの利用自体は、同じサイトないのzend領域外のページで成功してるので
まちがいはないつもりですが、zendFWで特別に注意するポイントがあるのかな?
ご意見いただけると嬉しいです。よろしくお願いします。
0539nobodyさん
2009/09/05(土) 23:22:04ID:???0541nobodyさん
2009/09/06(日) 00:45:20ID:???Zend_ArchiveとZend_Mediaまだー?
0542nobodyさん
2009/09/06(日) 01:09:18ID:JiBjCO1T「指定したクエリにマッチするすべての行を取得するのではなく、
DbSelect アダプタや DbTableSelect アダプタは 現在のページの表示のための必要最小限のデータのみを取得します。」
ってあるけど、これってクエリ結果をzend_cacheでキャッシュ化しておくよりも全然有利ってことかな?
イメージ的にはキャッシュにした場合の方が負荷とか楽そうだけど…
(データのアップデートにあわせて抽出できるというのはわかるけど)
あと、ページングのIDや対象アクション・コントローラを設定する.iniを作る必要があるみたいだけど
複数のアクション(コントローラ)にページャーつける度にこういう設定ファイル用意するのかな?
共通化できないものなんだろうか。
実際に利用されてる方、これってPear::pagerよりも便利ですか?
0543nobodyさん
2009/09/07(月) 13:45:48ID:???ただ単に使う時に使う分だけfetchしますよって話だったと思う
使ったことないけど確か簡単にZend_Cacheと組み合わせれたかと
たぶんZend_Controller_Router_Route使うって事だと思うけど、設定ファイルは普通1つでいいよ
ルート毎にpageってパラメータの受け取り方を書くだけ
Router使わないんだったらコントローラのなかで setCurrentPageNumber($this->_getParam('pid'))
かな、、あんまりお得はないと思う
共通化については、コントローラで言うとgetPaginatorぐらいかな、共通の親クラスにでも突っ込めばおk
viewについては、ページネイタ用のパーシャル作っとけば大抵使い回しできるよ(Router必須)
ってイメージ和姦だろうな〜 まず使って見れ
0544nobodyさん
2009/09/07(月) 15:42:13ID:???よっぽど似てる処理なら同じコントローラの同じアクションにルーティングしてしまうってのもありかもな
$routeName = $this->getFrontController()->getRouter()->getCurrentRouteName();
switch ($routeName) {
}
$this->render($routeName);
0545nobodyさん
2009/09/08(火) 00:37:49ID:???http://www.amazon.co.jp/Zend-Framework-Official-Programmer-Reference/dp/1430219068
0547542
2009/09/08(火) 02:38:09ID:???ありがとうございました
正直チンプンカンプンです。zendFWの構造の理解不足が露呈してしまった
もう一度マニュアル読み直しから始めます。ありがとう
0548nobodyさん
2009/09/08(火) 21:53:51ID:qSoCHGpfプリペアドステートメント方式(?)をやめてクエリすると結果が返ってきます
何が原因でしょうか?
function report($uId,$uType,$limit){//$evYmはYYYY/MM
$table1 = $this->_config->table->table1;
$table2 = $this->_config->table->table2;
$table3 = $this->_config->table->table3;
$rs = $this->_db->fetchAll("
SELECT
{$table1}.reportTitle ,
{$table2}.evName ,
{$table2}.evDay ,
{$table3}.player ,
FROM (
{$table1}
LEFT JOIN {$table2}
ON {$table1}.evId = {$table2}.id
)
LEFT JOIN {$table3}
ON {$table1}.evId = {$table3}.evId
WHERE {$table1}.uId = ?
AND {$table1}.uType = ?
ORDER BY {$table1}.evDay, {$table2}.startTime1
limit ?
",
array($uId,$uType,$limit)
);
return $rs;
}
0549nobodyさん
2009/09/08(火) 22:01:21ID:???0550nobodyさん
2009/09/08(火) 22:28:35ID:???どういうわけか limitをLIMITと大文字にしたら解決しました
その後limitに戻しても動作してます
わけわからないですが解決しました。ありがとうございました。
0551nobodyさん
2009/09/11(金) 15:51:16ID:???0553nobodyさん
2009/09/12(土) 06:36:52ID:???特にfreeze()メソッドが無いあたりが...。
Zend_Configで要素を定義できるのは楽なんだが、その分表示で苦労するというか
なかなか頭が切りかわらねぇ(´・ω・`)
0554nobodyさん
2009/09/14(月) 08:48:30ID:???pearでもzendでも、フォーム関連ってjavascriptとの連携フレキシブルにできるもの?
プルダウンの初期値によって以降の項目を非表示にするとか入力不可能にするとか。。
もしくはフォーム要素のnameを変えるとか
quickformやzend_formの存在知らずに全部スクラッチで書いて後悔気味なんだけど
そういうの柔軟に対応できるなら勉強し直そうかなぁ
0555nobodyさん
2009/09/15(火) 18:16:25ID:???VISTA+IIS7.0+PHP5.2.10 の環境でZend Frameworkが動くか実験中です。
目的はFastCGIを利用すると、利用しない場合よりもどのくらい高速になるかです。
IIS7.0にFastCGIは標準で入っているので、URL Rewriteモジュールをインストールし、
----
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ public/index.php [NC,L]
----
上記をサイトトップで読み込ませて、サイトトップフォルダ直下にWeb.configファイルを作成したところ、最初の画面は表示されたのですが、次画面以降
URL Rewriteが上手く動作してなく、ページが見つからないというエラーで終了してしまいます。
Zend Frameworkを利用したphpサイトにおいて、URL Rewriteモジュールはどのように設定すべきなのでしょうか?
※ Zend FrameworkのDocumentを見る限り、IIS7.0で動作すると書かれているので、動くと思うのですが。
0556nobodyさん
2009/09/15(火) 18:31:05ID:???PHPは実行されるがエラーが表示されるのか、
どっちだ?
0557nobodyさん
2009/09/15(火) 18:37:51ID:???Zend FrameworkのFile Not Foundエラーぽいです
なので、フレンドリーURLだけが認識していないっぽいです
0560555
2009/09/15(火) 19:17:52ID:???度々の質問すみません。
IIS7.0で標準で用意されているDefault Web Site(物理パス C:\Inetpub\wwwroot)の下にZFで作成されたphpソースをごっそり配置でOK?
どこかの物理パスにZFで作成されたphpソースをごっそり配置して、新たにWebサイトを追加する際、publicフォルダ下を指定でOK?
調査した結果、多分そこらへんの根本的なサイト作成部分から間違っていそうです。
0561nobodyさん
2009/09/16(水) 09:40:35ID:???ISAPI_Rewriteを使ってるならmod_rewriteと同じ記述みたいだけど
0562nobodyさん
2009/09/17(木) 21:54:53ID:+ukzFmCv0563nobodyさん
2009/09/17(木) 23:06:10ID:???0564nobodyさん
2009/09/17(木) 23:32:04ID:???好みでいいと思う。
0565nobodyさん
2009/09/19(土) 15:10:47ID:???ひょっとしてCakePHP使ってた?
あっちは単数複数間違えるととたんにおかしくなるからね。
ZFはその辺で余計なことはしないので、好きに決めればいい。
0566nobodyさん
2009/09/19(土) 15:36:15ID:???0567nobodyさん
2009/09/20(日) 19:58:18ID:???0568nobodyさん
2009/09/20(日) 20:47:10ID:???0569nobodyさん
2009/09/21(月) 08:31:25ID:???0570nobodyさん
2009/09/23(水) 15:26:57ID:???OpenID 2.0 (7.3) XRI and Yadis discovery
はいつ対応されるんだー
0572nobodyさん
2009/09/25(金) 21:19:55ID:???誰か作ってないの?
0574nobodyさん
2009/09/25(金) 21:46:22ID:???0576nobodyさん
2009/09/26(土) 00:34:43ID:???アプリケーション全体で使う設定ファイルの初期設定みたいなリソースって無いのかなって
思ったんです
0577nobodyさん
2009/09/27(日) 00:28:42ID:???1.9 なら application/config/application.ini に
resources.xxxx....
とか書いとけばいいんでは。
この辺の仕組みはかなり良くできてる。
0578nobodyさん
2009/09/28(月) 22:56:59ID:???0579nobodyさん
2009/09/29(火) 12:23:38ID:???0580nobodyさん
2009/09/29(火) 12:25:41ID:???0581nobodyさん
2009/09/29(火) 14:29:55ID:???0583nobodyさん
2009/09/29(火) 19:25:04ID:???0584nobodyさん
2009/10/08(木) 20:34:18ID:X59TR80DZendFWで検索フォームなど利用すると
/kensaku/index/param/100 で paramが100の場合の結果を返すけど、
フォームをjavascriptで document.fm.submit(); として実行したらURIは
/kensaku/index/?param=100 となって、これをzendFWは解析・実行してくれません
?param=100でクエリ実行するにはどうしたら良いですか?
/param/100に書き換えるんですか?(それはどうやったら良いのか。。)または、
?param=100を解析する処理があるんでしょうか?
0585nobodyさん
2009/10/08(木) 20:35:44ID:???0586nobodyさん
2009/10/08(木) 20:39:52ID:X59TR80D?hoge1=100&hoge2=200 とかでも大丈夫ってことですか?
なんで上手くいかないんだろう…
0587584
2009/10/08(木) 20:48:10ID:X59TR80D$musicGenre = $this->getRequest()->getUserParam('m');
$rsRecommend = $this->_db->recommend($musicGenre);
echo $musicGenre;
という形で、getタイプのパラメータmを取得してそれを引数にし、対象のログをDBから引き出してるだけです
/search/index/m/5だったら動くんですが/search/index/?m=5だとダメなんです
echo $musicGenre;部分、?m=5の時は出力しません
なんでだろう
jsでURLを整形してlocation.hrefで飛ばすしかないのかな。そんな馬鹿な…
■ このスレッドは過去ログ倉庫に格納されています