PHP'de OOP'de İsim Alanlarında Göreli Yollar
Diyelim ki index.php dosyasında
aşağıdaki çağrı yapılıyor:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
Bildiğiniz gibi, bir sınıfa erişirken onun isim alanının önüne ters eğik çizgi yazmak gerekir. Aslında bu zorunlu değildir. Bu eğik çizgi yazılmazsa, çağrılan isim alanı mevcut isim alanına göre hesaplanacaktır. Örneğe bakın:
<?php
namespace Admin\Data;
new Core\Controller; // \Admin\Data\Core\Controller ile eşdeğerdir
?>
İki sınıf verilmiştir:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
Sınıf miras alma kodunu, sınıflarımızın isim alanlarının örtüşen kısımlarını dikkate alarak basitleştirin.
İki sınıf verilmiştir:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
Bu sınıfların nesneleri index.php
dosyasında şu şekilde oluşturuluyor:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
Nesnelerin oluşturulduğu isim alanını dikkate alarak, nesne oluşturma kodunu basitleştirin.