Web Development

PHP: Namespace

ชื่อ Class เหมือนกัน จะเรียกใช้ที่เดียวกันได้อย่างไรกันนะ ลองใช้ Namespace ดูสิ

03 มิถุนายน 20231 นาที
0
PHP: Namespace
Table of Contents

ใน PHP เราก็จะมีการสร้าง Class แยกไว้ในแต่ละไฟล์ เพื่อที่จะให้ง่ายในการจัดการ ทีนี้แน่นอนมันอาจจะมีบางครั้งที่ชื่อ Class ในแต่ละไฟล์อาจจะซ้ำกัน แต่จะทำยังไงถ้าเราจำเป็นต้องใช้ Class จากไฟล์นั้นๆ พร้อมกัน คำตอบคือเราใช้ Namespace ในการแยกชื่อ Class กันเอง เรามาดูตัวอย่างกันหน่อย

สร้าง Class

  • ผมสร้างไฟล์ firstClass.php แล้วสร้าง Class Order และ method handle ซึ่งก็ไม่ได้ทำอะไรมาก แค่ echo ออกมา
PHP Logo
<?php namespace Car; class Order { public function handle() { echo "Car done"; } }

จะเห็นว่าผมมีการสร้าง Namespace ชื่อ Car ไว้ใต้ tag <?php

  • ต่อมาผมจะสร้างไฟล์ secondClass.php แล้วก็สร้าง method handle เหมือนกัน
PHP Logo
<?php namespace Hotel; class Order { public function handle() { echo "Hotel done"; } }

การเรียกใช้

จากนั้นเราก็จะเรียกใช้งาน Class ทั้งสอง โดยผมจะสร้างไฟล์ index.php ขึ้นมา แล้วก็เรียกใช้งาน Class ทั้งสอง ดังนี้

PHP Logo
<?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 Logo
<?php $car->handle(); $hotel->handle();

ก็จบไปสำหรับการใช้ Namespace ใน PHP ซึ่งเราจะเห็นการใช้ Namespace กันอยู่บ่อยๆ ใน Framework ต่างๆ สำหรับใครที่กำลังสงสัยในเรื่องนี้อยู่ ก็หวังว่าบทความนี้จะช่วยให้เข้าใจมากขึ้นนะครับ

แหล่งอ่านเพิ่มเติม

Tags:PHP

คลิกเพื่อแสดงความคิดเห็น