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>";
?>
- İrlanda Öğrenci Vizesi için Gerekli Belgeler
- (Solved) Error ‘npm ERR! ERESOLVE unable to resolve dependency tree’ and & How to fix NPM warnings
- Mikroservis Mimarisi Nedir? Monolitik Mimari Nedir? Microservice vs Monolithic
- Metaverse nedir? Metaverse teknolojisi hayatımızda neleri değiştirecek?
- Keycloak Kullanarak Güvenli Java Spring Boot REST API Uygulaması