Codeception / Codeception/module-laminas
Documentation how to mock controller plugin factory
- Dominant language
- PHP
- Stars
- 1
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Description
Hello, i am trying to mock factory for controller plugin `FooPlugin`.
```
$this->getServiceLocator()->setAllowOverride( true );
$controllerPluginManager = $this->getServiceLocator()->get( 'ControllerPluginManager' );
$controllerPluginManager->setAllowOverride( true );
$controllerPluginManager->setFactory( FooPlugin::class, FooPluginTestFactory::class );
$controllerPluginManager->setAllowOverride( false );
$this->getModule( Laminas::class )->client->addServiceToContainer( 'ControllerPluginManager', $controllerPluginManager);
$this->getServiceLocator()->setAllowOverride( false );
```
i debugged internal code and see that Laminas overrides my factory `FooPluginTestFactory` to basic `FooPluginFactory`, which is provided in basic config. it occurred indside this https://github.com/Codeception/module-laminas/blob/00d6cf8ae6a10ef52b3569febf1d6277d7b3b8e1/src/Codeception/Lib/Connector/Laminas.php#L196-L205
after next line:
```
// Load modules
$serviceManager->get('ModuleManager')->loadModules();
```
do i make something wrong?
what is the suggested way to make it correctly?
thanks!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with src/Codeception/Lib/Connector/Laminas.php around lines 196-205 and the service-manager setup shown in the issue. Trace what happens after ModuleManager->loadModules(), then document the supported way to mock a controller plugin factory and confirm that the guidance addresses the reported factory override.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- documentation, testing
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100