Found sections ‚dibi‘ in configuration, but corresponding extensions are missing
- batko
- Člen | 219
Ahoj,
snažím se přijít na to jak do nette zakomponovat DIBI. Rád bych rozjel Leanmapper.
Oboje mám nainstalováno přes composer a v configu se snažím nakonfigurovat připojení k DB skz DIBI, ale laděnka hází:
Found sections ‚dibi‘ in configuration, but corresponding extensions are missing.
config:
<?php
#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
#
# If you don't protect this directory from direct web access, anybody will be able to see your passwords.
# https://nette.org/en/security-warning
#
parameters:
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
mapping:
*: App\*Module\*Presenter
session:
expiration: 14 days
services:
- Model\UserManager
- Model\Services\PhraseService
- Model\Repository\PhraseRepository
- App\RouterFactory
router: @App\RouterFactory::createRouter
dibi:
driver: mysql
hostname: localhost
username: root
password:
database: phrase
profiler: true
lazy: true
?>
- Mesiah
- Člen | 240
Ono jsou 2 způsoby, jak to rozchodit (testována na 2.0.13)
parameters:
database:
driver: mysqli
host: localhost
username: root
password: heslo
database: impress
lazy: true
profiler: true
services:
defaultMapper: LeanMapper\DefaultMapper
entityFactory: LeanMapper\DefaultEntityFactory
#connection: LeanMapper\Connection(%database%, ...)
filterClass: Model\Filter\CommonFilter(defaultMapper)
connection:
class: LeanMapper\Connection(%database%, ...)
setup:
- registerFilter('onlyValid', [@filterClass, 'onlyValid'])
nebo
dibi:
driver: mysql
host: localhost
username: root
password: heslo
database: impress
lazy: TRUE
profiler: true
services:
defaultMapper: LeanMapper\DefaultMapper
entityFactory: LeanMapper\DefaultEntityFactory
emailRepository: Model\Repository\EmailRepository
a do bootstrapu přidej
$configurator->onCompile[] = function ($configurator, $compiler) {
//$compiler->addExtension('dibi', new DibiNette21Extension());
$compiler->addExtension('dibi', new DibiNette20Extension());
};
s tím, že DibiNette20Extension uprav takhle
// $connection = $container->addDefinition($this->prefix('connection'))
// ->setClass('DibiConnection', array($config));
$connection = $container->addDefinition($this->prefix('connection'))
->setClass('LeanMapper\Connection', array($config));
- leninzprahy
- Člen | 150
To právě záleží, jako verzi nette používáš, ale zřejmě 2.1, takže
správně registruješ v config.neon
extensions:
dibi: DibiNette21Extension
v bootstrap.php
pak už to registrovat nemusíš, takže
$configurator->onCompile[] = function ($configurator, $compiler) {
//$compiler->addExtension('dibi', new DibiNette21Extension());
$compiler->addExtension('dibi', new DibiNette20Extension());
};
můžeš vyhodit…
Ve verzi 2.0.* je to opačně, musí to být v bootstrap.php
a
ne v config.neon
. Podle verze vybereš i správné rozšíření
DibiNette21Extension vs DibiNette20Extension,
ale to je předpokládám srozumitelné.
viz taky https://doc.nette.org/…n/extensions