FIO rozšíření h4kuna – ‚fioExtension.accounts‘ is not callable

kralik
Člen | 230
+
0
-

Ahoj,
snažím se nasadit komponentu fio-nette (https://github.com/…/tree/v1.3.3).
Verzi 1.3.3 pro Nette 2.4.

Config nastaven dle manuálu.

Bohužel dostáván chybovou hlášku:

<?php
Nette\DI\ServiceCreationException
Method h4kuna\Fio\Account\AccountCollectionFactory::create() used in service 'fioExtension.accounts' is not callable.
?>

config.neon

<?php
#
# SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
#
# If you don't protect this directory from direct web access, anybody will be able to see your passwords.
# http://nette.org/security-warning
#

php:
	date.timezone: Europe/Prague
	# zlib.output_compression: yes


application:
		errorPresenter: Error
		mapping:
			*: App\*Module\Presenters\*Presenter

session:
	expiration: 14 days


services:
	nette.userStorage:
		setup:
			- setNamespace('fotografie')

	- App\Model\UserManager
	- App\RouterFactory
	- PosliMailFactory(%mailFrom%) # templateFactory se předá automaticky
	router: @App\RouterFactory::createRouter
	- App\Model\Main
	- App\Model\Sprava
	- App\Model\Api
	- App\Model\Event

extensions:
    images: WebChemistry\Images\DI\ImagesExtension
    fioExtension: h4kuna\Fio\Nette\DI\FioExtension

images:
    local: ## Nastavení pro lokalni uloziste
        enable: yes
        defaultImage: null
        wwwDir: %wwwDir%
        assetsDir: foto
        modifiers: []
        aliases:
            avatar: "resize:300,270,exact"
            thumb: "resize:80,90,exact"
            shoda: "resize:120,120,exact"
            galerie: "resize:1000,800"
            panel: "resize:60,60,exact"
            blur: "blur"

    cloudinary:
        enable: yes
        config:
            apiKey: null
            apiSecret: null
            cloudName: null
            secure: no
            aliases: []


fioExtension:
    # mandatory
	account: 2700656420/2010
	token: Cs1DPoR6NnNOHWB0qk33jxYvmzch8qyetYyE439bGzSKw2KpkIpK3EazMJnoK2bn

    # optional
	transactionClass: \h4kuna\Fio\Response\Read\Transaction # if you need change name of property


?>

V Presenteru

<?php
...
	$fioFactory = $container->getService('fioExtension.fioFactory');

	$fioRead = $fioFactory->createFioRead();

...
?>

Nevím kde mám chybu.

Předem díky za radu

Editoval kralik (24. 9. 2019 10:19)

artemevsin
Člen | 61
+
+1
-

jen pro jistotu – instaloval jsi tu knihovnu přes composer?

h4kuna
Backer | 740
+
+3
-

Hele není úplně ideální postnout token :) Dej mi chvíli kouknu na to.

Editoval h4kuna (24. 9. 2019 11:38)

h4kuna
Backer | 740
+
0
-

Rozjel jsem to na první dobrou s tím tvým tokenem, teď vím že tam proběhla platba u benzínky ONO a taky vím kolik je zůstatek :) + použil jsem konfiguraci co jsi sem vložil, včetně definic extension.

OT: Říkám si jestli zkusit zda jdou poslat prachy přes ten token.

Instaloval jsem takto:

composer require h4kuna/fio-nette:1.3.3

Nemáš náhodou ještě nějaký starší nette?

EDIT: tenhle token zruš a nech si založit nový token, pokud má být jen pro čtení tak mu nedávej právo na vytvoření platby

Editoval h4kuna (23. 10. 2019 9:03)

h4kuna
Backer | 740
+
0
-

Jé asi už to vidím ono v manuálu jsou míchaný taby a mezery. V otagované verzi to neopravím. Tady jak jsi vložil konfiguraci tak je to dobře, tak si ji zkopíruj a zkus to ještě jednou.

kralik
Člen | 230
+
0
-

h4kuna napsal(a):

Rozjel jsem to na první dobrou s tím tvým tokenem, teď vím že tam proběhla platba u benzínky ONO a taky vím kolik je zůstatek :) + použil jsem konfiguraci co jsi sem vložil, včetně definic extension.

OT: Říkám si jestli zkusit zda jdou poslat prachy přes ten token.

Instaloval jsem takto:

composer require h4kuna/fio-nette:1.3.3

Pošli přes nějakou externí službu celou laděnku. Nejlépe html soubor.

Nemáš náhodou ještě nějaký starší nette?

