Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa namespace-ovima

[es] :: PHP :: Problem sa namespace-ovima

[ Pregleda: 1768 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.rs.



+2 Profil

icon Problem sa namespace-ovima09.07.2010. u 13:13 - pre 167 meseci
Koristim PHP verziju 5.3.1 i dobijam sledecu gresku kada radim sa namespace-ovima.
Citat:

Warning: The use statement with non-compound name 'testClasses' has no effect in C:\wamp\www\demo02\index.php on line 2
This is namespace testing
Fatal error: Class 'testClasses\Test' not found in C:\wamp\www\demo02\index.php on line 6

Prema ovom bug report-u trebalo bi da radi, a ne verujem da ima neka sintaksna greska. Ima li neko ideju?
Test.php
Code:

namespace testClasses;

class Test {
    
    function __construct() {
        echo "Test class constructor from testClasses namespace!";
    }
    
    function getName($name)
    {
        return $name . " new user!";        
    }
}


index.php
Code:

        use testClasses;
    
    echo "<h1>This is namespace testing</h1> <br/>";
    
    $t1 = new testClasses\Test();
    $t1->getName("vlada");
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Problem sa namespace-ovima09.07.2010. u 15:48 - pre 167 meseci
A gde ti je učitavanje fajla Test.php, u kome je klasa Test (npr. require_once('putanja/do/Test.php');), unutar index.php?
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.rs.



+2 Profil

icon Re: Problem sa namespace-ovima09.07.2010. u 16:25 - pre 167 meseci
Ali zar namespace-ovi nisu uvedeni bas iz tog razloga da se ne koristi taj require/require_once metod? Ili i pored namespace mora da se koristi i dalje require?
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
*.dynamic.isp.telekom.rs.

Sajt: https://avramovic.info


+46 Profil

icon Re: Problem sa namespace-ovima09.07.2010. u 16:34 - pre 167 meseci
Ne, za to služi autoloading... mada i on koristi require/include(_once)
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Problem sa namespace-ovima09.07.2010. u 17:16 - pre 167 meseci
Citat:
Valerij Zajcev: Ali zar namespace-ovi nisu uvedeni bas iz tog razloga da se ne koristi taj require/require_once metod? Ili i pored namespace mora da se koristi i dalje require?

Ti očigledno nisi shvatio čemu služe namespace-ovi...

Sa klauzulom use, ti samo uključuješ neki namespace (ili konkretnu klasu, pri čemu možeš da koristiš i alijas) u resolving proces, na način da će pri trigger-ovanju neke klase (npr. pri instanciranju) biti odlučivano iz kog namespace-a je ta klasa. Na tebi i dalje ostaje da prethodno ili dinamički (lazy loading) učitavaš fajlove u kome se nalaze tvoje klase.

Što se implementacije autoload-inga tiče, treba imati u vidu da se sada npr. onoj "magičnoj" __autoload() funkciji kao parametar prosleđuje string u obliku namespace\imeKlase.

btw Baci pogled na ovaj članak.
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.rs.



+2 Profil

icon Re: Problem sa namespace-ovima09.07.2010. u 21:36 - pre 167 meseci
Znam ja sta su namespace-ovi, nego mi je cudan nacin njihove upotrebe u PHP-u (da u svakoj skripti koja treba da ima import namespace-a treba pisati dodatni metod __autoload(), mislim da je ovo moglo nekako automatski da se odradi da developer nema potrebe za ovim al ajd :) ).
Code:

use \testClasses;
    
    echo "<h1>This is namespace testing</h1> <br/>";
    
    $t1 = new testClasses\Test();
    $t1->getName("vlada");
    
    function __autoload($className)
    {
        $filename = str_replace('\\', '/', $className) . '.php';
        require_once $filename;
    }

Hvala
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Problem sa namespace-ovima09.07.2010. u 22:07 - pre 167 meseci
Pa ne moraš to da radiš u svakom fajlu, možeš da napraviš neki globalni, eto sad je popularan taj izraz "bootstrap" skript, pa da ga include-uješ u sve ostale, a on će, između ostalog, imati i taj __autoload() metod, tako da tvoj autoloading sistem možeš da imaš na jednom mestu u aplikaciji.
 
Odgovor na temu

[es] :: PHP :: Problem sa namespace-ovima

[ Pregleda: 1768 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.