Nelze mi načíst knihovna třetí strany v produkčním režimu
- prcharom
- Člen | 28
Zdravím potřebuji vygenerovat PDF z latte. Vybral jsem si mPDF knihovnu. Nahrál jsem ji do vendor/others. V presenteru:
$pdf = new \mPDF('', 'A4', 10, 'Verdana');
Na localhostu vše běží v pohodě a PDF se vytvoří (i po smazání cache). Nahraji-li to na produkční server, pak dostanu server error (500) a z logu zjistím, že Class ‚mPDF‘ not found.
Zkusil jsem tedy cely projekt stáhnout na local a opět vše pracovalo správně.. Nevíte někdo, čím to může být? Verze Nette 2.2.2.
Mám to dle tohoto návodu
- Šaman
- Člen | 2664
Střílím od boku. mPDF je známé tím, že při autoloadingu někdy
dochází k dosažení limitu paměti (obsahuje opravdu velké množství
tříd). To by vedlo k jiné hlášce, ale možná se něco podobného stalo.
V takovém případě si ho přesuň z vendoru (aby ho nenačítal composer)
třeba do libs
a ručně si includuj jen třídu mPDF.
- Václav Kraus
- Člen | 77
Pokud je to instalované pomocí composeru, tak by to mělo být ve složce vendor a mělo by to fungovat.
Jestli je to instalované nějak jinak, tak zajistěte, aby do složky s mPDF viděl robotLoader. Defaultně do složky vendor nevidí, takže jestli jste ji tam nakopíroval manuálně, tak o ni neví. Ikdyž mPDF je dost velká knihovna, tak by s tím možná mohl mít robotLoader problém.
- prcharom
- Člen | 28
Kopíroval jsem ho tam ručně a postupným testováním opravdu zjišťuji, že to asi padá na RobotLoaderu. Mohl byste mi prosím poradit jak to incloudnout ručně a použít? To jsem taky totiž zkoušel a nějak mi to nechodilo..
Takže následný postup tedy má být, vytvořit ve vendoru složku libs → tam nakopírovat mPDF a ručně to nalinkovat do presenteru? :-) Moc děkuji za rady.
- Václav Kraus
- Člen | 77
Něco jako
require __DIR__ . 'cesta/k/mpdf/mPdf.php';
class HomepagePresenter extends BasePresenter
{
public function neco(){
$pdf = new \mPDF('', 'A4', 10, 'Verdana');
//...
}
}
By snad mělo fungovat. Proč ale nevyužít composer?
composer require mpdf/mpdf
- Tomáš Jacík
- Člen | 147
@prcharom Můžeš použít můj fork, kde jsem upravil verzi 6 aby jela i s PHP7: https://github.com/sunfoxcz/mpdf
Je to na packagist, takže jde vpohodě nainstalovat přes composer.