Autor | Zpráva | ||
---|---|---|---|
siok Profil |
#1 · Zasláno: 27. 6. 2020, 14:23:56
Ahoj všem,
používám mPDF ver.6 ale potřebuji aby mi to exportovalo i na malou tiskárnu (EET). Nastavení formátu prý jde až od verze 7, tak jsem si stáhl ver. 8. Ale ta se mě nějak nedaří zprovoznit. <?php include'./mpdf/mpdf/Mpdf.php'; // Require composer autoload require_once __DIR__ . '/vendor/autoload.php'; // Create an instance of the class: $mpdf = new \Mpdf\Mpdf(); // Write some HTML code: $mpdf->WriteHTML('Hello World'); // Output a PDF file directly to the browser $mpdf->Output(); ?> Vypíše mi to chybu: Fatal error: Trait 'Mpdf\Strict' not found in /disk_1/www/cz/eshop-sport/mpdf/mpdf/mpdf/Mpdf.php on line 39 Poradí mi někdo, veřím že to bude nějaká hloupost ale nějak na ni nemohu přijít:-( |
||
Davex Profil |
#2 · Zasláno: 27. 6. 2020, 14:51:34
siok:
Pravděpodobně jsi přeskočil první a nejdůležitější krok instalačního návodu, kterým se všechny potřebné soubory stáhnou. composer require mpdf/mpdf |
||
siok Profil |
#3 · Zasláno: 27. 6. 2020, 15:07:08
Davex:
Jako myslíš takto <?php // Require composer autoload $ composer require mpdf/mpdf require_once __DIR__ . '/vendor/autoload.php'; // Create an instance of the class: $mpdf = new \Mpdf\Mpdf(); |
||
Keeehi Profil |
#4 · Zasláno: 27. 6. 2020, 15:28:30
siok:
Ne. Composer je script, který se stará o instalaci závislostí. Můžeš si to představit jako normální program co máš v počítači. Jen to nemá ikonku kterou bys to mohl spustit a ani nějaké okno, ve kterém bys mohl klikat. Celé se to ovládá přes přitažlivou řádku. To co napsal Davex se zadává právě do příkazové řádky. Samozřejmě aby to fungivalo, musíš si composer nejdříve nainstalovat. |
||
NoxOne Profil |
#5 · Zasláno: 29. 6. 2020, 09:11:51
Pokud chceš MPDF používat pouze pro PHP tak ti stačí si nakopírovat adresář SRC a a autoload zaremovat.
Také to nemám v systému přes composer nainstalovaný a volám to z php nebo sh rovnou. Jenom musíš mít jasno v cestách k mpdf. Takto používám již od verze 4 a víš. |
||
Keeehi Profil |
#6 · Zasláno: 29. 6. 2020, 09:44:48
NoxOne:
A includy a instalaci závislostí si řešíš sám ručně? Protože tu práci kterou dělá composer musí někdo udělat. Buď ty ručně, nebo nějaký jiný nástroj. |
||
NoxOne Profil |
#7 · Zasláno: 29. 6. 2020, 20:10:24
Includy a závislosti fungují. Jediný co to chtělo byl ghostscript a libreoffice headless.
Jinak je to pořešený stačí to potom volat jako funkci/class dle potřeb. |
||
Keeehi Profil |
#8 · Zasláno: 29. 6. 2020, 20:57:53
NoxOne:
Nějak s tím nesouhlasím. Postupoval jsem podle tvého návodu. Z githubu jsem stáhnul složku src. Vytvořil jsem php soubor s obsahem <?php include'./src/Mpdf.php'; // Require composer autoload // require_once __DIR__ . '/vendor/autoload.php'; // Create an instance of the class: $mpdf = new \Mpdf\Mpdf(); // Write some HTML code: $mpdf->WriteHTML('Hello World'); // Output a PDF file directly to the browser $mpdf->Output(); ?> Fatal error: Trait 'Mpdf\Strict' not found Takže ti v té radě něco chybí. Samozřejmě, můžu tam ručně přidat include'./src/Strict.php'; Fatal error: Trait 'Mpdf\FpdiTrait' not found Ano, dá se to samozřejmě zprovoznit i ručně bez composeru ovšem v tu chvíli děláš ručně to co composer zvládne automaticky. Přiděláváš si s tím akorát zbytečný kotel práce. |
||
NoxOne Profil |
#9 · Zasláno: 30. 6. 2020, 21:06:24
Já mám obsah adresáře SRC nahraný v adresáři XML a dělalo mi to stejné blbosti jako tobě.
Stačilo před include přidat define('_MPDF_URI','xml/'); tím jsem mu řekl v kterém adresáři hledá komponenty. A vše funguje.
|
||
Keeehi Profil |
#10 · Zasláno: 30. 6. 2020, 21:44:20
NoxOne:
Nestačí. <?php define('_MPDF_URI','src/'); include'./src/Mpdf.php'; // Require composer autoload // require_once __DIR__ . '/vendor/autoload.php'; // Create an instance of the class: $mpdf = new \Mpdf\Mpdf(); // Write some HTML code: $mpdf->WriteHTML('Hello World'); // Output a PDF file directly to the browser $mpdf->Output(); ?> Fatal error: Trait 'Mpdf\Strict' not found Za druhé, konstanta _MPDF_URI od verze 7 nefunguje, jelikož byla odebrána. |
||
NoxOne Profil |
Tak to se budu muset podívat více. Protože mám na 3 serverech mpdf 7.1 a funguje to. Měl jsem tam verzi 4 a vždy ji povyšuji pouze přehráním adresáře SRC a úpravou configu.
Ještě jsem psal kolegovi co dělal za změnu a ten mi odepsal že jenom do systému nastavil natvrdo použití MPDF_URI tak aby systém měl tu cestu v paměti. Prý něco jako PATH ve windows. Systém je CentOS 7 a já jsem přes windows tak nevím co tam dělal. :( |
||
Keeehi Profil |
#12 · Zasláno: 1. 7. 2020, 10:11:01
NoxOne:
Zřejmě v těch projektech máte něco, co includy řeší automaticky a dělá tedy stejnou práci jako composer. A ani se tomu nedivím. Dělat to ručně je docela opruz. V Nette frameworku existuje třeba RobotLoader který je schopný si třídy sám v určité složce dohledat. Takže by se dal na to použít a composer by nebyl potřeba. Ale jak jsem psal něco tu práci vždy musí udělat. siok předpokládám u sebe nic takového mít nebude. Proto je použití composeru pro něj nejjednodušší a nejsprávnější volba. Jednak je to doporučený postup dle manuálu toho projektu ale zároveň je composer standardem pro instalaci projektů v PHP. Není moc věcí které by pro instalaci nevyužívaly composer. Do budoucna se mu to jen vyplatí. |
||
Časová prodleva: 4 roky
|
0