PHP'de OOP'de use Komutu ve İsim Alanları
Diyelim ki aşağıdaki Data sınıfımız var:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Ayrıca, içinde Data sınıfının nesnelerini oluşturan
bir Page sınıfı olduğunu varsayalım:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Gördüğünüz gibi, her iki sınıfımız da tamamen farklı
isim alanlarında bulunuyor, bu nedenle Data
sınıfı çağrılarını, bir önceki derste yaptığımız gibi
basitleştirmek mümkün değil. Ancak bu çağrılar çok
uzun ve kullanışsız, çünkü her Data sınıfı
çağrısında uzun isim alanını belirtmek gerekiyor.
Bu tür bir sorunu çözmek için özel bir use
komutu bulunmaktadır. Bu komut yardımıyla, sınıfı
tam adıyla bir kez bağlamak yeterlidir ve bundan
sonra bu sınıfa doğrudan sınıf adıyla erişilebilir.
Örneğe bakın:
<?php
namespace Users;
use \Core\Admin\Data; // sınıfı bağlıyoruz
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // doğrudan adıyla çağırıyoruz
$data2 = new Data('2'); // doğrudan adıyla çağırıyoruz
}
}
?>
Aşağıdaki kodu use kullanarak
basitleştirin:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Aynı sınıftan 3 nesne oluşturuyoruz:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Aşağıdaki sınıflar verilmiştir:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
use komutunu uygulayarak sınıf kalıtım
kodunu basitleştirin.