Nette 2.2 – ‚Dibi\Bridges\Nette\DibiNette22Extension‘ not found

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
microcz
Člen | 62
+
0
-

Ahoj, četl jsem už podobné vlákno https://forum.nette.org/…on-not-found ale nebyl jsem z toho moc moudrý, tak se omlouvám, jestli se opakuji.

Dříve jsem používal dibi s nette 2.1 bez problémů. Teď jsem stáhl nette 2.2 a nové dibi. Dibi jsem nakopíroval do vendor/others. Můj config vypadá následovně (udělal jsem podle examplu u dibi):

parameters:

php:
  date.timezone: Europe/Prague
nette:
  application:
    errorPresenter: Error
    mapping:
      *: App\*Module\Presenters\*Presenter
  session:
    expiration: 14 days
extensions:
  dibi: Dibi\Bridges\Nette\DibiExtension22
dibi:
  host: localhost
  username: tester
  database: testing
  lazy: TRUE
services:
  - App\Model\UserManager
  - App\RouterFactory
  router: @App\RouterFactory::createRouter

Dostanu ale hlášku:

Fatal Error

Class 'Dibi\Bridges\Nette\DibiExtension22' not found search►

Source file

File: .../vendor/nette/di/src/DI/Extensions/ExtensionsExtension.php:24

14:     * Enables registration of other extensions in $config file
15:     *
16:     * @author  Vojtech Dobes
17:     */
18:    class ExtensionsExtension extends Nette\DI\CompilerExtension
19:    {
20:
21:        public function loadConfiguration()
22:        {
23:            foreach ($this->getConfig() as $name => $class) {
24:                $this->compiler->addExtension($name, new $class);
25:            }
26:        }
27:
28:    }

Poradíte co dělám špatně?

amik
Člen | 118
+
0
-

Příčin může být několik:

  • přesvědč se, že skutečně máš v té složce vendor/others někde tu třídu Dibi\Bridges\Nette\DibiExtension22
  • přesvědč se, že máš RobotLoader správně nastavený, aby indexoval složku vendor/others
  • zkus smazat cache

Pokud všechny tyto 3 body sedí, bude to nějaká zákeřná chyba mezi nebem a zemí.

Šaman
Člen | 2666
+
0
-

EDIT! Tohle nemá s vendor/others nic společného.

Zkontroluj si, jestli máš v adresáři /vendor/dg/dibi danou třídu a kdyžtak použij composer na její načtení.

=================

Původní přispěvek:

V novém sandboxu už se vendor/others nepoužívá. Buď si ji v bootstrapu přidej do cest, které prohledává RobotLoader, nebo si vytvoř /libs jako dřív (aby byl /vendor jen pro composer) a do robotLoadera to budeš muset předat stejně. :)

<?php
# bootstrap.php
$configurator->createRobotLoader()
		->addDirectory(__DIR__)
		->addDirectory(__DIR__ . '/../vendor/others')
		->register();
?>

Editoval Šaman (24. 11. 2014 12:30)