ใน PHP เราก็จะมีการสร้าง Class แยกไว้ในแต่ละไฟล์ เพื่อที่จะให้ง่ายในการจัดการ ทีนี้แน่นอนมันอาจจะมีบางครั้งที่ชื่อ Class ในแต่ละไฟล์อาจจะซ้ำกัน แต่จะทำยังไงถ้าเราจำเป็นต้องใช้ Class จากไฟล์นั้นๆ พร้อมกัน คำตอบคือเราใช้ Namespace ในการแยกชื่อ Class กันเอง เรามาดูตัวอย่างกันหน่อย
สร้าง Class
- ผมสร้างไฟล์
firstClass.phpแล้วสร้าง ClassOrderและ methodhandleซึ่งก็ไม่ได้ทำอะไรมาก แค่echoออกมา
<?php
namespace Car;
class Order
{
public function handle()
{
echo "Car done";
}
}จะเห็นว่าผมมีการสร้าง Namespace ชื่อ Car ไว้ใต้ tag <?php
- ต่อมาผมจะสร้างไฟล์
secondClass.phpแล้วก็สร้าง methodhandleเหมือนกัน
<?php
namespace Hotel;
class Order
{
public function handle()
{
echo "Hotel done";
}
}การเรียกใช้
จากนั้นเราก็จะเรียกใช้งาน Class ทั้งสอง โดยผมจะสร้างไฟล์ index.php ขึ้นมา แล้วก็เรียกใช้งาน Class ทั้งสอง ดังนี้
<?php
require_once 'firstClass.php';
require_once 'secondClass.php';
$car = new Car\Order();
$hotel = new Hotel\Order();จะเห็นว่าผมใช้ตัวแปร $car มารับ Class Order จาก Namespace Car และใช้ตัวแปร $hotel มารับ Class Order จาก Namespace Hotel แล้วก็เรียกใช้งาน method handle ของทั้งสองตัว ดังนี้
<?php
$car->handle();
$hotel->handle();ก็จบไปสำหรับการใช้ Namespace ใน PHP ซึ่งเราจะเห็นการใช้ Namespace กันอยู่บ่อยๆ ใน Framework ต่างๆ สำหรับใครที่กำลังสงสัยในเรื่องนี้อยู่ ก็หวังว่าบทความนี้จะช่วยให้เข้าใจมากขึ้นนะครับ