Menu

Autoload si PSR-0/PSR-4

Autoloading-ul

Stiai ca exista o metoda mai buna cand utilizezi mai multe clase decat:
		require 'clasa1.php';
		require 'clasa2.php';
		require 'clasa3.php';
		require 'clasa4.php';
		require 'clasa5.php';
		// si asa mai departe...
	
EXISTA! Autoloading-ul - Adica incarci clasa doar cand ai nevoie de ea.
PHP are functia spl_autoload_register(callable $function) care faciliteaza asta. Urmareste urmatorul exemplu:
	<?php
	function autoloadClass($className){
	    include(__DIR__ . "/classes/" . $className . ".php");
	}
	spl_autoload_register("autoloadClass");
	?>
	
Urmatorul cod, care ar fi plasat pe prima linie din cod, cand vei creea o instanta la o clasa care nu este deja inclusa, de exemplu ClasaMea (cod: $my = new ClasaMea();) va face include la classes/ClasaMea.php.

PSR-0 si PSR-4

Deoarece sa avem un folder unde tinem toate clasele reprezinta un haos total cand proiectul devine mai complex(cum devin majoritatea proiectelor) este nevoie sa le separam pe foldere, dar trebuie sa urmam un standard ca sa stim in ce fisier se ascunde o clasa. Aici intervin standardele PHP-FIG!.
Ai nevoie sa intelegi namespace-urile, intra pe link-ul urmator sa le inveti http://www.php.net/manual/en/language.namespaces.php

PSR-0 si PSR-4 sunt standarde create de PHP-FIG(PHP Framework Interop Group). Pe link-urile de mai jos ai documentatie si exemplu de autoload pentru PSR-0 si PSR-4:
De asemenea, un autoload este oferit si de composer(Vezi Ce este composer) capabil sa suporte atat PSR-0, PSR-4 cat si metoda de la inceputul articolului - cu folderele care contin clase.


In urmatoarele articole o sa mai prezint multe lucruri despre Laravel, framework-uri, Design Patterns si tool-uri ce te vor ajuta sa programezi mai rapid, doar aboneaza-te prin email sau prin RSS ca sa fii notificat cand sunt adaugate articole noi!

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


Tags: Tutoriale, Programare Web, Php

Comments Nota 5 din 1