Skip to content

TypeError with Nette 3 #255

@NoNoNo

Description

@NoNoNo

I get a TypeError with Nette 3:

Argument 1 passed to Cocur\Slugify\Bridge\Nette\SlugifyExtension::Cocur\Slugify\Bridge\Nette\{closure}() must be an instance of Nette\DI\Definitions\ServiceDefinition, instance of Nette\DI\Definitions\FactoryDefinition given, called in vendor/cocur/slugify/src/Bridge/Nette/SlugifyExtension.php on line 42

I managed to fix this with:

diff --git a/src/Bridge/Nette/SlugifyExtension.php b/src/Bridge/Nette/SlugifyExtension.php
index 12fdbe5..34e4d35 100644
--- a/src/Bridge/Nette/SlugifyExtension.php
+++ b/src/Bridge/Nette/SlugifyExtension.php
@@ -3,7 +3,7 @@
 namespace Cocur\Slugify\Bridge\Nette;

 use Nette\DI\CompilerExtension;
-use Nette\DI\ServiceDefinition;
+use Nette\DI\Definitions\FactoryDefinition;

 /**
  * SlugifyExtension
@@ -33,8 +33,8 @@ class SlugifyExtension extends CompilerExtension
         $builder = $this->getContainerBuilder();

         $self = $this;
-        $registerToLatte = function (ServiceDefinition $def) use ($self) {
-            $def->addSetup('addFilter', ['slugify', [$self->prefix('@helper'), 'slugify']]);
+        $registerToLatte = function (FactoryDefinition $def) use ($self) {
+            $def->getResultDefinition()->addSetup('addFilter', ['slugify', [$self->prefix('@helper'), 'slugify']]);
         };

         $latteFactory = $builder->getByType('Nette\Bridges\ApplicationLatte\ILatteFactory') ?: 'nette.latteFactory';

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions