PHP AutoLoading avec SPLClassloadher?
-
12-11-2019 - |
Question
J'apprends les espaces de noms dans PHP 5.3 et je voudrais utiliser des espaces de noms en automatique. j'ai trouvé ça Classe Spllassloader, mais je ne peux pas comprendre comment cela fonctionne.
Disons que j'ai une structure de répertoire comme ceci:
system
- framework
- http
- request.php
- response.php
index.php
SplClassLoader.php
Comment activer la classe Autoloading? Quelles espaces de noms devraient request.php
et response.php
ont?
C'est le request.php
:
namespace framework\http;
class Request
{
public function __construct()
{
echo __CLASS__ . " constructer!";
}
}
Et c'est le response.php
:
namespace framework\http;
class Request
{
public function __construct()
{
echo __CLASS__ . " constructed!";
}
}
Et en index.php
J'ai:
require_once("SplClassLoader.php");
$loader = new SplClassLoader('framework\http', 'system/framework');
$loader->register();
$r = new Request();
J'obtiens ce message d'erreur:
Fatal error: Class 'Request' not found in C:\wamp\apache\htdocs\php_autoloading\index.php on line 8
Pourquoi cela ne fonctionne-t-il pas? Comment puis-je utiliser SplClassLoader
Dans mes projets, il se charge / nécessite mes cours, et comment dois-je configurer et nom des dossiers et des espaces de noms?
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow