noiselabs / SmartyBundle

Smarty3 template engine bundle for Symfony
http://smartybundle.readthedocs.io/
GNU Lesser General Public License v3.0
51 stars 36 forks source link

Symfony 5 support #98

Open oldy777 opened 2 years ago

oldy777 commented 2 years ago

@vitorbrandao Hi! Do you have plans to add sf5 support? I faced some problems trying to adopt it for sf5.

  1. There is no tempting section in framework config, so you need use SmartyEngin directly

    - templating:
    -     engines: ['smarty']
  2. There is not kernel.root_dir var. Now we have kernel.project_dir. And default folder is templates

  3. Small change we need in \NoiseLabs\Bundle\SmartyBundle\Extension\SecurityExtension

    - return $this->authorizationChecker->isGranted($role, $object);
    + try {
    +            return $this->authorizationChecker->isGranted($role, $object);
    +       } catch (AuthenticationCredentialsNotFoundException $e) {
    +            return false;
    +        }
  4. EngineInterface namespace changed;

    - use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
    + use Symfony\Component\Templating\EngineInterface;
  5. Symfony\Bundle\FrameworkBundle\CacheWarmer\TemplateFinderInterface removed without replacement

  6. The biggest problem FileLocator interface changed. Now we can't inject anything in FileLocator except $kernel

    class FileLocatorFactory
    {
    /**
     * @param KernelInterface $kernel A KernelInterface instance
     * @param null|string     $path   The path the global resource directory
     * @param array           $paths  An array of paths where to look for resources
     */
    public static function createFileLocator(KernelInterface $kernel, ?string $path, array $paths, array $extraTemplatePaths): FileLocator
    {
        return new FileLocator($kernel, /**$path, array_merge($paths, $extraTemplatePaths)*/);
    }
    }
  7. Small problems with tests. They can be easily solved except this problem with FileLocator

vitorbrandao commented 2 years ago

Hi, @oldy777. I've started working on sf5 in this PR but it's not a trivial task as they have dropped the built-in support for multiple templating engines. I'll get in touch with the core team.

My plan is to release a stable 4.0 SmartyBundle release this month then have the master branch free for sf5 support work.