chukShirley
9/23/2015 - 8:03 PM

ZF2 IBM i Toolkit module

ZF2 IBM i Toolkit module

<?php
namespace IbmiToolkit;

use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;

class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        $eventManager        = $e->getApplication()->getEventManager();
        $moduleRouteListener = new ModuleRouteListener();
        $moduleRouteListener->attach($eventManager);
    }

    public function getConfig()
    {
        return include __DIR__ . '/config/module.config.php';
    }

    public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\ClassMapAutoloader' => [
                __DIR__ . '/autoload_classmap.php',
            ],
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }
}
<?php
// Generated by ZF2's ./bin/classmap_generator.php
return array(
    'IbmiToolkit\Module'                 => __DIR__ . '/Module.php',
    'IbmiToolkit\Factory\ToolkitFactory' => __DIR__ . '/src/IbmiToolkit/Factory/ToolkitFactory.php',
);
<?php
return [
    'service_manager' => [
        'abstract_factories' => [
            'Zend\Cache\Service\StorageCacheAbstractServiceFactory',
            'Zend\Log\LoggerAbstractServiceFactory',
        ],
        'factories' => [
            'IbmiToolkit\IbmiToolkit' => 'IbmiToolkit\Factory\ToolkitFactory'
        ],
    ],
];
<?php
namespace IbmiToolkit\Factory;

use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;

/**
 * Class ToolkitFactory
 * @package IbmiToolkit\Factory
 */
class ToolkitFactory implements FactoryInterface
{
    /**
     * @param ServiceLocatorInterface $sm
     * @return \ToolkitService
     */
    public function createService(ServiceLocatorInterface $sm)
    {
        $config = $sm->get('Config');
        $settings = $config['ibmiToolkit'];

        $dbAdapter = $sm->get('ibmiToolkit_zend_db_adapter');
        $conn = $dbAdapter->getDriver()->getConnection()->getResource();

        require('ToolkitService.php');
        $tk = \ToolkitService::getInstance($conn,$settings['naming_mode']);
        $tk->setOptions($settings);

        return $tk;
    }
}