DI nemůže najít Extension, 2 verze projektu, jedna funkční
- MartinVolenec
- Člen | 36
Dobrý den,
tvořím stránky, kde využívám vícejazyčnost Kdyby/Translation.
První verzi těchto stránek jsem vytvořil doma. Tu jsem nahrál na server
a vše funguje. Včetně implementovaného a použitého Kdyby/Translation. Vše
bez chyby.
Doma vyvíjím na PHP 7.1. Windows 7. Na serveru běží taktéž
PHP 7.1.
Poté jsem si projekt stáhl v kanclu a udělal do něj spousty změn.
Avšak pouze front-endové změny. Takže s nastavením / configy jsem vůbec
nepracoval.
Poté jsem projekt nahrál znovu celý na web. A nyní mi Laděnka hází
následující chybu:
Class ‚Kdyby\Translation\DI\TranslationExtension‘ not
found
V kanclu už mám Xampp s PHP 7.2. Windows 10. No localhostu vše běží
v pohodě. Ale pouze na produkčním serveru hází výše zmíněnou
chybu.
Vůbec tomu nerozumím. Nikdy jsem s tímhle nesetkal.
Jediné co mě napadá, tak by mohl být problém s kódováním souboru.
extensions:
translation: Kdyby\Translation\DI\TranslationExtension
translation:
default: cs
fallback: [cs_CZ, cs]
debugger: on
Nastavení v BasePresenteru stejné jako v dokumentaci.
Nenapadá někoho v čem by mohl být problém ?
Pokud nahraji první, stránky fungují (z domova). Ale pokud první verzi
nahraji z kanclu, tak již nefungují.
Pokud by bylo potřeba více ukázek kódu(což asi bude), tak přidám.
Děkuji.
Editoval MartinVolenec (22. 3. 2018 14:34)
- MartinVolenec
- Člen | 36
To nepomohlo. A navíc jsem to už jednou zkusil.
Zapnul jsem Laděnku. Můžete si projít chybu.
- Pavel Kravčík
- Člen | 1196
A existuje tam ten soubor? U nás server při uploadu občas tiše přejde ClassLoader z nějakého důvodu.
- MartinVolenec
- Člen | 36
Soubor na serveru skutečně je. A to pod touto cestou:
vendor/kdyby/translation/src/di/TranslationExtension.php
Soubor má namespace Kdyby\Translation\DI;
Takže by tohle mělo ladit.
V cache mám vytvořený:
Nette.Configurator
Nette.RobotLoader
Ale nevím, jestli jsou vytvořeny kompletně.
Nevím, jestli ten ClassLoader přejde i můj server. Každopádně mám VPS
a běží tam více stránek na Nette.
Jak to poznám ? :-)
- MartinVolenec
- Člen | 36
Všechny různý kombinace mazání cache jsem již zkoušel.
Napadlo, jestli spíš není problém v kódování nebo v něčem
podobném.
Jak jsem říkal, pokud první verzi nahraji z domova, vše funguje. Ale pokud
tu samou nahraji z kanceláře, už nefunguje.
- MartinVolenec
- Člen | 36
Napadlo mě, jestli nemůže být nějaký problém v Composeru /
composer.json. Sice je používám, ale nejsem v nich přeborník.
Teď jsem zkusil v kanceláři nahrát jiné stránky, které již dávno
běží, jsou na Nette 2.4 a používají Kdyby/Translation.
Taktéž nefungují.
Na https://www.zau.technology/ je k dispozici momentální
error. Nezná tu cestu, protože hledá Bridges, ale na serveru
je bridges.
Úplně stejná chyba naskočila i u těch prvních stránek. Hledaly se
cesty, který neexistovali. A to jsem vyřešil právě přes composer update a
dumpautoload. Poté začala naskakovat Class
‚Kdyby\Translation\DI\TranslationExtension‘ not found.
- MartinVolenec
- Člen | 36
Přikládám composer.json:
{
"name": "nette/web-project",
"description": "Nette: Standard Web Project",
"keywords": ["nette"],
"type": "project",
"license": ["MIT", "BSD-3-Clause", "GPL-2.0", "GPL-3.0"],
"require": {
"php": ">= 5.6",
"nette/application": "^2.4",
"nette/bootstrap": "^2.4.2",
"nette/caching": "^2.5",
"nette/database": "^2.4",
"nette/di": "^2.4",
"nette/finder": "^2.4",
"nette/forms": "^2.4",
"nette/http": "^2.4",
"nette/mail": "^2.4",
"nette/robot-loader": "^2.4 || ^3.0",
"nette/security": "^2.4",
"nette/utils": "^2.4",
"latte/latte": "^2.4",
"tracy/tracy": "^2.4",
"kdyby/translation": "^2.5"
},
"require-dev": {
"nette/tester": "^2.0"
},
"minimum-stability": "stable",
"config": {
"platform": {
"php": "5.6"
}
}
}
Jinak používám PHPStorm. Nepřidává tam něco, co by to mohlo pokazit ?
Editoval MartinVolenec (22. 3. 2018 16:46)
- MartinVolenec
- Člen | 36
Downgrade Composer a přeinstalace Kdyby/Translation problém vyřešen.
Můžete uzavřít.