Symfony PHP framework standard service set up pattern for classes and libraries

Symfony standard service set up pattern. Setting up a class to be accessible from any Symfony file is easiest done through the “service container”.

Here is an example of setting up a new service.

//To render a TWIG template from a string

//src/Project/Bundle/CoreBundle/Resources/config/services.yml:

services:                                                                          
    core.twig.string.loader:                                                       
        class: Twig_Loader_String                                                  
    core.twig.string:                                                              
        class: %twig.class%                                                        
        arguments: ["@core.twig.string.loader", %twig.options%]

You can then call the following to render the template:

$this->container->get('core.twig.string')->render($twig_string, ...);

Simple enough. You may be tempted to just include a file and create a new instance of the class with the \BaseNamespace, but remember your bundles are bundled for a reason and not including external libraries the “Symfony way” may cause you dependency issues and migration issues later.

Leave a Reply 0

Your email address will not be published. Required fields are marked *