PHP-də OOP-də Adlar Fəzasında Sinif Ləqəbləri
Tutaq ki, bizim iki Data sinfimiz var,
hansı ki, müxtəlif ad fəzalarına aiddir.
Tutaq ki, hansısa sinifdə bizə hər iki sinfin
obyektləri lazımdır:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // obyekt yaradırıq
$data2 = new \Core\Admin\Data; // obyekt yaradırıq
}
}
?>
Tutaq ki, biz use əmri ilə sinif çağırışlarını
sadələşdirməyə qərar verdik. Bu halda bizi problem gözləyir:
hər iki sinfin adı Data-dır, bu isə o deməkdir ki,
bizdə adlar toqquşması olacaq:
<?php
namespace Project;
// Adlar toqquşması olacaq:
use \Core\Users\Data; // birinci sinfi qoşuruq
use \Core\Admin\Data; // ikinci sinfi qoşuruq
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Bu problemi həll etmək üçün xüsusi as əmri var,
hansı ki, qoşulan sinfə ləqəb təyin etməyə imkan verir -
bu sinfin bu faylda hansı ad altında mövcud olacağını.
Gəlin bizim Data siniflərimizi yenidən adlandıraq:
<?php
namespace Project;
use \Core\Users\Data as UsersData;
use \Core\Admin\Data as AdminData;
class Test
{
public function __construct()
{
$data1 = new UsersData;
$data2 = new AdminData;
}
}
?>
Aşağıdakı kodu use istifadə edərək
sadələşdirin:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Aşağıdakı kodu use istifadə edərək
sadələşdirin:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>