Zend Framework Part4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/02/09(火) 22:21:24ID:???http://framework.zend.com/
マニュアル
http://framework.zend.com/manual/ja/
翻訳状況
http://mikaelkael.dyndns.org/checker/language/details/lang/ja
http://framework.zend.com/wiki/display/ZFDEV/Japanese+(Nihongo)
バグ報告
http://framework.zend.com/issues/secure/Dashboard.jspa
API
http://framework.zend.com/apidoc/core/
前のスレッド Zend Framework Part3
http://pc11.2ch.net/test/read.cgi/php/1239320100/
0002nobodyさん
2010/02/10(水) 01:40:17ID:???容赦なく突っ込んでやるからケツ貸せよ。
0003nobodyさん
2010/02/10(水) 09:21:33ID:???<?php
require_once 'Zend/Filter/Input.php';
$data = array( 'price' => '' );
$filters = array( '*' => 'StringTrim' );
$valids = array( 'price' => array(
Zend_Filter_Input::ALLOW_EMPTY => FALSE
//Zend_Filter_Input::ALLOW_EMPTY => TRUE,
//Zend_Filter_Input::PRESENCE => Zend_Filter_Input::PRESENCE_REQUIRED )
);
$options = array( Zend_Filter_Input::NOT_EMPTY_MESSAGE => '%field%は空文字列を許可しません。' );
$in = new Zend_Filter_Input($filters, $valids, $data, $options);
if($in->isValid()) {
print('検証に成功しました。<br />');
} else {
print_r($in->getInvalid()); //[A]
}
を実行すると、ブラウザには
Array ( [price] => Array ( [isEmpty] => priceは空文字列を許可しません。 ) )
と出ますが、 これを「priceは空文字列を許可しません。」、と表示させるにはどうすればいいのでしょうか?
[A]の部分を単純にprintやechoにしても「Array」、としかブラウザに表示されないものですから
0006nobodyさん
2010/02/10(水) 09:51:06ID:???0008nobodyさん
2010/02/12(金) 22:56:41ID:Rluma8O9Zend_Db_Table::fetchOne()はなぜないのでしょうか?
0009nobodyさん
2010/02/12(金) 23:14:04ID:???みんなは一人のために
0010nobodyさん
2010/02/12(金) 23:39:35ID:???0011nobodyさん
2010/02/12(金) 23:42:53ID:Rluma8O9対の話ではないです。
Zend_Db::fetchOne()はありますが、
Zend_Db_Table::fetchOne()がなぜないのかなぁと。
0012nobodyさん
2010/02/12(金) 23:45:14ID:???ってあるの?
0013nobodyさん
2010/02/13(土) 00:55:50ID:???0014nobodyさん
2010/02/13(土) 00:56:54ID:???PKだけ入ってるテーブルって事になる
0015nobodyさん
2010/02/13(土) 00:58:51ID:vm0LKRH20016nobodyさん
2010/02/13(土) 07:00:36ID:???0017nobodyさん
2010/02/13(土) 13:05:28ID:???次にプログラマ向けリファレンスガイド見て覚えようと思い
まずZend_Controllerから見ていこうと思ったんですが、最初に最低限目を通して
おいた方がいいのはZend_何でしょうか?
0018nobodyさん
2010/02/13(土) 13:53:45ID:???ググる前にquickstartはおすすめ
http://framework.zend.com/manual/ja/learning.quickstart.html
http://framework.zend.com/manual/ja/learning.html
コンポーネント別では、Zend_Service_*がいいと思う
0019nobodyさん
2010/02/13(土) 17:01:12ID:vm0LKRH2それで解決しました。
>>!4
Tableだって一つの返り値あります。
0020nobodyさん
2010/02/13(土) 17:25:25ID:???0021nobodyさん
2010/02/13(土) 17:35:28ID:vm0LKRH2何でですか?
複数テーブルで運営してるので明らかに不便なんですけど。
0022nobodyさん
2010/02/13(土) 17:38:13ID:???0023nobodyさん
2010/02/13(土) 21:05:02ID:Vt3QKYJR一つのサーバでzendFWを使う複数のサイトを作るとき(バーチャルドメインとかで)、
zendFWのパッケージ(?)はサイトの数分インストールしなくても良いのでしょうか?
FWのインストールは一度限りで、applicationディレクトリやルーティング、
テンプレートへのパス設定をそれぞれのサイトのフロントコントローラでやるだけで、
それぞれ別のサービス・ルールとして動いてくれるんでしょうか?
PHPだって2つも3つもインストールしないんだから一緒だろうとは思ったのですが
FWが初めてなので質問しました。すみませんが回答お願いします。
0025nobodyさん
2010/02/13(土) 21:33:22ID:???PHPプログラマらしい質問だと思う
オブジェクト指向が解ってない
0026nobodyさん
2010/02/13(土) 22:21:13ID:???OneがないならAdapterって返答スレばいいのに>>25みたくオブジェクト指向的には〜みたいに言いがかりつけて。
使いたいように使えっていうのがZFの発想だからどう使おうが自由。
>>25
オブジェクト指向的な説明お願いします。
0027nobodyさん
2010/02/13(土) 22:28:01ID:???え?
0028nobodyさん
2010/02/13(土) 22:29:37ID:???オブジェクト指向のデータアクセスでどのデータが帰ってくるか解らないOneなんて無いんだから無いんだよって話だろ
帰ってくるのはオブジェクトかオブジェクトのリストなんだから
0029nobodyさん
2010/02/13(土) 22:45:51ID:???なぜ、そう言い切れるんだ?
Zend_Db_AdapterならfetchOneがあって、TableならfetchOneがない理由とは言えないよな。
テーブルゲートウエイパターンに忠実とかそういう話なら少しはわかるが、
オブジェクト指向のデータアクセス??そこんとこ詳しく教えてくれ。
0030nobodyさん
2010/02/13(土) 22:47:34ID:???http://framework.zend.com/manual/1.10/ja/introduction.overview.html
>我々はこれを "use-at-will (使いたいように使ってくれ)" 方式と呼んでいます。
え?
0031nobodyさん
2010/02/13(土) 22:55:51ID:Vt3QKYJRバリデートクラスをnewで作るのって、検証対象の値ごとに作るしかないんでしょうか?
たとえば$val= new Zend_Vlidate_GreaterThanInt(n)を3つ<input type=text>の値に対して
それぞれやるとなると当然3つですよね?(制限値nが異なる場合)
3つならともかくフォーム全体で20個newするなんてことになるとすごく冗長というか
もっと要領のいいやり方はないのか気になってしまいます
みなさん、素直に大量にnewするようなセオリーに従ったつくりにしていますか?
何か効率化のアイディアがあったらアドバイスいただけると嬉しいです。よろしくお願いします。
>>24
ありがとうございました、自信がもてなかったので助かりました。
003231
2010/02/13(土) 22:57:13ID:???>たとえば$val= new Zend_Vlidate_GreaterThanInt(n)
たとえば$val= new Zend_Vlidate_GreaterThan(n) でした
0034nobodyさん
2010/02/13(土) 23:12:29ID:???Validaterだけじゃなくて、decoratorもfilterも
ベンチとったわけじゃないけどね。なんとなく。
003631
2010/02/13(土) 23:50:18ID:???Zend_Form、そんなに画期的なんですか?
ありがとうございます、調べてみます。
>>34
インスタンス管理ってどんなことをするんでしょうか?
かなり恥ずかしい質問かもしれないです、すみません
php インスタンス管理/php インスタンス共有/オブジェクト指向 インスタンス管理
などでググって調べたんですがはっきりわかるものが出てきませんでした。
zend以前の質問かもですね…
うーん、、
0037nobodyさん
2010/02/13(土) 23:56:21ID:???変数に保存しておいて、setValidaterするだけ
0038nobodyさん
2010/02/14(日) 00:24:20ID:???すごく画期的。Javaの入力フォームみたいな感じで作れる。
フォームの作成とバリデーションを一緒にやってくれる。
ただ、デフォルトだと決まったレイアウトになるからそこら辺がいやでなければ断然こっち。
やりたいことを書くとこんな感じ
$form = new Zend_Form();
$form->setAction('/path/to/script')->setMethod('post');
$int = $form->createElement('text', 'int');
$int->setRequired();
$int->addValidator('GreaterThan', false, n);
$form->addElement($int);
0039nobodyさん
2010/02/14(日) 01:09:08ID:???どうもありがとうございます。
最初に変数に入れておくって、
(例として、今、GreaterThan.phpを開いてみているんですが)
$g = new ZendValidate_GreaterThan()//ここでは値を入れない
$chkParamA = $g->setMin(10);
if(!chkParamA->isValid($paramA)){//エラー出力}
$chkParamB = $g->setMin(5);
if(!chkParamB->isValid($paramB)){//エラー出力}
こんな手順でされているということでしょうか?
setValidatorというメソッド?がマニュアル見ても見つけられなかったので
ぜんぜん変なこと聞いてるかもしれないです、すみません。
しつこくてすみません、お返事いただけると幸いです。
ただこのやり方だとnewが減らせるだけで行数の多さは大して変わらないですね…
しょうがないのかな
>>38
わざわざありがとうございます。
パラメータの種類や名前と一緒にバリデータルールまでまとめて定義できるんですね
確かに楽だしすごいなー
ただ、<input name="userName[]" type="text" />を任意の数だけループ出力したり
n個目だけCSSのクラスを適用するような処理には向いてなさそうですね。。
テーブルに組み込んだりのレイアウトも癖がありそうだし…
上手に使い分けできるようにならなきゃだめですね〜
難しいけどできるようになりたいな。。
お二人とも、本当にありがとうございます
0040nobodyさん
2010/02/14(日) 09:47:20ID:???Zend_Form関係のsetValidatorsを使う
必要なValidatorのセットを作っておいてFormとかElementに設定して使う
> n個目だけCSSのクラスを適用するような処理には向いてなさそうですね。。
めちゃめちゃ向いている。
そのためのZend_Form
0041nobodyさん
2010/02/15(月) 13:14:36ID:???ドキュメントに理由が書いてないのですごく引っかかります。
0042nobodyさん
2010/02/15(月) 14:20:38ID:???で、他人の妄想を聞いてどうすんの?
0043nobodyさん
2010/02/15(月) 15:04:28ID:???聞いてみました。
明確に書いてあることなのでそれなりの理由があると思ったんですがなにかおかしなこと聞いていますか?
0044nobodyさん
2010/02/15(月) 15:11:15ID:???複数人で開発するときは、書き方が混ざったら読みづらくなるから
全員同じ書き方にあわせる
ただそれだけの話だ
0045nobodyさん
2010/02/15(月) 15:14:02ID:???このあたりとか、"タブ スペース"あたりでググるとそれ関連のがわんさかと。
http://blog.livedoor.jp/dankogai/archives/50475459.html
>>26じゃないけど、このスレは基本突っかかってくるからあんまり気にしない方がいいよ。
利用者がひねくれたフレームワークなのかもしれない。
■ このスレッドは過去ログ倉庫に格納されています