IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
nalimleinad
Člen
Avatar
nalimleinad:26.12.2016 14:47

Zdravím,

jako nePHPčkař jsem začal používat kvůli jednoduchosti Laravel frameworku skladovací systém z
https://github.com/…le_inventory

Do systému jsem si dopsal mnoho věcí pro svou potřebu, avšak nyní jsem narazil na problém.
Potřebuji v tomto systému generovat PDF k tisku, k čemu jsem našel super (easy to use) knihovnu https://tcpdf.org/ .

Ovšem zde narážím na problém implementace do Laravelu. Našel jsem TCPDF pro Laravel 4 a pro Laravel 5. Bohužel tento skladovací systém jede na Laravelu 3, který je hrozně odlišný od následujících verzí a tak mám několik možností.

  1. Přepisování stávajícího skladového systému na verzi Laravelu 4/5 by vyšlo na mnoho hodin s tím, že bych se musel naučit kompletní fungování Laravel frameworku a práci s ním.
  2. Úpravu TCPDF pro Laravel 4/5 na Laravel 3. Ovšem zde opět narážím na problém neznalosti Laravelu jako takového.
  3. Implementaci surového TCPDF pro klasické PHP, což mi přijde jako nejlehčí možnost pro někoho, kdo se primárně nevěnuje PHPčku. Ovšem narážím zde na problém, že Laravel využívá jiný způsob includování souborů.

Již v základním example souboru u TCPDF mám

require_once('tcpdf_include.php');

který poté odkazuje na

require_once('config/tcpdf_config_alt.php');

// Include the main TCPDF library (search the library on the following directories).
$tcpdf_include_dirs = array(
        realpath('../tcpdf.php'),
        '/usr/share/php/tcpdf/tcpdf.php',
        '/usr/share/tcpdf/tcpdf.php',
        '/usr/share/php-tcpdf/tcpdf.php',
        '/var/www/tcpdf/tcpdf.php',
        '/var/www/html/tcpdf/tcpdf.php',
        '/usr/local/apache2/htdocs/tcpdf/tcpdf.php'
);
foreach ($tcpdf_include_dirs as $tcpdf_include_path) {
        if (@file_exists($tcpdf_include_path)) {
                require_once($tcpdf_include_path);
                break;
        }
}

(Samozřejmě v dalších a dalších jednotlivých souborech jsou jednotlivé requiry)

Zkoušel jsem si cesty upravit dle reálného umístění, ovšem vzhledem k tomu, že to jede přes Laravel, tak se to vždy hledá až od nějaké cesty.

V záchvatu zoufalosti jsem si tedy chtěl alespoň zkusit, zda-li mi samotné TCPDF bez těchto requirů bude fungovat a tak v rámci testování jsem spojil vše do jednoho souboru, což se tvářilo, že by fungovat mohlo. Bohužel TCPDF potřebuje ještě další resources jako fonty, image, atp.

Našel by se tu někdo, kdo by uměl s Laravelem 3, popř. by byl ochotný pomoci, jak tuto knihovnu implementovat, abych měl přístupnou funkci

new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

přímo z kódu mé Laravel funkce, popř. měl nějaký jiný nápad k věci ?

 
Odpovědět
26.12.2016 14:47
Avatar
Filip Šedivý:22.1.2017 15:52

Pokud Laravel používá dependecy injection container, tak bych to flákl do kontejneru a pak máš TCPDF přístupný odkudkoliv.

Nahoru Odpovědět
22.1.2017 15:52
Láska je, když si zapamatujete její IP, abyste obešli zpoždění DNS.
Avatar
nalimleinad
Člen
Avatar
Odpovídá na Filip Šedivý
nalimleinad:28.1.2017 23:06

Díky za odpověď, nicméně netuším, o čem to mluvíš. :D

Můžeš mi prosím ukázat nějaký příklad, jak v Laravelu 3 na to ?

 
Nahoru Odpovědět
28.1.2017 23:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.