Autor | Zpráva | ||
---|---|---|---|
Pavel015 Profil |
#1 · Zasláno: 2. 6. 2020, 19:44:27
Dobrý večer,
chtěl bych se prosím zeptat na možná triviální věc. Potřeboval bych implementovat QR platbu na web v PHP. Implementace je v repozitáři github.com/dfridrich/QRPlatba, nicméně, když si v kořenovém adresáři vytvořím index.php a vložím do něj následující kód z příkladu, nefunguje mi to. Mohli byste mi prosím poradit? Moc děkuji. <?php require __DIR__ . '/vendor/autoload.php'; use Defr\QRPlatba\QRPlatba; $qrPlatba = new QRPlatba(); $qrPlatba->setAccount('12-3456789012/0100') ->setVariableSymbol('2016001234') ->setMessage('Toto je první QR platba.') ->setSpecificSymbol('0308') ->setSpecificSymbol('1234') ->setCurrency('CZK') // Výchozí je CZK, lze zadat jakýkoli ISO kód měny ->setDueDate(new \DateTime()); echo $qrPlatba->getQRCodeImage(); // Zobrazí <img> tag s kódem, viz níže |
||
Keeehi Profil |
#2 · Zasláno: 2. 6. 2020, 20:26:47
Pavel015:
Poradit ti samozřejmě můžeme, ovšem musíš nám říct, jak se ta nefunkčnost projevuje. |
||
Pavel015 Profil |
Keeehi:
Při spuštění src/QRPlatba.php se nic nestane. Při vytvoření zmíněného souboru v kořenovém adresáři se vypíše chyba. Proto zakomentuju řádek s autoloadem, jenže to vypisuje chybu č.2. Chyba č. 1. Warning: require(/Applications/XAMPP/xamppfiles/htdocs/QRPlatba/vendor/autoload.php): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/QRPlatba/index.php on line 3 Fatal error: require(): Failed opening required '/Applications/XAMPP/xamppfiles/htdocs/QRPlatba/vendor/autoload.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php') in /Applications/XAMPP/xamppfiles/htdocs/QRPlatba/index.php on line 3 Chyba č.2. Fatal error: Uncaught Error: Class 'Defr\QRPlatba\QRPlatba' not found in /Applications/XAMPP/xamppfiles/htdocs/QRPlatba/index.php:7 Stack trace: #0 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/QRPlatba/index.php on line 7 |
||
Ikki Profil |
Pravděpodobně tě bude zajímat jen tato část díky které pravděpodobně vzniká chyba č.2.
CESTA: /Applications/XAMPP/xamppfiles/htdocs/QRPlatba/vendor/autoload.php > CHYBA: failed to open stream: No such file or directory Web ti říká, že nedokáže otevřít/najít soubor autoload.php ve složce /Applications/XAMPP/xamppfiles/htdocs/QRPlatba/vendor - nahraj tam soubor a pravděpodobně to bude oka
|
||
Pavel015 Profil |
#5 · Zasláno: 3. 6. 2020, 10:02:34
Ikki:
Jenže soubor vendor ani autoload.php neexistuje. |
||
Ikki Profil |
#6 · Zasláno: 3. 6. 2020, 10:28:59
A proč by neexistoval? Pokud vím, tak autoload pokud není nějak speciální, tak je běžně ke stažení. Ty ho jen musíš umístit do složky ke které vede cesta.
|
||
blaaablaaa Profil |
Pavel015:
Ten autoload vzniká při instalaci skrze composer. Při obyčejném zkopírování zdroje je třeba místo require autoloaderu přidat require obou souborů z adresáře src. |
||
Pavel015 Profil |
#8 · Zasláno: 3. 6. 2020, 10:58:30
Ikki, blaaablaaa:
Moc díky za nasměrování! Už jsem to rozchodil :)! Pro budoucí generace: instalace zde - www.youtube.com/watch?v=RkIJYud9X8w. |
||
Keeehi Profil |
#9 · Zasláno: 3. 6. 2020, 12:58:21
Pro budoucí generace: Pro úspešnou instalaci se držte pokynů v dokumentaci a nepřeskakujte žádné kroky pokud si nejste jistí, co opravdu děláte.
V případě Pavel015 se stalo, že přeskočil composer require dfridrich/qr-platba a tudíž se nevygeneroval ani autoload script, se kterým samozřejmě v dalším kódu v ukázce počítá.
|
||
Pavel015 Profil |
#10 · Zasláno: 3. 6. 2020, 16:31:29
Keeehi:
Je totiž nevyhnutelná instalace Composteru. |
||
Keeehi Profil |
#11 · Zasláno: 3. 6. 2020, 17:28:56
Pavel015:
„Je totiž nevyhnutelná instalace Composteru.“ Víceméně. Ono tedy dalo by se composeru vynout a includy si dělat ručně, jak psal blaaablaaa v [#7]. Ovšem knihovna dfridrich/QRPlatba není funkční sama o sobě. Ona sice generuje data pro platbu, ale o vygenerování samotného obrázku s QR kódem se nestará. To nechává na knihovně endroid/qr-code. Musel bys tedy stáhnout i tu a ručně includnout php soubory z ní (a že jich tam je). Tím to ovšem nekončí. Samotné knihovna endroid/qr-code také nedělá úplně všechno a spoléhá se na funkcionalitu dalších pěti knihoven. Hlouběji už se mi to zkoumat nechtělo ale je snad z toho jasné, že by to bylo spoustu práce. Možná cesta i bez composeru tu je, ovšem použití composeru je mnohem lehčí. Protože jinak vlastně přesně to co dělá composer musí udělat člověk sám ručně. |
||
Pavel015 Profil |
#12 · Zasláno: 4. 6. 2020, 10:39:21
Keeehi:
Moc díky za delší osvětlení problému :). Pěkný den. |
||
Časová prodleva: 4 roky
|
0