Skip to content

Commit aeed96c

Browse files
committed
Declare classes and use Symfony 4 style
Declaring classes avoids mistakes if one uses as class name as the shortcodes' service id.
1 parent 8492dd6 commit aeed96c

1 file changed

Lines changed: 11 additions & 15 deletions

File tree

README.md

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ public function registerBundles()
6464

6565
### Defining your own shortcodes
6666

67-
The easiest way is to add one anonymous service for each shortcode in your services definition:
67+
The easiest way is to add one service for each shortcode in your services definition:
6868

6969
```xml
70-
<service id="webfactory.shortcode.your-shortcode-name" parent="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi">
70+
<service id="webfactory.shortcode.your-shortcode-name" parent="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi" class="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler">
7171
<argument index="1">reference-to-your-replacement-controller</argument>
7272
<tag name="webfactory.shortcode" shortcode="your-shortcode-name"/>
7373
</service>
@@ -78,7 +78,7 @@ The parent ```Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi```
7878
inline rendering.
7979

8080
The ```reference-to-your-replacement-controller``` could be a string like ```AppBundle\Controller\EmbeddedImageController::showAction```
81-
or if you prefer controllers as a service, something like ```app.controller.embedded_image:showAction```. We recommend
81+
or if use controllers as services, something like ```AppBundle\Controller\EmbeddedImageController:showAction```. We recommend
8282
using several controllers grouped by feature with only a few actions to keep things simple and unit testable, instead of
8383
one huge ShortcodeController for all shortcodes. But of course, that's up to you.
8484

@@ -106,12 +106,12 @@ Then, write a service definition like this:
106106

107107
<!-- ... -->
108108

109-
<service id="webfactory.shortcode.image" parent="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi">
110-
<argument index="1">app.controller.embedded_image:showAction</argument>
109+
<service id="webfactory.shortcode.image" parent="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi" class="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler">
110+
<argument index="1">AppBundle\Controller\EmbeddedImageController:showAction</argument>
111111
<tag name="webfactory.shortcode" shortcode="image"/>
112112
</service>
113113

114-
<service id="app.controller.embedded_image" class="AppBundle\Controller\EmbeddedImageController">
114+
<service id="AppBundle\Controller\EmbeddedImageController">
115115
<argument type="service" id="templating" />
116116
</service>
117117

@@ -142,11 +142,7 @@ final class EmbeddedImageController
142142
$this->twigEngine = $twigEngine;
143143
}
144144

145-
/**
146-
* @param string $url
147-
* @return Response
148-
*/
149-
public function showAction($url)
145+
public function showAction(string $url): Response
150146
{
151147
if (!$url) {
152148
throw new \RuntimeException('No url provided');
@@ -207,8 +203,8 @@ Finally, enrich your shortcode tags with description and example attributes for
207203
<!-- import guide.xml -->
208204

209205
<services>
210-
<service id="webfactory.shortcode.image" parent="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi">
211-
<argument index="1">app.controller.embedded_image:showAction</argument>
206+
<service id="webfactory.shortcode.image" parent="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi" class="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler">
207+
<argument index="1">AppBundle\Controller\EmbeddedImageController:showAction</argument>
212208
<tag
213209
name="webfactory.shortcode"
214210
shortcode="image"
@@ -289,8 +285,8 @@ definition of your shortcode:
289285
<?xml version="1.0" ?>
290286
<container xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://symfony.com/schema/dic/services" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
291287
<services>
292-
<service id="webfactory.shortcode.your-shortcode-name" parent="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi">
293-
<argument index="1">app.controller.embedded_image:showAction</argument>
288+
<service id="webfactory.shortcode.your-shortcode-name" parent="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler.esi" class="Webfactory\ShortcodeBundle\Handler\EmbeddedShortcodeHandler">
289+
<argument index="1">AppBundle\Controller\EmbeddedImageController:showAction</argument>
294290
<tag name="webfactory.shortcode" ... />
295291
...
296292

0 commit comments

Comments
 (0)