Page 1 sur 1

Fonctionnement de __autoload()

Posté : 30 janv. 2019, 10:11
par JulienRNSNeo
Bonjour,

Mon problème est le suivant : j'utilise ce code
function __autoload($class)
{
$path = str_replace('\\', DIRECTORY_SEPARATOR, $class);
require_once('..' . DIRECTORY_SEPARATOR . $path . '.php');
}
Ensuite quand j'appelle une classe, elle est chargée et je peux l'utiliser.

Mais je ne comprends pas du tout comment fonctionne cette fonction. Par exemple pourquoi il faut mettre un namespace à ma classe. En bref je suis largué et j'aimerais bien quelques explications parce que là j'utilise cette fonction sans rien comprendre et ça me plait pas

Peut être quelqu'un ici saura-t'il m'expliquer cette fonction

En vous remerciant par avance

Re: Fonctionnement de __autoload()

Posté : 30 janv. 2019, 11:27
par kevin254kl
Salut,

La fonction __autoload est obsolète en php 7.2 https://secure.php.net/manual/en/function.autoload.php il faut utiliser https://secure.php.net/manual/fr/functi ... gister.php

Le concept c'est quand tu vas faire un new monObjet si ta classe n'existe pas (non incluse avec un require par exemple) alors php avant de générer une erreur (car ta classe n'existe pas) va utiliser la fonction __autoload (qui doit essayer de retourner ta classe) si il n'arrive toujours pas à trouver ta classe et à résoudre la création de l'objet il génère une erreur.

Le namespace est une convention de nommage pour mieux encapsuler tes classe et les organiser. En poo c'est incontournable , la doc en parle très bien n'hésite pas à la lire :)
https://secure.php.net/manual/fr/langua ... ionale.php