Menu

__autoload

Noi suntem invatati sa avem o aplicate ordonata, cu o structura bine pusa la punct de aceea clasele sunt salvate in fisiere separate cu numele clasei in ele si incluse uneori degeaba. Cand avem fisiere foarte mari, unde includem chiar si 15 clase atunci avem problema ca uneori nu le folosim pe toate, asa ca pentru asta folosim functia __autoload($nume_clasa). Un exemplu vei vedea mai jos, unde folosim o includere dinamica a claselor.

Cod /clase/class.clasa1.php:

<?php  
# fisier: /clase/class.clasa1.php
class Clasa1{
	function __construct(){
		# __CLASSS__ este o constanta magica care ne spune numele clasei
		echo 'A fost creata o instanta noua a clasei <b>'.__CLASS__.'</b><br/><br/>';
	}
}
?>

Cod /clase/class.clasa2.php:
<?php  
# fisier: /clase/class.clasa2.php
class Clasa2{
	
	function __construct(){
		# __CLASSS__ este o constanta magica care ne spune numele clasei
		echo 'A fost creata o instanta noua a clasei <b>'.__CLASS__.'</b><br/>';
	}
}
?>

Cod /test.php:
<?php  
# fisier: /test.php

function __autoload($nume_clasa){
	# Folosim strtolowe deoarece este recomandat ca fisierele sa fie cu litere mici
	$fisier_clasa = 'clase/class.'.strtolower($nume_clasa).'.php';
	echo 'Includem fisierul <b>'.$fisier_clasa.'</b><br/>';
	include($fisier_clasa);
}
$obj1 = new Clasa1;

$obj2 = new Clasa2;
?>
Output /test.php:

Dupa cum vedeti nu a fost nevoie ca sa includem noi manual nici un fisier, fisierele s-au inclus singure atunci cand a fost nevoie de ele. Functia autoload este foarte utila cand avem mai multe clase.



Ti-a placut articolul? Asigura-te ca-ti dam de veste cand publicam altele noi.


Tags: Tutoriale, Programare Web, Php, Curs Php

Comments Nota 0 din 0