首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有实例返回ZendFramework2?

没有实例返回ZendFramework2?
EN

Stack Overflow用户
提问于 2013-12-04 05:17:17
回答 1查看 8.8K关注 0票数 4

我开发了一个项目并成功地在我的本地machine.on活动站点上工作--我在public_html中创建了一个文件夹开发器,并从本地机器上移动了相同的项目,但是它给了我以下错误。

Zend\ServiceManager\Exception\ServiceNotCreatedException

代码语言:javascript
复制
File: /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:859
Message: An exception was raised while creating "Front/Model/Slider"; no instance returned

Zend\ServiceManager\Exception\ServiceNotCreatedException

代码语言:javascript
复制
File: /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:859
Message: An exception was raised while creating "Zend\Db\Adapter\Adapter"; no instance returned

Zend\Db\Adapter\Exception\RuntimeException

代码语言:javascript
复制
File: /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Pdo.php:218
Message: The PDO extension is required for this adapter but the extension is not loaded..

我的服务工厂意味着model.config.php文件是:

代码语言:javascript
复制
<?php
    namespace Front;
    /*use Zend\ModuleManager\ModuleManager;*/
    class Module
    {
        public function getAutoloaderConfig()
        {
            return array('Zend\Loader\StandardAutoloader' =>
                array('namespaces' =>
                    array(__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,),
                ),
            );
        }
    /*    public function init(ModuleManager $moduleManager)
        {
            $sharedEvents = $moduleManager->getEventManager()->getSharedManager();
            $sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
                // This event will only be fired when an ActionController under the MyModule namespace is dispatched.
                $controller = $e->getTarget();
                $controller->layout('layout/frontlayout');
            }, 100);
        }
    */
        public function getConfig()
        {
            return include __DIR__ . '/config/module.config.php';
        }
        // Add this method:
        public function getServiceConfig()
        {
            return array(
                'factories' => array(

                    'Front\Model\Cms' =>  function($sm) {
                        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                        $table     = new \Front\Model\Cms($dbAdapter);
                        return $table;
                    },

                    'Front\Model\Slider' => function($sm) {
                        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                        $table     = new \Front\Model\Slider($dbAdapter);
                        return $table;
                    },

                ),
            );
        }
    }
    ?>

堆栈跟踪如下所示:

Zend\ServiceManager\Exception\ServiceNotCreatedException

代码语言:javascript
复制
File: /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php:859
Message: An exception was raised while creating "Front/Model/Slider"; no instance returned

#0 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(984): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Object(Closure), 'frontmodelslide...', 'Front/Model/Sli...')
#1 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(597): Zend\ServiceManager\ServiceManager->createFromFactory('frontmodelslide...', 'Front/Model/Sli...')
#2 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(556): Zend\ServiceManager\ServiceManager->doCreate('Front/Model/Sli...', 'frontmodelslide...')
#3 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(480): Zend\ServiceManager\ServiceManager->create(Array)
#4 /home/projectname/public_html/dev/module/Front/src/Front/Controller/FrontController.php(65): Zend\ServiceManager\ServiceManager->get('Front/Model/Sli...')
#5 /home/projectname/public_html/dev/module/Front/src/Front/Controller/FrontController.php(53): Front\Controller\FrontController->getSlider()
#6 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractActionController.php(83): Front\Controller\FrontController->indexAction()
#7 [internal function]: Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#8 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#9 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#10 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/Mvc/Controller/AbstractController.php(117): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#11 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/Mvc/DispatchListener.php(114): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#12 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#13 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#14 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#15 /home/projectname/public_html/dev/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(309): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#16 /home/projectname/public_html/dev/public/index.php(17): Zend\Mvc\Application->run()
#17 {main}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 08:17:22

此适配器需要PDO扩展,但未加载扩展。

这给出了答案: php有一个名为php数据对象或pdo的模块。这是一个在现代php安装上可用的模块,它允许您的php应用程序访问数据库。

我认为有三个可能的原因:

  1. 您没有安装pdo模块
  2. 已将pdo作为模块安装,但未启用
  3. 您有一个旧版本的php。对于Zend Framework 2,至少需要php 5.3.3

因此,您可能需要升级或配置您的服务器才能使其正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20367454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档