⊗ppOpNsCA 107 of 107 menu

PHP-dä OOP-de klaslary awtomatik ýüklemek üçin öz funksiýaňyz

Köp wagtlary standart awtomatik ýüklemek käbir sebäplere görä size ýaramaz bolup biler. Şeýle bir ýagdaýda öz awtomatik ýüklemek funksiýaňyzy ýazyp bilersiňiz.

Bunun üçin spl_autoload_register funksiýasyna birinji parametr hökmünde ýazan funksiýaňyzy-kolbeki bermeli. Bu funksiýa PHP ýüklenmedik bir klasa çagylyş anyklanda çagyrylar. Bu funksiýanyň parametrine at meýdançasy bilen birlikde klasyň ady düşer:

<?php spl_autoload_register(function($class) { // $class üýtgeýjisinde at meýdançasy bilen klasyň ady bolar }); ?>

Funksiýanyň wezipesi bolsa klasyň ady boýunça bu klasy require arkaly ýüklemekdir. Ýagny bu funksiýanyň içinde biz klaslary ýüklemek üçin öz kadamyzy, ýagny atlandyryş ylalaşygymyzy bellemelidiris.

Geliň bir öz awtomatik ýüklemek funksiýamyzyň mysalyny ýazaýaly. Diýeliň, mysal üçin, biz aýdýarys, ýagny sahypanyň güýç çeşmesinden klas faýlyna ýol at meýdançasyndaky ýaly, ýöne simwollaryň registrini saklap bolmalydyr.

Ýagny, eger bizde Core\Admin\PageController klassy bar bolsa, onda oňa ýol Core/Admin/PageController.php bolmaly.

Görşüňiz ýaly, at meýdançasy bilen klasyň adyny öwürmek üçin ýönekeý ters köp süýşmäni düz köp süýşmä çalyşmaly, klasyň adyna bolsa .php goşmaly. Muny edeliň:

<?php spl_autoload_register(function($class) { $filename = str_replace('\\', '/', $class) . '.php'; require($filename); }); ?>

Emma bizde faýla nisbi ýol dörär (sahypanyň güýç çeşmesine nisbeten). Absolýut ýol etmek has gowy, şeýle:

<?php spl_autoload_register(function($class) { $root = $_SERVER['DOCUMENT_ROOT']; $filename = $root . '/' . str_replace('\\', '/', $class) . '.php'; require($filename); }); ?>

Ýene bir nüans bar. Dürli operasiýa ulgamlarynda bukjalar boýunça ýol düz köp süýşme bilen ýa-da ters köp süýşme bilen bolup biler. Kodymyzy operasiýa ulgamydan garaşsyz edeliň. Bunuň üçin ýollary bölmek üçin düz köp süýşmäniň ornuna şu wagt skriptimiş işleýän operasiýa ulgamy üçin dogry köp süýşmäni öz içine alýan DIRECTORY_SEPARATOR konstantasyny goýarys. Netijede aşakdaky kody alyarys:

<?php spl_autoload_register(function($class) { $root = $_SERVER['DOCUMENT_ROOT']; $ds = DIRECTORY_SEPARATOR; $filename = $root . $ds . str_replace('\\', $ds, $class) . '.php'; require($filename); }); ?>

Men düzen awtomatik ýüklemek funksiýamy synaň.

Öz awtomatik ýüklemek kadamyňyzy oýlap tapyň we ony amala aşyryň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et