Ошибка Zend через мой INI-файл - PullRequest
1 голос
/ 09 июля 2009

На моем сайте появляется следующая ошибка, однако я не знаю, что мне делать. Я знаю, что что-то упустил, однако, я просто не могу понять это.

Вы можете увидеть, чего я пытаюсь достичь здесь: 4.6.4. Zend_Application_Resource_Session

Неустранимая ошибка: необработанное исключение «Zend_Db_Table_Exception» с сообщением «Не найден адаптер для Zend_Session_SaveHandler_DbTable» в C: \ xampp \ htdocs \ app \ library \ Zend \ Db \ Table \ Abstract.php: 667 Трассировка стека: # 0 C: \ xampp \ htdocs \ app \ library \ Zend \ Db \ Table \ Abstract.php (652): Zend_Db_Table_Abstract -> _ setupDatabaseAdapter () # 1 C: \ xampp \ htdocs \ app \ library \ Zend \ Session \ SaveHandler \ DbTable.php (401): Zend_Db_Table_Abstract -> _ setup () # 2 C: \ xampp \ htdocs \ app \ library \ Zend \ Db \ Table \ Abstract.php (286): Zend_Session_SaveHandler_DbTable -> _ setup () # 3 C: \ xampp \ htdocs \ verelo \ library \ Zend \ Session \ SaveHandler \ DbTable.php (205): Zend_Db_Table_Abstract -> __ construct (Array) # 4 C: \ xampp \ htdocs \ app \ library \ Zend \ Application \ Resource \ Session.php (59) : Zend_Session_SaveHandler_DbTable -> __ construct (Array) # 5 C: \ xampp \ htdocs \ app \ library \ Zend \ Application \ Resource \ ResourceAbstract.php (93): Zend_Application_Resource_Session-> setSaveHandler (Array) # 6 hocam приложение \ библиотека \ Zend \ Application \ Resource \ ResourceAbstract.php (7 2): Zend_Application_R в C: \ xampp \ htdocs \ app \ library \ Zend \ Db \ Table \ Abstract.php в строке 667

Вот мой файл config.ini:

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = ""
resources.db.params.dbname = "app"
resources.db.isDefaultTableAdapter = true

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
;resources.frontController.moduleControllerDirectoryName = "actions"
;resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
;resources.frontController.defaultControllerName = "site"
;resources.frontController.defaultAction = "home"
;resources.frontController.defaultModule = "static"
;resources.frontController.baseUrl = "/subdir"
;resources.frontController.plugins.foo = "My_Plugin_Foo"
;resources.frontController.plugins.bar = "My_Plugin_Bar"
resources.frontController.env = APPLICATION_ENV

resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"

resources.view[] = 
resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "/views/scripts"

resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
resources.session.saveHandler.options.primary.session_id = "session_id"
resources.session.saveHandler.options.primary.save_path = "save_path"
resources.session.saveHandler.options.primary.name = "name"
resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "session_data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

resources.db.params.username = "root"
resources.db.params.password = ""

Конечно, я удалил пароль root, но это все, что я изменил для этого поста.

1 Ответ

7 голосов
/ 09 июля 2009

Вы должны убедиться, что ресурс базы данных загружен первым. Самый простой способ - добавить новую функцию в application / Bootstrap.php:

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    public function _initSessionAfterDb()
    {
        $this->bootstrap('db');
        $this->bootstrap('session');
    }

}

Конечно, вы ожидаете, что это произойдет автоматически, поэтому я подозреваю, что в сеансовом ресурсе Zend_Applicaton есть ошибка зависимости ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...