Tartalomjegyzék

< PHP OOP

Autoload

Automatikus betöltés

Ha szeretnénk elkerülni az include, include_once, require, require_once használatát, akkor automatikus betöltőre van szükségünk. Elég, ha a névterekkel megmondjuk mit szeretnénk használni.

Legyen a következő könyvtárszerkezet:

app01/
  `-src/
     |-Munka/
     |  `-Dolgozo.php
     |-index.php
     `-munka.php

A munka.php fájlban szeretném használni a Dolgozo.php-ban található Dolgozo osztályt.

Betöltés

Az index.php fájlban létrehozzuk az automatikus betöltőt:

index.php
<?php
 
spl_autoload_register(function ($class) {
    include __DIR__ ."/". str_replace('\\', '/', $class) . '.php';
});
 
include_once('munka.php');

A munka.php-ban nincs névtér, ezt betöltjük az include_once() függvénnyel.

A munka.php fájlban már csak a use parancsot használjuk:

munka.php
<?php
 
use  Munka\Dolgozo;
 
$mari = new Dolgozo();
echo $mari->nev;
Dolgozo.php
<?php
 
namespace Munka;
 
class Dolgozo{
    public $nev;
    public function __construct() {
        $this->nev = 'névtelen';
    }    
}

Több információ