⊗ppOpNsAu 105 of 107 menu

Autoloading e Klasave në OOP në PHP

Ju tashmë e dini se për të përdorur ndonjë klasë, ne duhet ta përfshijmë atë përmes require. Kur në një projekt ka shumë klasa, atëherë rezultojnë shumë përfshirje, të cilat janë shumë të papërshtatshme për t'u shkruar dhe të vështira për t'u kontrolluar.

Për zgjidhjen e këtij problemi në PHP u shtua autoloading i klasave. Autoloading-u i lejon PHP-t të ngarkojë automatikisht skedarin e një klase kur përpiqet të aksesojë atë klasë në kod. Megjithatë, klasat thjesht nuk do të ngarkohen vetë - ato duhet të vendosen në dosjet e sajtit në një mënyrë të veçantë, duke ndjekur ndonjë marrëveshje për emrat e skedarëve dhe dosjeve të klasave. Mund të përdorni marrëveshjen e integruar në PHP, ose të krijoni tuajën dhe ta përdorni atë.

Le të shqyrtojmë së pari marrëveshjen standarde të PHP. Kjo marrëveshje konsiston në faktin se nëse kemi një skedar me një klasë, atëherë rruga përmes dosjeve të sajtit drejt këtij skedari duhet të përputhet me hapësirën e emrave të skedarit, dhe emri i skedarit duhet të përputhet me emrin e klasës që gjendet brenda tij. Në këtë rast, emrat e dosjeve dhe skedarit duhet të jenë me shkronja të vogla.

Le ta shohim me një shembull. Le të themi se kemi këtë klasë:

<?php namespace Core\Admin; class PageController { } ?>

Sipas marrëveshjes, kjo klasë duhet të vendoset në dosjen /core/admin/ në skedarin pagecontroller.php.

Tani le të përdorim në skedarin index.php klasën tonë, pa e përfshirë atë përmes require, por duke përdorur autoloading-un. Për këtë, në fillim të skedarit, ku thirren klasat, duhet të thirret funksioni spl_autoload_register. Le ta bëjmë këtë:

<?php spl_autoload_register(); // aktivizojmë autoloading-un $obj = new Core\Admin\PageController; // krijojmë objektin me qetësi ?>

Në skedarin index.php aktivizoni ngarkimin automatik të klasave. Duke ndjekur marrëveshjen për emrat e dosjeve dhe skedarëve, krijoni klasën Core\User, klasën Core\Admin\Controller dhe klasën Project\User\Data. Në skedarin index.php krijoni objekte të këtyre klasave.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo