Add custom service
In order to add your own custom service for your plugin, you first need a plugin as base. Therefore, you can refer to the Plugin Base Guide.
Adding a custom service requires to load a
services.xml
file with your plugin. This is done by placing a file with name services.xml
into a directory called src/Resources/config/
.Here's our example
services.xml
:<plugin root>/src/Resources/config/services.xml
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="Swag\BasicExample\Service\ExampleService" />
</services>
</container>
Therefore, this is how your service could then look like:
<plugin root>/src/Service/ExampleService.php
// SwagBasicExample/src/Service/ExampleService.php
<?php declare(strict_types=1);
namespace Swag\BasicExample\Service;
class ExampleService
{
public function doSomething(): void
{
...
}
}
By default, all services in Shopware 6 are marked as private. Read more about private and public services.
You have now created your own custom service. In the same manner, you can create other important plugin classes, such as commands, scheduled tasks or a subscriber to listen to events.
Last modified 2mo ago