⊗ppOpNsCU 101 of 107 menu

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.

msdabyuzde