[Templating] added more deprecation

This commit is contained in:
Fabien Potencier 2019-03-19 16:45:49 +01:00
parent 224c891e10
commit 7169f4d3e2
13 changed files with 51 additions and 42 deletions

View File

@ -32,6 +32,7 @@ use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
use Symfony\Component\Security\Core\Encoder\Argon2iPasswordEncoder;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Http\Controller\UserValueResolver;
use Symfony\Component\Templating\PhpEngine;
/**
* SecurityExtension.
@ -97,7 +98,9 @@ class SecurityExtension extends Extension implements PrependExtensionInterface
$loader->load('security.xml');
$loader->load('security_listeners.xml');
$loader->load('security_rememberme.xml');
$loader->load('templating_php.xml');
if (class_exists(PhpEngine::class)) {
$loader->load('templating_php.xml');
}
$loader->load('templating_twig.xml');
$loader->load('collectors.xml');
$loader->load('guard.xml');

View File

@ -10,11 +10,15 @@
<service id="templating.helper.logout_url" class="Symfony\Bundle\SecurityBundle\Templating\Helper\LogoutUrlHelper">
<tag name="templating.helper" alias="logout_url" />
<argument type="service" id="security.logout_url_generator" />
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
</service>
<service id="templating.helper.security" class="Symfony\Bundle\SecurityBundle\Templating\Helper\SecurityHelper">
<tag name="templating.helper" alias="security" />
<argument type="service" id="security.authorization_checker" on-invalid="ignore" />
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
</service>
</services>
</container>

View File

@ -11,6 +11,8 @@
namespace Symfony\Bundle\SecurityBundle\Templating\Helper;
@trigger_error('The '.LogoutUrlHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
use Symfony\Component\Security\Http\Logout\LogoutUrlGenerator;
use Symfony\Component\Templating\Helper\Helper;
@ -18,6 +20,8 @@ use Symfony\Component\Templating\Helper\Helper;
* LogoutUrlHelper provides generator functions for the logout URL.
*
* @author Jeremy Mikola <jmikola@gmail.com>
*
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
*/
class LogoutUrlHelper extends Helper
{

View File

@ -11,6 +11,8 @@
namespace Symfony\Bundle\SecurityBundle\Templating\Helper;
@trigger_error('The '.SecurityHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
use Symfony\Component\Security\Acl\Voter\FieldVote;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Component\Templating\Helper\Helper;
@ -19,6 +21,8 @@ use Symfony\Component\Templating\Helper\Helper;
* SecurityHelper provides read-only access to the security checker.
*
* @author Fabien Potencier <fabien@symfony.com>
*
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
*/
class SecurityHelper extends Helper
{

View File

@ -11,6 +11,8 @@
namespace Symfony\Bundle\TwigBundle\Loader;
@trigger_error('The '.FilesystemLoader::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig notation for templates instead.', E_USER_DEPRECATED);
use Symfony\Component\Config\FileLocatorInterface;
use Symfony\Component\Templating\TemplateNameParserInterface;
use Symfony\Component\Templating\TemplateReferenceInterface;
@ -22,6 +24,8 @@ use Twig\Loader\FilesystemLoader as BaseFilesystemLoader;
* to work with the Symfony paths and template references.
*
* @author Fabien Potencier <fabien@symfony.com>
*
* @deprecated since version 4.3, to be removed in 5.0; use Twig notation for templates instead.
*/
class FilesystemLoader extends BaseFilesystemLoader
{

View File

@ -280,6 +280,9 @@ class TwigExtensionTest extends TestCase
];
}
/**
* @group legacy
*/
public function testRuntimeLoader()
{
$container = $this->createContainer();

View File

@ -11,6 +11,8 @@
namespace Symfony\Component\Form\Extension\Templating;
@trigger_error('The '.TemplatingExtension::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
use Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper;
use Symfony\Component\Form\AbstractExtension;
use Symfony\Component\Form\FormRenderer;
@ -21,6 +23,8 @@ use Symfony\Component\Templating\PhpEngine;
* Integrates the Templating component with the Form library.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
*/
class TemplatingExtension extends AbstractExtension
{

View File

@ -11,12 +11,16 @@
namespace Symfony\Component\Form\Extension\Templating;
@trigger_error('The '.TemplatingRendererEngine::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
use Symfony\Component\Form\AbstractRendererEngine;
use Symfony\Component\Form\FormView;
use Symfony\Component\Templating\EngineInterface;
/**
* @author Bernhard Schussek <bschussek@gmail.com>
*
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
*/
class TemplatingRendererEngine extends AbstractRendererEngine
{

View File

@ -60,30 +60,6 @@ use Symfony\Component\Form\Extension\Core\CoreExtension;
* ->addExtension(new ValidatorExtension($validator))
* ->getFormFactory();
*
* Support for the Templating component is provided by TemplatingExtension.
* This extension needs a PhpEngine object for rendering forms. As second
* argument you should pass the names of the default themes. Here is an
* example for using the default layout with "<div>" tags:
*
* use Symfony\Component\Form\Extension\Templating\TemplatingExtension;
*
* $formFactory = Forms::createFormFactoryBuilder()
* ->addExtension(new TemplatingExtension($engine, null, [
* 'FrameworkBundle:Form',
* ]))
* ->getFormFactory();
*
* The next example shows how to include the "<table>" layout:
*
* use Symfony\Component\Form\Extension\Templating\TemplatingExtension;
*
* $formFactory = Forms::createFormFactoryBuilder()
* ->addExtension(new TemplatingExtension($engine, null, [
* 'FrameworkBundle:Form',
* 'FrameworkBundle:FormTable',
* ]))
* ->getFormFactory();
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
final class Forms

View File

@ -48,8 +48,7 @@
"suggest": {
"symfony/validator": "For form validation.",
"symfony/security-csrf": "For protecting forms against CSRF attacks.",
"symfony/twig-bridge": "For templating with Twig.",
"symfony/framework-bundle": "For templating with PHP."
"symfony/twig-bridge": "For templating with Twig."
},
"autoload": {
"psr-4": { "Symfony\\Component\\Form\\": "" },

View File

@ -59,6 +59,10 @@ class HIncludeFragmentRenderer extends RoutableFragmentRenderer
throw new \InvalidArgumentException('The hinclude rendering strategy needs an instance of Twig\Environment or Symfony\Component\Templating\EngineInterface');
}
if ($templating instanceof EngineInterface) {
@trigger_error(sprintf('Using a "%s" instance for "%s" is deprecated since version 4.3; use a \Twig\Environment instance instead.', EngineInterface::class, __CLASS__), E_USER_DEPRECATED);
}
$this->templating = $templating;
}

View File

@ -16,6 +16,8 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Controller\ControllerReference;
use Symfony\Component\HttpKernel\Fragment\HIncludeFragmentRenderer;
use Symfony\Component\HttpKernel\UriSigner;
use Twig\Environment;
use Twig\Loader\ArrayLoader;
class HIncludeFragmentRendererTest extends TestCase
{
@ -74,7 +76,17 @@ class HIncludeFragmentRendererTest extends TestCase
$this->assertEquals('<hx:include src="/foo" p1="v1" p2="v2" id="bar">default</hx:include>', $strategy->render('/foo', Request::create('/'), ['default' => 'default', 'id' => 'bar', 'attributes' => ['p1' => 'v1', 'p2' => 'v2']])->getContent());
}
public function testRenderWithDefaultText()
public function testRenderWithTwigAndDefaultText()
{
$twig = new Environment($loader = new ArrayLoader());
$strategy = new HIncludeFragmentRenderer($twig);
$this->assertEquals('<hx:include src="/foo">loading...</hx:include>', $strategy->render('/foo', Request::create('/'), ['default' => 'loading...'])->getContent());
}
/**
* @group legacy
*/
public function testRenderWithDefaultTextLegacy()
{
$engine = $this->getMockBuilder('Symfony\\Component\\Templating\\EngineInterface')->getMock();
$engine->expects($this->once())
@ -86,17 +98,4 @@ class HIncludeFragmentRendererTest extends TestCase
$strategy = new HIncludeFragmentRenderer($engine);
$this->assertEquals('<hx:include src="/foo">default</hx:include>', $strategy->render('/foo', Request::create('/'), ['default' => 'default'])->getContent());
}
public function testRenderWithEngineAndDefaultText()
{
$engine = $this->getMockBuilder('Symfony\\Component\\Templating\\EngineInterface')->getMock();
$engine->expects($this->once())
->method('exists')
->with('loading...')
->willThrowException(new \RuntimeException());
// only default
$strategy = new HIncludeFragmentRenderer($engine);
$this->assertEquals('<hx:include src="/foo">loading...</hx:include>', $strategy->render('/foo', Request::create('/'), ['default' => 'loading...'])->getContent());
}
}

View File

@ -39,7 +39,8 @@
"symfony/templating": "~3.4|~4.0",
"symfony/translation": "~4.2",
"symfony/var-dumper": "^4.1.1",
"psr/cache": "~1.0"
"psr/cache": "~1.0",
"twig/twig": "^1.34|^2.4"
},
"provide": {
"psr/log-implementation": "1.0"