Zend_Session необнаруженное исключение - PullRequest
1 голос
/ 09 июля 2010

Итак, у меня есть это в моем index.php:

Zend_Session::start();

Затем в одном из моих контроллеров в методе init я делаю:

if (false === isset($this->defaultNamespace->tree)) {
    $this->defaultNamespace->tree = array();
}

, который все еще работает.Но затем в действии в том же контроллере я пишу это:

unset($this->defaultNamespace->tree); // I tried commenting this line
$this->defaultNamespace->tree = $this->tree;

И я получаю исключение, подобное этому:

<br />
<b>Fatal error</b>:  Uncaught exception 'Zend_Session_Exception' with message 'Zend_Session::start() - D:\data\o\WebProjects\elearning\public\index.php(Line:22): Error #2 include() [&lt;a href='function.include'&gt;function.include&lt;/a&gt;]: Failed opening 'SlideQuestion.php' for inclusion (include_path='D:\data\o\WebProjects\elearning/../../library;D:\data\o\WebProjects\elearning/application/../library;.;C:\php\pear;D:\data\o\WebLib\ZendFramework\library;') Array' in D:\data\o\WebLib\ZendFramework\library\Zend\Session.php:493
Stack trace:
#0 D:\data\o\WebProjects\elearning\public\index.php(26): Zend_Session::start()
#1 {main}
  thrown in <b>D:\data\o\WebLib\ZendFramework\library\Zend\Session.php</b> on line <b>493</b><br />

Дерево $ this-> это свойство содержит массивс некоторыми объектами в нем.

Ответы [ 2 ]

1 голос
/ 09 июля 2010

Хорошо, я думаю, что прибил проблему.

Очевидно, это была проблема с кодировкой (как это было слишком часто в последнее время ...). Вероятно, Zend_Session может принимать только данные в кодировке UTF-8. У некоторых объектов в массиве были свойства Windows-1250 в своих свойствах.

Я просто зациклил объекты на foreach и изменил их на UTF-8:

foreach ($array as $obj) {
    foreach ($obj as $property => $value) {
        if (is_string($value)) {
            $obj->$property = iconv('Windows-1250', 'UTF-8', $value);
        }
    }
}

А теперь работает нормально.

Чертовы интернационализированные приложения, написанные с нестандартной кодировкой (кроме UTF-8, обычно Windows-1250): P

0 голосов
/ 09 июля 2010

Файл SlideQuestion.php не может быть включен.Неправильные пути включения в библиотеку.

include_path='D:\data\o\WebProjects\elearning/../../library;

Должно быть

include_path='D:\data\o\WebProjects\elearning\..\..\library;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...