Zakázání autoloadu mpdf v composeru
- n.u.r.v.
- Člen | 485
Ahoj, na localhostu jsem aktualizoval přes composer nette na 2.2.6 a zároveň jsem přes composer přidal knihovnu mPDF. Na localu nebyl problém, ale když jsem teď toto nasadil na web, tak vznikl problém při generování temp: Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 64 bytes) in /x/y/z/w/projekt/vendor/nette/robot-loader/src/RobotLoader/RobotLoader.php:284
Určitě to bude tou knihovnou mpdf. Našel jsem si, že je možné robot loaderu zakázat procházení určitých složek pomocí netterobots.txt – Disallow: mpdf.
Ale jak se to řeší, když load má na starosti composer? Díky.
- David Matějka
- Moderator | 6445
Vypada to, ze mas vendor slozku pod spravou robot loaderu. Robot loader by mel skenovat pouze slozku app (pripadne jinou kde mas vlastni tridy, ale nikdy vendor), jako je to v bootstrapu
- n.u.r.v.
- Člen | 485
No, v bootstrap.php mám:
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Configurator;
...
...
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../vendor/others')
->register();
A ve staré verzi která funguje mám ve složce vendor/others:
mPDF (ručně přidanou bez composeru)
knihovnu pChart na grafy – také ručně nakopírovanou – nemá
composer.
V nové verzi jsem jen dal nové nette a smazal ve vendor/others složku mPDF, kterou jsem nainstaloval nově přes composer – přidala se do vendor/. Ale to už nefunguje.
Když jsem se podíval do vendor/composer/autoload_classmap.php, tak tam je
hodně položek mPDF včetně
‚mPDF‘ ⇒ $vendorDir . ‚/mpdf/mpdf/mpdf.php‘,
Editoval n.u.r.v. (3. 1. 2015 17:30)