Autor Zpráva
nethor
Profil
Zdravím, snažím se do projektu integrovat platební bránu GoPay tímto zůsobem: doc.gopay.com/cs/?lang=php#dokumentace (pomocí composeru)
S namespace a převzatými scripty nemám moc zkušeností.
Při testu $gopay = GoPay\payments( ...) ;
mi vyskakuje hláška: Fatal error: Call to undefined function GoPay\payments() in C:\xampp\htdocs\_www\ ...\presenter\test\GoPay.php on line 13

když soubor vložím manuálně require_once '../vendor/gopay/payments-sdk-php/factory.php';
píše mi Fatal error: Cannot redeclare GoPay\payments() (previously declared in C:\xampp\htdocs\_www\ ...\vendor\gopay\payments-sdk-php\factory.php:5) in C:\xampp\htdocs\_www\...l\vendor\gopay\payments-sdk-php\factory.php on line 20

Přičemž na řádku 20 je funkce jen ukončena.:
<?php

namespace GoPay;

function payments(array $userConfig, array $userServices = [])
{
    $config = $userConfig + [
        'scope' => Definition\TokenScope::ALL,
        'language' => Definition\Language::ENGLISH,
        'timeout' => 30
    ];
    $services = $userServices + [
        'cache' => new Token\InMemoryTokenCache,
        'logger' => new Http\Log\NullLogger
    ];
    $browser = new Http\JsonBrowser($services['logger'], $config['timeout']);
    $gopay = new GoPay($config, $browser);
    $auth = new Token\CachedOAuth(new OAuth2($gopay), $services['cache']);
    return new Payments($gopay, $auth);
}

Jak ji mám správně nahrát (zaregistrovat?) ?
Keeehi
Profil
Tipnu si, že sám si v nějakém namespacu, takže ti nejspíše chybí lomítko na začátku
$gopay = \GoPay\payments( ...);

To proč nefunguje to ruční vložení je dáno tím, že už to composer jednou automaticky vložil. Takže když to ty ještě vložíš ručně, objeví se definice funkce v kódu podruhé a to je problém.

Stačí to tedy ručně nevkládat, protože to tam už je a vyřešit problém s namespacy.
nethor
Profil
Super, v namespace ne, ale volal jsem fci ze scriptu o adresář výš.
Už to maká.
Díky moc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0