PHP namespace nedir? PHP namespace kullanımı

0
726
PHP namespace nedir? PHP namespace kullanımı, PHP namespace kavramı
PHP namespace nedir? PHP namespace kullanımı, PHP namespace kavramı

PHP’de Object Oriented Programmin (OOP) mantığı ile kod geliştirme yapıyorsanız, aynı isme sahip birden fazla sınıf olması durumunda karmaşıklığı en aza indirmek için kullanılan yapıdır. 2009 yılında, PHP 5.3 sürümü ile namespace özelliği PHP’ye eklenmiştir.

Namespace kavramı PHP’de iki problemi çözer:

  • Bir görevi gerçekleştirmek için birlikte çalışan sınıfları gruplayarak daha iyi bir organizasyona izin verirler.
  • Aynı ismin birden fazla sınıf için kullanılmasına izin verirler.

PHP’de Namespace nasıl kullanılır?

Namespace anahtar kelimesi bir dosyanın en üstünde tanımlanmalıdır.

namespace Student;

Önemli Not: Namespace, PHP dosyasında ilk tanımlanmalıdır. Aşağıdaki koddaki gibi tanımlama yaparsanız geçersiz olacaktır.

<?php
echo "Hello World!";
namespace Student;
...
?>

PHP Namespace Örnekleri

Örneğin 2 adet PHP dosyamız olsun. Birisi student.php diğeri personal.php. Her ikisininde içerisinde Model isimli sınıf (class) lar olsun.

student.php

<?php 
class Model{

   public $studentId = 200;
   //kodlar..

}
 ?>

personal.php

<?php 
class Model{

   public $personalId = 100;

  //kodlar..
}
?>

Şimdi bu iki sınıfı index.php isimli bir php dosyasına dahil edelim.

<?php 

include 'student.php';
include 'personal.php';

 ?>

index.php’yi çalıştırdığımızda PHP bizlere aşağıdaki gibi bir hata verecektir. Çünkü iki tane Model class’i çağırdık. Aynı dosya içerisinde benzer isimlere sahip class yapısı olamaz.

Fatal error: Cannot declare class Model, because the name is already in use in E:\xampp\htdocs\kampuskod\personal.php on line 3

İşte bu durumu çözmek için hem student.php hem de personal.php dosyalarının en başına namespace kavramı eklemeliyiz.

<?php 

namespace Student;

class Model{

   public $studentId = 200;
   //kodlar..

}

?>
<?php 

namespace Personal;

class Model{

   public $personalId = 100;

   //kodlar
}

 ?>

Yaptığımız bu değişiklikten sonra index.php’yi tekrar çalıştırdığımızda herhangi bir hata almayacağız. Şimdi bu sınıflardan namespace kavramını kullanarak bir nesne oluşturalım.

<?php 

include 'student.php';
include 'personal.php';

$studentModel =  new Student\Model();
$personalModel =  new Personal\Model();

echo $studentModel->studentId;
echo "<br>";
echo $personalModel->personalId;

 ?>

Yukarıdaki kodun çıktısı aşağıdaki gibi olacaktır.

200
100

PHP Namespace Use Kullanımı

PHP’de Namespace kavramını use ifadesi ile kullanabiliriz. Örndek index.php kodu aşağıdaki gibidir:

<?php 

include 'student.php';
use Student\Model;

$studentModel =  new Model();

echo $studentModel->studentId;
echo "<br>";

 ?>

PHP Namespace’de Alias Kullanımı

PHP’de namespace kullanırken as ifadesi kullanarak dahil edeceğimiz sınıflara farklı isimlendirmeler verebiliriz.

Alias: Takma ad.

use Student\Model as StudentModel;

<?php 

include 'student.php';
use Student\Model as StudentModel;

$studentModel =  new StudentModel();

echo $studentModel->studentId;
echo "<br>";

 ?>

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz