Domanda

Sto imparando gli spazi dei nomi in PHP 5.3 e vorrei usare gli spazi dei nomi automaticamente. ho trovato questo Classe SPLCLASCHARISER, ma non riesco a capire come funziona.

Diciamo che ho una struttura di directory come questa:

system
  - framework
    - http
      - request.php
      - response.php
index.php
SplClassLoader.php

Come si abilita il caricamento automatico della classe? Quali sono i nomi request.php e response.php avere?

Questo è il request.php:

namespace framework\http;

class Request
{
    public function __construct()
    {
        echo __CLASS__ . " constructer!";
    }
} 

E questo è il response.php:

namespace framework\http;

class Request
{            
    public function __construct()
    {      
        echo __CLASS__ . " constructed!";                
    }           
}   

E in index.php Io ho:

require_once("SplClassLoader.php");
$loader = new SplClassLoader('framework\http', 'system/framework');
$loader->register();

$r = new Request();

Ricevo questo messaggio di errore:

Fatal error: Class 'Request' not found in C:\wamp\apache\htdocs\php_autoloading\index.php on line 8

Perché non funziona? Come posso usare SplClassLoader Nei miei progetti quindi carica/richiede le mie lezioni e come dovrei impostare e nominare cartelle e spazi dei nomi?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top