EDIT: tenhle token zruš a nech si založit nový token, pokud má být jen pro čtení tak mu nedávej právo na vytvoření platby

Super, že ti to šlo :-) Prachy poslat nejdou, naštěstí.
Token je již změněný a byl a nový je jen pro čtení.

Myslíš, tedy že problém je v config.neon?

Díky

h4kuna
Backer | 740
+
0
-

Zkus to, pravděpodobně ti nette zakřičelo že jsou míchaný mezery a taby, jen je potřeba mí správně odsazení a jak jsem psal tak tady jak jsi to vložil je to dobře.

fioExtension:
    account: 2700656420/2010
    token: Cs1DPoR6NnNOHWB0qk33jxYvmzch8qyetYyE439bGzSKw2KpkIpK3EazMJnoK2bn

Ten optional parameter není potřeba, je volitelný

kralik
Člen | 230
+
0
-

h4kuna napsal(a):

Zkus to, pravděpodobně ti nette zakřičelo že jsou míchaný mezery a taby, jen je potřeba mí správně odsazení a jak jsem psal tak tady jak jsi to vložil je to dobře.

fioExtension:
    account: 2700656420/2010
    token: Cs1DPoR6NnNOHWB0qk33jxYvmzch8qyetYyE439bGzSKw2KpkIpK3EazMJnoK2bn

Ten optional parameter není potřeba, je volitelný

Tak jsem si hrál s odsazením řádků v config.neon a kopíroval jsem i tento zde vykopírovaný, ale chybu dostávám stále stejnou.

Je pravdou, že přes composter neinstaloval, neb v práci je spojení na composter blokované. Nenarazil jsem ale na problém pokud si komponentu stáhnu z GITu v ZIP a implementuji ji.

<?php
composer require h4kuna/fio-nette:1.3.3
?>

Díky

artemevsin
Člen | 61
+
+3
-

pokud jsi to neinstaloval přes composer, tak problém je v tom, že h4kuna/fio-nette má závislost na dalších dvou baličkách („h4kuna/fio“: „^1.3“, „nette/bootstrap“: „^2.0“) a bez nich fungovat nebude. Tím, že ti chybí h4kuna/fio, nemáš v projektu třídu h4kuna\Fio\Account\AccountCollectionFactory a tím pádem ti nette hlásí, že metoda create() není callable protože prostě chybí…

Takže pokud nemáš možnost si to stáhnout přes composer, musíš si stáhnout všechny tři knihovny, jinak ti to fungovat nebude

Michal Hlávka
Člen | 190
+
0
-
<?php
composer require h4kuna/fio-nette:1.3.3
?>

Takhle ti to fungovat nebude, tohle je radek do terminalu. Ty musis ty tri knihovny dat do slozky, ktery nacita robot loader.

kralik
Člen | 230
+
0
-

Tak jsem zkusil přes composter, tak jak píšeš.

Dostávám chybu:

<?php
Fatal Error
Call to undefined function GuzzleHttp\choose_handler()
?>

Přesto, že třídy načítám RobotLoaderem a správné složky.
Tak přesto dochází k této chybě.

Bootstrap.php

<?php
...
$configurator->createRobotLoader()
	->addDirectory(__DIR__)
	->addDirectory(__DIR__ . '/../vendor/others')
	->register();
...
?>

A soubor functions.php je zde vendor\others\guzzlehttp\guzzle\src

Tam kde volám Fio

<?php
...
// $container jsem musel takto přidat, jinak dostávám chybu: Undefined variable: container

	$container = require __DIR__ . '/../bootstrap.php';

	$fioFactory = $container->getService('fioExtension.fioFactory');

    $fioRead = $fioFactory->createFioRead();

...
?>
h4kuna
Backer | 740
+
0
-

Když použiješ composer není potřeba RobotLoader. A musíš udělat require vendor/autoload.php, tím se postupně načte všechno co jsi instaloval přes composer.

Děláš si to strašně složitý.

Composer je správce balíčků a podporuje jejich načtení do projektu. RobotLoader můžeš použít pro svůj adresář, ale už není potřeba ho pouštět do vendor adresáře.

Editoval h4kuna (25. 9. 2019 9:26)

kralik
Člen | 230
+
0
-

Uff už jsem překonal závislosti a zdá se toto být v pořádku.

Teď narážím na chybu.

<?php
GuzzleHttp\Exception\RequestException
cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

?>
Marek Bartoš
Nette Blogger | 1263
+
0
-

Zkus aktualizovat curl

kralik
Člen | 230
+
0
-

Tak perfektní už mi to jede komplet.

Všem mooc díky za pomoc.