Zend framework Zend_validate isValid()卡在第608行的/library/Zend/validate/Hostname.php中的最大执行时间超过30秒

Zend framework Zend_validate isValid()卡在第608行的/library/Zend/validate/Hostname.php中的最大执行时间超过30秒,zend-framework,zend-form,Zend Framework,Zend Form,我正遭受Zend_validate的困扰,当我写表单并尝试添加验证器时,唯一对我有效的方法是如果我提交的表单没有值,它将显示错误消息,但是,如果我提交了好的值,它将停留一段时间,然后在第608行的/Applications/MAMP/htdocs/MyApplicationFolderName/library/Zend/Validate/Hostname.php中给出致命错误消息,表示超过了最长执行时间30秒 请帮助我的控制器操作代码是 public function createAction(

我正遭受Zend_validate的困扰,当我写表单并尝试添加验证器时,唯一对我有效的方法是如果我提交的表单没有值,它将显示错误消息,但是,如果我提交了好的值,它将停留一段时间,然后在第608行的/Applications/MAMP/htdocs/MyApplicationFolderName/library/Zend/Validate/Hostname.php中给出致命错误消息,表示超过了最长执行时间30秒 请帮助我的控制器操作代码是

public function createAction()
  {
    // action body

    $roleService=new User_Service_RoleService($this->em);



    $userForm=new User_Form_UserForm($roleService->listAllRoleNames());
    $userForm->startForm();

    $userForm->setAction('create');
    $userForm->setMethod('post');



    if($this->getRequest()->isPost() )
    {
        if($userForm->isValid($this->getRequest()->getPost()))
        {
        $this->userAccountService->createUser($this->getRequest()->getParams());
        $this->_forward('confirm');
        }

    }





    $this->view->form=$userForm;



}
我的表单类代码是

class User_Form_UserForm extends Zend_Form {
//put your code here

private $roles;

public function __construct($options = null) {
    parent::__construct($options);


    $this->roles=$options;


}


public function startForm()
{

    $idForm=new Zend_Form_Element_Hidden('id');
    $this->addElement($idForm);

     ///////////          
    $userEmailForm=new Zend_Form_Element_Text('email');
    $userEmailForm->setRequired(TRUE);
    $userEmailForm->setLabel('Email');

    $emailValidator=new Zend_Validate_EmailAddress();

   // $emailValidator->setOptions(array('domain' => FALSE));


    $userEmailForm->addValidator($emailValidator,false);

    $userEmailForm->setAttrib('size', 25);

    $userEmailForm->setFilters(array(new Zend_Filter_StringToLower(),
                                     new Zend_Filter_StringTrim())

                               );

    $this->addElement($userEmailForm);



}



 }
这是我表单的一小部分,它非常简单,但由于Doctrine2和名称空间的原因,Iam使用MAMP PHP5.3.5无法正常工作

请原谅,我们将非常感谢您的帮助


注意:我还尝试了其他验证器,如字符串长度,并显示了相同的错误。

我通过不使用mamp解决了问题,并开始使用Zendserver CE free Edition ,并通过执行此链接中描述的步骤 我可以将zend server的根文档编辑为用户/站点/ 我运行Zendframework验证,它运行得很好,我喜欢mamp,但我在Zend上开发,Zend使用iconv_strlen


解决这个问题的另一种方法是安装PHP,但我发现这不是一个简单的解决方案,或者你可以使用macports,我不想这样做,因为我使用zendframework,我需要一些与之相关的东西,所以我使用zendServer,这是迄今为止最干净的解决方案。

我通过不使用mamp解决了这个问题,并开始使用Zendserver CE免费版 ,并通过执行此链接中描述的步骤 我可以将zend server的根文档编辑为用户/站点/ 我运行Zendframework验证,它运行得很好,我喜欢mamp,但我在Zend上开发,Zend使用iconv_strlen

解决这个问题的另一种方法是安装PHP,但我发现这不是一个简单的解决方案,或者你可以使用macports,我不想这样做,因为我使用zendframework,我需要一些与之相关的东西,所以我使用zendServer,这是迄今为止最干净的解决方案

实际上我刚刚找到了这个问题的答案:

MAMP附带的PHP5.3版本中有一个bug iconv_strlen,导致do{…}同时为false;循环 验证程序无限运行。我刚刚将PHP版本切换到5.2,如下所示 无论如何,它更接近于生产,而且很有效。如果您需要5.3, 不过,您必须在MAMP中升级PHP安装。我 尚未尝试,但强烈建议使用以下链接:

希望一切都有帮助

资料来源:

实际上我刚刚找到了这个问题的答案:

MAMP附带的PHP5.3版本中有一个bug iconv_strlen,导致do{…}同时为false;循环 验证程序无限运行。我刚刚将PHP版本切换到5.2,如下所示 无论如何,它更接近于生产,而且很有效。如果您需要5.3, 不过,您必须在MAMP中升级PHP安装。我 尚未尝试,但强烈建议使用以下链接:

希望一切都有帮助


来源:

Possiblee replicate of-那里的一些解决方案可能会对您有所帮助。您是对的,他们似乎也有同样的问题,但我没有看到任何答案,他们说这是一个MAMP错误,因此我必须安装另一个PHP版本或使用PHP 5.2,因为名称空间和doctrine2,我无法安装,ZendCast视频是使用MAMP在Mac上运行的,教程中没有提到这方面的任何内容,我也有Zend的书籍,那里也没有,所以如果有人能解决这个问题,我真的会非常感谢Tanks Tim,它证实了同样的问题,iconv_strlen没有在Mac OSX上工作,感谢您指出原因,我将尝试解决它,但如果有一条捷径,请告诉我可能的重复-那里的一些解决方案可能对您有所帮助。您是对的,他们似乎也有同样的问题,但我看不到任何答案,他们说这是一个MAMP错误,因此,我必须安装另一个版本的PHP或使用PHP 5.2,我不能安装,因为名称空间和doctrine2,ZendCast视频使用MAMP在Mac上运行,教程中没有提到任何与此相关的内容,我也有Zend nothing的书籍,因此,如果有人能解决这个问题,我真的非常感谢Tanks Tim,它被证实是同一个问题,iconv_strlen没有在Mac OSX上工作,谢谢你指出原因,我将尝试解决它,但如果有一条捷径,请告诉我