Přechod z nette bez prefixů a php 5.2 na verzi se jmennými prostory php 5.3

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
darthcz
Člen | 113
+
0
-

Dobrý den,

chtěl bych se zeptat, co vše je zapotřebí udělat při přechodu z nette bez prefixů a php verze 5.2 na verzi pro php 5.3 se jmennými prostory. Konkrétně na nette 2.0 alpha php 5.3.

Při změně nette v libs a smazání temp se zobrazí pouze bílá stránka :(

Za odpověď děkuji.

Nox
Člen | 378
+
0
-

je třeba na začátek souboru doplnit use ..., ...; tak aby se ty třídy braly ze správného místa, tzn. např. v bootstrapu (nemusí být vše)

<?php
use Nette\Debug,
    Nette\Application\Route,
    Nette\Environment;
?>

a pokud máš moduly, tak na začátek

<?php
namespace <jmenoModulu>Module;
?>

opravte mě prosím jestli se pletu

Editoval Nox (10. 1. 2011 15:14)

Nox
Člen | 378
+
0
-

http://php.vrana.cz/…ich-chyb.php
prověř zapnutí error hlášek, pomocí die najdi místo chyby atd. jedem jedem

darthcz
Člen | 113
+
0
-

Tak bílá obrazovka zmizela, zjistil jsem, že v php 5.3 je vyplé zobrazování chyb, tak jsem ho zapl a chyba byla v mojí blbosti – špatně jsem si nahrál loader.php. Nicméně bych se ještě chtěl zeptat, zda je nutné u všech extends tříd psát prefix Nette\ ? Nelze nějak udělat, aby to přebíralo use například z bootstrapu? Případně není nějaký globalní soubor, ze kterého by to bralo use? Abych to nemusel psát v každém modelu, presenteru atd.

Editoval darthcz (10. 1. 2011 16:33)

jtousek
Člen | 951
+
0
-

Ne nic takového nelze. Ovšem ono to ani není potřeba. Např. use Nette\Presenter potřebuješ tak akorát v BasePresenter.php, ostatní už dědí od něj. Model je na tom podobně.

Samozřejmě nějakému tomu use v každém souboru se nevyhneš, ale většinou stačí tak 2–3 řádky, výjimečně více.

darthcz
Člen | 113
+
0
-

V podstatě jsou to jen všechny extends (napr extends Nette\Object) a Nette\Environment::getConfig()->database v initialize funkci, takže opravdu nic strašného.

Mockrát děkuji za odpovědi.

darthcz
Člen | 113
+
0
-

aha tak v BasePresenteru mi to nebere class Presenter
Class ‚Nette\Presenter‘ not found

vyřešeno: je v Nette\Application\Presenter

Editoval darthcz (10. 1. 2011 16:56)

Nox
Člen | 378
+
0
-

Protože to je Nette\Application\Presenter
https://api.nette.org/nette/2.0/

darthcz
Člen | 113
+
0
-

jojo, díky :) snad už to bude vše :)