Zend newbie пытается настроить и использовать Zend_Form.Ошибка создания экземпляра формы Zend в белом экране смерти
Только для записи Я нахожусь в Zend Framework Версия: 1.11.1 на Win XP работает Apache 2.что-то. Я работаю над сайтом, который по большей части отлично работает. (Кто-то еще начал его, я должен продлить его).
У меня возникают проблемы в области форм и я пытаюсь представить 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.
Моя форма определяется в файле MYAPPNAME/форм/Formtest.php:
<?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
Форма отображается в представлении определяется как:
<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>
Вид работает просто отлично.
Он управляется действием (в рабочем контроллере) определяется как:
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: Вступил» (. От эха заявления в верхней части)
Я иду медленно с умом.
Я не могу понять, является ли это проблемой автозагрузчика, проблемой маршрутизации, проблемой создания объекта или что.
Я был бы очень признателен за любые советы.
Спасибо за чтение.
Вы проверили свои журналы PHP? Если вы столкнулись с некоторой фатальной ошибкой PHP, вы, скорее всего, получите пустой экран. Кроме того, фатальные ошибки не приземляются в вашем журнале приложений (как это делают нечеткие исключения), они перейдут прямо в журнал PHP. – Vika 2010-12-06 15:58:03