No instance returned Zend Framework 2?

Viewed 8755

I have developed one project and successfully works on my local machine.on live site i create one folder dev in public_html and move same project from local machine,but its gives me following error.

Zend\ServiceManager\Exception\ServiceNotCreatedException

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

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

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..

My Service Factory means model.config.php file is:

<?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;
                    },

                ),
            );
        }
    }
    ?>

Stack Trace is like this:

Zend\ServiceManager\Exception\ServiceNotCreatedException

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}
1 Answers

The PDO extension is required for this adapter but the extension is not loaded

This gives you the answer: php has a module called php data objects, or pdo. This is a module available on modern php installations which enables database access for your php application.

I think there are three possible reasons:

  1. You don't have the pdo module installed
  2. You have pdo as a module installed, but not enabled
  3. You have an old version of php. For Zend Framework 2, minimally php 5.3.3 is required

So you probably have to upgrade or configure your server to get this working.

Related