⊗ppOpNsAu 105 of 107 menu

PHP'де ООП'де Класстарды Автоматтык жүктөө

Сиз билесиз, каалаган классты колдонуу үчүн, биз аны require аркылуу туташтырышыбыз керек. Долбоордо өтө көп класстар болгондо, көптөгөн туташуулар пайда болот, аларды жазганга ыңгайсыз жана көзөмөлдөөгө кыйын.

Мындай көйгөйүн чечүү үчүн PHP'ге класстарды автоматтык жүктөө кошулду. Автоматтык жүктөө PHP'ге класска коддо кайрылган учурда, ошол класстын файлын автоматтык түрдө жүктөөгө мүмкүндүк берет. Бирок, класстар жөнөкөй эле жүктөлбөйт - аларды сайттын папкаларына класстардын файлдары жана папкаларынын аттары боюнча кандайдыр бир келишимге ылайык, атайын жол менен жайгаштыруу керек. PHP'нин ичиндеги стандарттуу келишими колдонсо болот же өзүңүздүн келишимиңизди ойлоп, аны колдоно аласыз.

Башында PHP'нин стандарттуу келишимин карап көрөлү. Бул келишим мындай, эгерде бизде классы бар файл болсо, анда сайттын папкалары боюнча ошол файлга чейинки жол файлдын ат мейкиндиги (namespace) менен дал келишиши керек, жана файлдын аты анын ичиндеги класстын аты менен дал келишиши керек. Бул учурда папкалардын жана файлдын аттары кичине тамга менен жазылышы керек.

Мисалды карап көрөлү. Бизде төмөнкү класс бар дейли:

<?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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу