⊗ppOpNsAu 105 of 107 menu

Outomatiese klaslading in OOP in PHP

Jy weet reeds dat om van 'n klas gebruik te maak, ons dit moet insluit deur require. Wanneer 'n projek baie klasse het, dan is daar baie insluitings wat baie ongerieflik is om te skryf en moeilik om te beheer.

Om hierdie probleem op te los, is outomatiese klaslading bygevoeg in PHP. Outomatiese lading laat PHP toe om outomaties die lêer met 'n klas te laai wanneer daar na daardie klas in die kode verwys word. Maar, klasse sal nie net so gelaai word nie - hulle moet op 'n spesifieke manier in die webwerf se vouers geplaas word, volgens een of ander ooreenkoms oor die naamgewing van lêers en vouers vir klasse. Jy kan die ingeboude PHP-ooreenkoms gebruik, of jou eie bedink en dit gebruik.

Laat ons eers die standaard PHP-ooreenkoms bespreek. Hierdie ooreenkoms kom daarop neer dat as ons 'n sekere lêer met 'n klas het, dan moet die pad deur die webwerf se vouers na daardie lêer ooreenstem met die naamruimte van die lêer, en die lêernaam moet ooreenstem met die naam van die klas wat daarin gestoor is. Die name van die vouers en die lêer moet in kleinletters wees.

Kom ons kyk na 'n voorbeeld. Gestel ons het die volgende klas:

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

Volgens die ooreenkoms moet hierdie klas geleë wees in die vouer /core/admin/ in die lêer pagecontroller.php.

Kom ons gebruik nou ons klas in die lêer index.php, sonder om dit in te sluit deur require, maar deur outomatiese lading te gebruik. Om dit te doen, moet die funksie spl_autoload_register aan die begin van die lêer waarin klasse aangeroep word, geskakel word. Kom ons doen dit:

<?php spl_autoload_register(); // skakel outomatiese lading aan $obj = new Core\Admin\PageController; // skep rustig 'n objek ?>

Skakel outomatiese lading van klasse aan in die lêer index.php. Volg die ooreenkoms oor die naamgewing van vouers en lêers om die klas Core\User, die klas Core\Admin\Controller en die klas Project\User\Data te maak. Skep voorwerpe van hierdie klasse in die lêer index.php.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp