Cannot was not found by locator
gglazewski opened this issue · 3 comments
Using Yii2,
As soon as I extend my controllers with a custom class or implement custom interface I get following errors:
Class app\controllers\BaseController was not found by locator
Class app\models\MyInterface was not found by locator
Unfortunately, to keep my tests working I had to remove my interface. But I cannot remove my BaseController.
My Kernel is defined like so in __bootstrap.php
require __DIR__ .'/../vendor/autoload.php';
$kernel = Kernel::getInstance();
$kernel->init([
'includePaths' => [
__DIR__ . '/../service',
__DIR__ . '/../controllers',
__DIR__ . '/../model',
__DIR__ . '/../vendor/yiisoft',
],
'excludePaths' => [
__DIR__ . '/../tests'
],
'cacheDir' => '/tmp/aopcache',
]);
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii2/base/ErrorException.php');
$kernel->loadFile(__DIR__ . '/../vendor/yiisoft/yii2/base/UnknownClassException.php');
Is this a known problem or am I doing something obviously wrong?
I created SO question as well:
https://stackoverflow.com/questions/59751752/error-class-was-not-found-by-locator-when-running-tests
Yii2 does not use a Kernel, so this error is likely not related to Yii
Replace Yii2 autoloader by composer autoloader.
@SamMousa This Kernel belongs to AspectMock: https://github.com/Codeception/AspectMock/blob/master/src/AspectMock/Kernel.php