[php] namespace
4 naročniki
4 naročniki
Struktura datotek na disku:
- /lib/
- /lib/Testclass.php
- /index.php
Vsebina lib/Testclass.php:
<?php
namespace lib;
class Testclass{
public function say(){
say_func();
\test1::say();
}
}
?>
Vsebina index.php:
<?php
spl_autoload_register();
class test1{
static public function say(){
echo 'hello from static';
}
}
function say_func(){
echo 'hello from function';
}
$o = new lib\Testclass();
$o->say();
?>
Napisal sem en simple primer, ki deluje.
Moje vprašanje pa je ali obstaja način, da bi v Testclass.php poklical test1::say(); namesto \test1::say();
Tako kot deluje npr. klic globalne funkcije say_func() definirane v index.php
Moj neuspešen poskus je bil dodati v Testclass.php:
namespace lib;
use \;
use \*;
Torej, želim klicati razrede definirane izven namespacov v razredu znotraj namespaca brez začetnega '\', tako kot to deluje za navadne funkcije.
7 odgovorov
U, carsko!! Škoda, da ti lahko samo 1 plus pritisnem. ;)
Hvala
edit:
Sedaj imam pri vsakem controllerju
use GET,POST,....;
A bi se dalo to v kak autoloader vključit oz. nekako avtomatsko uporabit, da nebi bilo potrebno vsakič "use" vrstice napisat?
Čak zakaj pa maš ti "use GET, POST, ..."? To se mi zdi nekam čudno ;)
Drugače pa se use upošteva glede na datoteko. Se pravi ne moreš dat use v nek header.php in tega povsod vključit. Potrebno je v vsaki datoteki uporabiti svoj use.
da ne boš tople vode izumljal... symfony2 HttpKernel oz HttpFoundation mogoče? Pa še njihov loader kot autoloader?