FIO rozšíření h4kuna – ‚fioExtension.accounts‘ is not callable
- kralik
- Člen | 230
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)
- h4kuna
- Backer | 740
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)
- kralik
- Člen | 230
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
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
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
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
<?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
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
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)