2012-08-11 72 views
2

我有我的應用程序,大約3年前使用運行在PHP 5.3上的Zend Framework 1.5進行編程[早期版本? 5.3引入goto作爲關鍵字]。從Zend Framework 1.5移動到1.11

我不得不將我的應用程序移動到運行在具有goto關鍵字的較新PHP版本的新主機上。我現在在使用ZF 1.5中實現的goto()函數時出錯。所以我決定在ZF 1.11上移動我的應用程序,希望最新版本能夠讓我擺脫這種錯誤。但是,通過這樣做,我只能在應用程序的Zend與我的數據庫進行通信的方式中遇到重大錯誤。而另一些錯誤,如

調用一個成員函數setMessage()非對象

上有

$form->caller_id->getValidator('Zend_Validate_NotEmpty')->setMessage('Please select your name from the caller list!', 'isEmpty'); 

行我不是非常熟悉與Zend 。我曾與CakePHP合作並瞭解MVC架構。

有人可以建議我應該如何解決這個問題?我覺得有點失落!

+0

PHP的最新版本是5.4.5,所以我會感到驚訝,如果你發現運行5.5的主機。 ZF不以任何方式使用goto,並且在PHP 5.3中添加了goto,您說您的應用程序是爲其編寫的。請你可以展示一些導致錯誤的代碼,並讓我們知道你的新主機實際運行的PHP版本。 – 2012-08-11 22:44:27

+0

關於ZF 1.5.1中的'goto',請參見[this old bug](http://framework.zend.com/issues/browse/ZF-3022)。我懷疑你已經從PHP 5.3移動到PHP 5.3。我懷疑許多託管服務提供商已經運行5.4,因爲還有那些還沒有升級到5.3的託管服務提供商。 – 2012-08-11 22:52:51

+0

不錯的地方。他的更新到ZF 1.11是否已經解決了這個問題? – 2012-08-11 23:06:41

回答

0

你只需要改變驗證程序的串名字(我想這是我自己的形式和短名稱上的一個「NotEmpty」返回對象和「Zend_Validate_NotEmpty」返回false):

電流:

$form->caller_id->getValidator('Zend_Validate_NotEmpty')->setMessage('Please select your name from the caller list!', 'isEmpty'); 

新:

$form->caller_id->getValidator('NotEmpty')->setMessage('Please select your name from the caller list!', 'isEmpty');