⊗ppOpNsRPt 100 of 107 menu

PHP да ООП да namespaceларда нисбий йўллаш

Файл index.php да куйидаги чақириқ амалга оширилсин деб фараз қилайлик:

<?php namespace Admin\Data; new \Core\Controller; ?>

Сиз биласиз, классга мурожаат қилганда унинг namespaceи олдига тескари чиззиқ қўйиш керак. Аслича, бу мажбурий эмас. Агар бу чиззиқ қўйилмаса, чақирилаётган namespace жорий namespaceга нисбатан ҳисобланади. Мисолга қара:

<?php namespace Admin\Data; new Core\Controller; // \Admin\Data\Core\Controller га эквивалент ?>

Икки класс берилган:

<?php namespace Modules\Shop\Core; class Cart { } ?>
<?php namespace Modules\Shop; class UserCart extends \Modules\Shop\Core\Cart { } ?>

Бизнинг классларнинг namespaceларининг мос келувчи қисмини инобатга олиб, мерос олиш учун кодни соддалаштиринг.

Икки класс берилган:

<?php namespace Core\Data; class Controller { } ?>
<?php namespace Core\Data; class Model { } ?>

Ушбу классларнинг объектлари index.php файлида куйидагича яратилмоқда:

<?php namespace Core\Data; $controller = new \Core\Data\Controller; $model = new \Core\Data\Model; ?>

Объектлар яратилаётган namespaceни инобатга олиб, объектлар яратиш учун кодни соддалаштиринг.

hyaztruzlkk