PHP'де ООП'деги аты мейкиндиктеринин синтаксиси
Класска аты мейкиндигин берүү үчүн,
бул классты сактаган файлдын биринчи
сабына namespace командасын жазып,
андан кийин боштук менен - бул мейкиндиктин
атын жазуу керек.
Эгер класс кандайдыр бир аты мейкиндигине таандык болсо, анда класстын объектисин түзүү үчүн класстын аты гана эмес, анын аты мейкиндигин да, тескери слеш менен бөлүнүп, көрсөтүү керек болот. Мисал үчүн карап көрөлү.
Анда бизде Page классы бар дейли, ал
эч кандай аты мейкиндигине таандык эмес.
Анда бул класстын объектисин төмөнкүдөй түзөбүз:
<?php
$page = new Page;
?>
Эми бул класс Admin аты мейкиндигине
таандык болсун деп коёлу. Бул учурда бул класстын
объектисин биз муну сыяктуу түзөбүз:
<?php
$page = new \Admin\Page;
?>
Келгиле, жогоруда сүрөттөлгөн класстардын кагылышууларын алдын алуу үчүн, колдонуучулар үчүн класстарды жана администраторлор үчүн класстарды ар башка аты мейкиндиктерине бөлөлү.
/admin/page.php файлындагы Page класска
Admin аты мейкиндигин көрсөтөлү:
<?php
namespace Admin;
class Page
{
}
?>
Анан /users/page.php файлындагы Page класска
Users аты мейкиндигин көрсөтөлү:
<?php
namespace Users;
class Page
{
}
?>
Эми /index.php файлында
Page класстын бир жана экинчи
объектилерин түзөлү:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Сизде core папкасы жана project папкасы бар дейли.
Ар бир папкада өзүнүн Controller классы бар. Бул класстар ар
башка аты мейкиндиктерине таандык болушу үчүн кылыңыз. index.php
файлында бир жана экинчи класстардын объектилерин түзүңүз.