Skip to content

Commit

Permalink
lolautruche#32: Removed deprecated ViewParameterProviderInterface
Browse files Browse the repository at this point in the history
  • Loading branch information
lolautruche committed Jun 12, 2017
1 parent a4e98ae commit d1bfc62
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 340 deletions.
29 changes: 7 additions & 22 deletions EventListener/ViewTemplateListener.php
Expand Up @@ -37,7 +37,7 @@ class ViewTemplateListener implements EventSubscriberInterface
private $settingParser;

/**
* @var \Lolautruche\EzCoreExtraBundle\View\ViewParameterProviderInterface[]|\Lolautruche\EzCoreExtraBundle\Templating\ViewParameterProviderInterface[]
* @var \Lolautruche\EzCoreExtraBundle\View\ViewParameterProviderInterface[]
*/
private $parameterProviders = [];

Expand All @@ -54,20 +54,16 @@ public static function getSubscribedEvents()
];
}

public function addParameterProvider($provider, $alias)
public function addParameterProvider(ViewParameterProviderInterface $provider, $alias)
{
if (!($provider instanceof ViewParameterProviderInterface) && !($provider instanceof LegacyParameterProviderInterface)) {
throw new \InvalidArgumentException('Parameter provider must implement Lolautruche\EzCoreExtraBundle\View\ViewParameterProviderInterface or Lolautruche\EzCoreExtraBundle\Templating\ViewParameterProviderInterface');
}

$this->parameterProviders[$alias] = $provider;
}

public function onPreContentView(PreContentViewEvent $event)
{
/** @var \eZ\Publish\Core\MVC\Symfony\View\View|\eZ\Publish\Core\MVC\Symfony\View\ContentViewInterface $contentView */
$contentView = $event->getContentView();
$configHash = $contentView->getConfigHash();
/** @var \eZ\Publish\Core\MVC\Symfony\View\View $view */
$view = $event->getContentView();
$configHash = $view->getConfigHash();
if (!isset($configHash['params']) || !is_array($configHash['params'])) {
return;
}
Expand Down Expand Up @@ -98,21 +94,10 @@ public function onPreContentView(PreContentViewEvent $event)
// The resulted array is casted to object (stdClass) for convenient use in templates.
// Parameter name will be unchanged. Parameters returned by provider will then be "namespaced" by the parameter name.
$provider = $this->parameterProviders[$param['provider']];
if (!$provider instanceof ViewParameterProviderInterface) {
@trigger_error(
'[ViewParameterProvider] Lolautruche\EzCoreExtraBundle\Templating\ViewParameterProviderInterface is deprecated. Use Lolautruche\EzCoreExtraBundle\View\ViewParameterProviderInterface instead.',
E_USER_DEPRECATED
);
$param = (object) $provider->getParameters([
'template' => $contentView->getTemplateIdentifier(),
'parameters' => $contentView->getParameters(),
]);
} else {
$param = (object) $provider->getViewParameters(new ConfigurableView($contentView), $paramProviderOptions);
}
$param = (object) $provider->getViewParameters(new ConfigurableView($view), $paramProviderOptions);
}
}

$contentView->setParameters(array_replace($contentView->getParameters(), $configHash['params']));
$view->setParameters(array_replace($view->getParameters(), $configHash['params']));
}
}
3 changes: 0 additions & 3 deletions Resources/doc/template_variables_injection.md
Expand Up @@ -74,9 +74,6 @@ Parameter provider services must implement `\Lolautruche\EzCoreExtraBundle\View\
(or extend `\Lolautruche\EzCoreExtraBundle\View\ConfigurableViewParameterProvider`).
Such services must be defined with `ez_core_extra.view_parameter_provider` tag.

> Deprecation notice: `\Lolautruche\EzCoreExtraBundle\Templating\ViewParameterProviderInterface` has been deprecated in v1.1
> and will be removed in v2.0.
See the [full example below](#example), for details.


Expand Down
33 changes: 0 additions & 33 deletions Templating/ViewParameterProviderInterface.php

This file was deleted.

212 changes: 0 additions & 212 deletions Tests/EventListener/ViewTemplateListenerLegacyProviderTest.php

This file was deleted.

15 changes: 5 additions & 10 deletions Tests/EventListener/ViewTemplateListenerTest.php
Expand Up @@ -12,8 +12,10 @@
namespace Lolautruche\EzCoreExtraBundle\Tests\EventListener;

use eZ\Bundle\EzPublishCoreBundle\DependencyInjection\Configuration\SiteAccessAware\DynamicSettingParser;
use eZ\Publish\Core\MVC\ConfigResolverInterface;
use eZ\Publish\Core\MVC\Symfony\Event\PreContentViewEvent;
use eZ\Publish\Core\MVC\Symfony\MVCEvents;
use eZ\Publish\Core\MVC\Symfony\View\View;
use eZ\Publish\Core\Repository\Values\Content\Content;
use eZ\Publish\Core\Repository\Values\Content\Location;
use Lolautruche\EzCoreExtraBundle\EventListener\ViewTemplateListener;
Expand All @@ -36,7 +38,7 @@ class ViewTemplateListenerTest extends PHPUnit_Framework_TestCase
protected function setUp()
{
parent::setUp();
$this->configResolver = $this->createMock('\eZ\Publish\Core\MVC\ConfigResolverInterface');
$this->configResolver = $this->createMock(ConfigResolverInterface::class);
$this->dynamicSettingParser = new DynamicSettingParser();
}

Expand All @@ -51,18 +53,11 @@ public function testGetSubscribedEvents()
}

/**
* @return \PHPUnit_Framework_MockObject_MockObject|\eZ\Publish\Core\MVC\Symfony\View\View|\eZ\Publish\Core\MVC\Symfony\View\ContentViewInterface
* @return \PHPUnit_Framework_MockObject_MockObject|\eZ\Publish\Core\MVC\Symfony\View\View
*/
private function generateView()
{
// \eZ\Publish\Core\MVC\Symfony\View\View is only defined in kernel >=6.0
if (interface_exists('\eZ\Publish\Core\MVC\Symfony\View\View')) {
$view = $this->createMock('\eZ\Publish\Core\MVC\Symfony\View\View');
} else {
$view = $this->createMock('\eZ\Publish\Core\MVC\Symfony\View\ContentViewInterface');
}

return $view;
return $this->createMock(View::class);
}

public function testOnPreViewContentNoParams()
Expand Down

0 comments on commit d1bfc62

Please sign in to comment.