PHP'de OOP İsim Alanlarında Sınıf Takma Adları
Diyelim ki farklı isim alanlarına ait iki Data sınıfımız var.
Bir sınıfta her iki sınıfın nesnelerine ihtiyacımız olsun:
<?php
namespace Project;
class Test
{
public function __construct()
{
$data1 = new \Core\Users\Data; // nesne oluştur
$data2 = new \Core\Admin\Data; // nesne oluştur
}
}
?>
Diyelim ki sınıf çağrılarını use komutu ile basitleştirmeye karar verdik.
Bu durumda bir sorunla karşılaşırız: her iki sınıfın da adı Data,
bu da isim çakışması yaşanacağı anlamına gelir:
<?php
namespace Project;
// İsim çakışması olacak:
use \Core\Users\Data; // ilk sınıfı bağla
use \Core\Admin\Data; // ikinci sınıfı bağla
class Test
{
public function __construct()
{
$data1 = new Data;
$data2 = new Data;
}
}
?>
Bu sorunu çözmek için, bağlanan sınıfa bir takma ad - bu dosya içinde
erişilecek isim - vermeyi sağlayan özel bir as komutu vardır.
Hadi Data sınıflarımızı yeniden adlandıralım:
<?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ğıdaki kodu use kullanarak basitleştirin:
<?php
namespace Project;
class Test
{
public function __construct()
{
$pageController = new \Resource\Controller\Page;
$pageModel = new \Resource\Model\Page;
}
}
?>
Aşağıdaki kodu use kullanarak basitleştirin:
<?php
namespace Project\Data;
class Test
{
public function __construct()
{
$pageController = new \Project\Data\Controller\Page;
$pageModel = new \Project\Data\Model\Page;
}
}
?>