Skip to content
This repository has been archived by the owner on Jan 30, 2020. It is now read-only.

Commit

Permalink
Refactor with new service manager and event manager
Browse files Browse the repository at this point in the history
  • Loading branch information
ezimuel committed Oct 13, 2015
1 parent e45d2fd commit 276c2ea
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 21 deletions.
6 changes: 3 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
"require-dev": {
"zendframework/zend-cache": "~2.5",
"zendframework/zend-config": "~2.5",
"zendframework/zend-eventmanager": "~2.5",
"zendframework/zend-eventmanager": "dev-develop as 2.7.0",
"zendframework/zend-filter": "~2.5",
"zendframework/zend-servicemanager": "~2.5",
"zendframework/zend-servicemanager": "dev-develop as 2.7.0",
"zendframework/zend-validator": "~2.5",
"zendframework/zend-view": "~2.5",
"zendframework/zend-view": "dev-develop as 2.6.0",
"fabpot/php-cs-fixer": "1.7.*",
"phpunit/PHPUnit": "~4.0"
},
Expand Down
20 changes: 11 additions & 9 deletions src/Translator/LoaderPluginManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

use Zend\I18n\Exception;
use Zend\ServiceManager\AbstractPluginManager;
use Zend\ServiceManager\Factory\InvokableFactory;

/**
* Plugin manager implementation for translation loaders.
Expand Down Expand Up @@ -54,15 +55,16 @@
*/
class LoaderPluginManager extends AbstractPluginManager
{
/**
* Default set of loaders.
*
* @var array
*/
protected $invokableClasses = [
'gettext' => 'Zend\I18n\Translator\Loader\Gettext',
'ini' => 'Zend\I18n\Translator\Loader\Ini',
'phparray' => 'Zend\I18n\Translator\Loader\PhpArray',
protected $aliases = [
'gettext' => Loader\Gettext::class,
'ini' => Loader\Ini::class,
'phparray' => Loader\PhpArray::class
];

protected $factories = [
Loader\Gettext::class => InvokableFactory::class,
Loader\Ini::class => InvokableFactory::class,
Loader\PhpArray::class => InvokableFactory::class
];

/**
Expand Down
3 changes: 2 additions & 1 deletion src/Translator/Translator.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
use Zend\I18n\Translator\Loader\FileLoaderInterface;
use Zend\I18n\Translator\Loader\RemoteLoaderInterface;
use Zend\Stdlib\ArrayUtils;
use Zend\ServiceManager\ServiceManager;

/**
* Translator.
Expand Down Expand Up @@ -334,7 +335,7 @@ public function setPluginManager(LoaderPluginManager $pluginManager)
public function getPluginManager()
{
if (!$this->pluginManager instanceof LoaderPluginManager) {
$this->setPluginManager(new LoaderPluginManager());
$this->setPluginManager(new LoaderPluginManager(new ServiceManager));
}

return $this->pluginManager;
Expand Down
16 changes: 14 additions & 2 deletions src/Translator/TranslatorServiceFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@

namespace Zend\I18n\Translator;

use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\ServiceManager\Factory\FactoryInterface;
use Interop\Container\ContainerInterface;

/**
* Translator.
*/
class TranslatorServiceFactory implements FactoryInterface
{
/*
public function createService(ServiceLocatorInterface $serviceLocator)
{
// Configure the translator
Expand All @@ -25,4 +26,15 @@ public function createService(ServiceLocatorInterface $serviceLocator)
$translator = Translator::factory($trConfig);
return $translator;
}
*/

public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
// Configure the translator
$config = $container->get('Config');
$trConfig = isset($config['translator']) ? $config['translator'] : [];
$translator = Translator::factory($trConfig);
return $translator;
}

}
8 changes: 4 additions & 4 deletions src/View/HelperConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ class HelperConfig implements ConfigInterface
* in this class.
*
* @param ServiceManager $serviceManager
* @return void
* @return ServiceManager
*/
public function configureServiceManager(ServiceManager $serviceManager)
{
foreach ($this->invokables as $name => $service) {
$serviceManager->setInvokableClass($name, $service);
}
return $serviceManager->withConfig(
[ 'invokables' => $this->invokables ]
);
}
}
2 changes: 1 addition & 1 deletion test/Translator/TranslatorServiceFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public function testCreateServiceWithNoTranslatorKeyDefined()
->will($this->returnValueMap($slContents));

$factory = new TranslatorServiceFactory();
$translator = $factory->createService($serviceLocator);
$translator = $factory($serviceLocator, 'Zend\I18n\Translator\Translator');
$this->assertInstanceOf('Zend\I18n\Translator\Translator', $translator);
}
}
9 changes: 8 additions & 1 deletion test/Translator/TranslatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,14 @@ public function testTranslate()
{
$loader = new TestLoader();
$loader->textDomain = new TextDomain(['foo' => 'bar']);
$this->translator->getPluginManager()->setService('test', $loader);
$pm = $this->translator->getPluginManager();
$this->translator->setPluginManager(
$pm->withConfig([
'services' => [
'test' => $loader
]
])
);
$this->translator->addTranslationFile('test', null);

$this->assertEquals('bar', $this->translator->translate('foo'));
Expand Down

0 comments on commit 276c2ea

Please sign in to comment.