⊗ppOpNsAu 105 of 107 menu

PHP-те ООП-де класстарды автозагрузкалау

Сіз білесіз, кез келген класты қолдану үшін оны require арқылы қосу керек. Жобede класстар өте көп болғанда, қосылымдар да көп болады, оларды жазған әлдеқайда ыңғайсыз және бақылау қиын.

Мұндай мәселені шешу үшін PHP-ге автозагрузка класстары қосылды. Автозагрузка PHP-ге кодта сол класқа сілтеме жасалған кезде класы бар файлды автоматты түрде жүктеуге мүмкіндік береді. Алайда, класстар өздігінен жүктелмейді - оларды класстардың файлдары мен бумаларының атаулары бойынша қандай да бір келісім бойынша сайттың бумаларына арнайы орналастыру керек. PHP-дегі кірістірілген келісімді қолдануға болады, немесе өзіңіздің келісіміңізді ойлап тауып, оны қолдануға болады.

Алдымен PHP-тің стандартты келісімін қарастырайық. Бұл келісім мынада: егер бізде классы бар бір файл болса, онда сайт бумаларына дейінгі жол сол файлдың кеңістік атауымен сәйкес келуі керек, ал файл атауы онда сақталған класс атауымен сәйкес келуі керек. Сонымен бірге бумалар мен файл атаулары кіші әріптермен жазылуы керек.

Мысал арқылы қарастырайық. Бізде келесі класс бар делік:

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

Келісім бойынша бұл класс /core/admin/ бумасында pagecontroller.php файлында орналасуы керек.

Енді index.php файлында біздің класымызды require арқылы қоспай-ақ, автозагрузканы қолдана отырып қолданайық. Ол үшін классдар шақырылатын файлдың басында spl_autoload_register функциясын шақыру керек. Осыны орындайық:

<?php spl_autoload_register(); // автозагрузканы қосамыз $obj = new Core\Admin\PageController; // объектіні тыныш жасаймыз ?>

index.php файлында классдардың автоматты жүктелуін қосыңыз. Бумалар мен файлдар атауларының келісіміне сәйкес Core\User класын, Core\Admin\Controller класын және Project\User\Data класын жасаңыз. index.php файлында осы класстардың объектілерін жасаңыз.

Қазақ
AfrikaansAzə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
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау