Zend_Formを設定して使用しようとしています。Zendは死の白い画面で黙って失敗するインスタンスを作成します
私はZend Frameworkバージョン1.11.1のWin XPでApache 2.somethingを実行しています。私は、ほとんどの部分がうまく動作するサイトで作業しています。 (他の誰かがそれを始めました。私はそれを拡張する必要があります)。
私はフォームの領域で問題を抱えており、何とか問題を単純化することを期待してZend_Formを導入しようとしています。しかしZend_Formを使ってみると、それ自体の問題があります。
最初のテストフォームをインスタンス化しようとすると、エラーメッセージも表示されず、白い画面が表示されます。
データを次のように
Dir Structure:
MYAPPNAME
....controllers
....forms
....models
....services
....views
bootstrap.phpのは含まれています
protected function _initAutoLoading()
{
$loader = new Zend_Loader_Autoloader_Resource(array(
'namespace' => 'MYAPPNAME',
'basePath' => APPLICATION_PATH . '/modules/MYAPPNAME',
));
$loader->addResourceTypes(array(
'model' => array(
'path' => 'models',
'namespace' => 'Model'),
'form' => array(
'path' => 'forms',
'namespace' => 'Form'),
'service' => array(
'path' => 'services',
'namespace' => 'Service')));
}
これは、のような名前を持つモデルのために正常に動作します:
class MYAPPNAME_Model_DataRecordName extends Doctrine_Record
{
etc...
しかし、それは悲惨に失敗しているように見えますフォームについて...あなたが気にしていますが、これはZend_Formを使用する私の最初のパスです。
私のフォームはFormtest.php /ファイルもしmyAppName /フォームで定義されています。ビューは
<div class=""testForm">
<p style="margin-top:20px; margin-bottom:10px"">Explanatory Text</p>
<h2>This is a Form Test</h2>
<?php echo $this->formResponse; ?>
<?php echo $this->form; ?>
<hr>
<p>FORM ABOVE THIS BAR</p>
</div>
だけで正常に動作:
<?php
class MYAPPNAME_Form_Formtest extends Zend_Form
{
public function init($action){
$this->setAction($action)
->setMethod('post')
->setAttrib('id', 'formtestForm');
$email = $this->addElement('text', 'email',
array('label', => 'EMail'));
)
$submit = $this->addElement('submit', 'Submit and Be Free!');
}// End init
} // End class def
形式は以下のように定義されたビューに表示されています。
それは以下のように定義(作業コントローラに)作用によって管理されている:私は、フォームのインスタンス化とゴミデータラインの両方をコメントアウトした場合、私はビューで有効な出力を得る
public function formtestAction(){
echo "formtestAction: ENTERED";
$form = new MYAPPNAME_Form_Formtest('ThisController/formtest2');
//$form = "<p>GARBAGE DATA</p>";
if(!empty($form)){$this->view->form = $form;}
else{
$form = "<p>THE FORM VAR IS EMPTY</p>";
$this->view->form = $form;
$formResponse = "<p>INSTANTIATION FAILED</p>";
$this->view->formResponse = $formResponse;
}
}
public function formtest2Action(){
echo "formtest2Action: ENTERED";
}
。私が$ formを "GARBAGE DATA"に設定すると、予測可能な出力も得られます。私は、フォームオブジェクトをインスタンス化しようとすると、
は、しかし、私は唯一の「formtestAction:入力した」を含む死の白い画面を取得します(。上部のecho文から)
私はゆっくりと怒っつもりです。
これはオートローダーの問題、ルーティングの問題、オブジェクトのインスタンス化の問題、または何かを理解できません。
私は何かアドバイスをお願いします。
読んでいただきありがとうございます。
PHPログを確認しましたか? PHPの致命的なエラーが発生した場合は、空白の画面が表示される可能性が非常に高いです。さらに、致命的なエラーはアプリケーションログに記録されません(キャッチされない例外のように)、PHPログに直接行きます。 – Vika