Nette 2.3.0 Beta – Type of service ‚tracy.blueScreen‘ is unknown
- webdata
- Člen | 153
Zdravím,
Zkouším jen tak nasadit novou verzi nette na projekt a hned se vyskytla chyba.
V projektu mám vlastní extension která posílá do tracy panelu nějaké info a při spuštění to hlásí Type of service ‚tracy.blueScreen‘ is unknown.
POZOR!! Tuhle chybu hlásí verze nette.phar
Pokud to přepnu do normální verze, tak se dostanu dál ale pro změnu to vyhodí chybu
Cannot load presenter ‚App‘, class ‚App\Presenters\AppPresenter‘ was not found
Přitom url je localhost/app/admin a defaultní presenter který by se měl zobrazit je v namespace App/AdminModule/Presenters;
Dík za nějaké info.
- webdata
- Člen | 153
petr.jirous napsal(a):
Takže mám stáhnou verzi z git? Jinak jsem přišel na to že tu chybu s presenterem odstraním tak že do .htaccess dám RewriteBase /App/ Pak to běží u obou verzí, jak phar tak normální.
Edit:
Jo já sosal posledni verzi zde z webu.
Editoval webdata (4. 2. 2015 18:57)
- David Grudl
- Nette Core | 8228
V nette.phar chyběly některé anotace, nahrál jsem tam distribuční balík znovu.
- webdata
- Člen | 153
David Grudl napsal(a):
V nette.phar chyběly některé anotace, nahrál jsem tam distribuční balík znovu.
Takže docela rozsáhlej projekt jsem na nové 2.3.0 rozjel. Ale je zde problém s tím že na localhostu musím do .htaccess nastavit RewriteBase /App/ jinak to hlásí Cannot load presenter ‚App‘, class ‚App\Presenters\AppPresenter‘ was not found
Adresářová strukturu mám:
app
AdminModule
Presenters
DefaultPresenter.php (namespace App\AdminModule\Presenters)
Templates
FrontModule
Presenters
Templates
bootstrap.php
vendor
.htaccess
index.php
Při zadání localhost/app to vyhodí výše uvedenou chybu. Ale pokud do .htaccess nastavím RewriteBase /App/ tak je to v pohodě. Na staré verzi 2.2.7 to běželo v pohodě.
v config neon mám
nette:
application:
errorPresenter: Error
mapping:
*: App\*Module\Presenters\*Presenter
Jestli je potřeba více infa, připravím na to sandbox.
Editoval webdata (4. 2. 2015 19:32)
- zool
- Člen | 144
Zdravím, zkoušel jsem taky nasadit nette 2.3 . Téměř se to podařilo,
akorát mi to píše chybu
Service ‚104_IChatControlFactory‘: Service of type EmailApi needed by
App\Components\ChatControl::__construct() not found. Did you register it in
configuration file?
třídu mám v configu registrovanou. Na nette 2.2.7 to jede…
- webdata
- Člen | 153
Takže chyba Cannot load presenter ‚App‘, class ‚App\Presenters\AppPresenter‘ was not found vyřešená a jak?
Mám instalovaný XAMPP 1.8.3 [PHP: 5.5.15]
Projekty mám pak v adresářích:
c:\xampp\htdocs\Projekt1
c:\xampp\htdocs\Projekt2
.
.
No a pokud zadám localhost\Projekt1\admin tak je vše v pořádku. V případě, že zadám localhost\projekt1\admin s malím p, tak už to hází výše uvedenou chybu a pak se musí nastavit v .htaccess RewriteBase /Projekt1/ a pak to zase frčí a je jedno jestli malé nebo velké p
Ještě jsem to nezkoušel na produkčním serveru, kde mám linux, ale na widlích to bylo do verze 2.3.0 jedno. A myslím, že je jedno jak napíšu url i na tom lokálu takže localhost\PrOJEkt by mělo bejt to same jako localhost\projekt i když to mám uložený v adresáři c:\xampp\htdocs\Projekt
Jestli mě něco uniká, rád se nechám poučit.
PS: tohle jsem objevil náhodou při realizaci ukázkového sandboxu, ještě mám problém s vlastním rendererem pro formulář ale raději budu chvilku laborovat než udělám nějaké ukvapené závěry.
Editoval webdata (4. 2. 2015 21:44)
- Jan Tvrdík
- Nette guru | 2595
Ano, v Nette 2.3 musíš zadat do prohlížeče cestu se správně velkými
písmeny. Je to úmyslná změna v Nette\Http\RequestFactory
, viz
https://github.com/…eeef4aa810ce.
@bazo Je to konzistentní s chováním na Linuxu, což je primární prostředí.
- webdata
- Člen | 153
Jan Tvrdík napsal(a):
Ano, v Nette 2.3 musíš zadat do prohlížeče cestu se správně velkými písmeny. Je to úmyslná změna v
Nette\Http\RequestFactory
, viz https://github.com/…eeef4aa810ce.@bazo Je to konzistentní s chováním na Linuxu, což je primární prostředí.
Ok, dík za info. A rád tuhle fičuru vítám.
- webdata
- Člen | 153
bazo napsal(a):
nette je po novom case sensitive. takze je velk rozdiel medzi Projekt, projekt, alebo ProJekt
to iste plati aj pre odkazy a nastavenie routera
dost nestastny bc break podla mna
No teď jsem ještě něco zkoušel a je to fakt divné teoreticky můžu mít dva presentery:
final class DefaultPresenter extends \Nette\Application\UI\Presenter
{
}
a
final class DeFaultPresenter extends \Nette\Application\UI\Presenter
{
}
v jednom jmenném prostoru protože z hlediska url jsou to dva rozdílné presentery a to samé platí o akce:
final class DeFaultPresenter extends \Nette\Application\UI\Presenter
{
public function actionEdit($id) {
}
public function actionEdiT($id) {
}
}
Kde localhost/app/edit muže bejt i jako localhost/app/ediT
Jenže jestli mám dodržet velikost písmen tak u akce actionEdit musim napsal default\edit pokud napíšu default\Edit tak chyba. Pokud budu mít actionEdiT tak je jedno jak to edit napíšu protože to pak stejně pořád končí chybou. Je to hodně matoucí hlavně pro začátečníky.
Ano beru to že když na linuxu budu mít soubor uloženej jako domena/adresar/Info.php musím napsat domena/adresar/Info.php a ne domena/AdreSAR/info.php
- Filip Procházka
- Moderator | 4668
PHP je afaik case insensitive na třídy, tedy z pohledu PHP jsi nadefinoval jednu třídu dvakrát a nebude to nikdy dobře fungovat.