0Pricing
PHP Academy · บทเรียน

เนมสเปซซ้อนกันและชื่อแฝง

สร้างเนมสเปซย่อยและใช้ชื่อแฝงเพื่อลดความยืดยาวของโค้ด

เนมสเปซซ้อนกันและชื่อแฝง เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

ตัวอย่างเนมสเปซซ้อนกัน

เนมสเปซของ PHP สามารถซ้อนกันได้หลายระดับ โดยมีส่วนประกอบที่คั่นด้วยแบ็กสแลชหลายส่วน

<?php
namespace Vendor\Package\Http\Middleware;

class AuthMiddleware {
    public function handle(): void {}
}

ทำไมจึงต้องใช้นามแฝง

เส้นทางเนมสเปซที่ยาวทำให้โค้ดเยิ่นเย้อ นามแฝงช่วยให้คุณอ้างอิงคลาสด้วยชื่อที่สั้นกว่าซึ่งคุณกำหนดเอง

การตั้งนามแฝงให้คลาส

ใช้ use … as Alias เพื่อเปลี่ยนชื่อการนำเข้าสำหรับไฟล์ปัจจุบัน

<?php
namespace App\Controllers;

use App\Infrastructure\Database\MySQLConnection as DB;

class UserController {
    public function __construct(private DB $db) {}
}

การตั้งนามแฝงให้คำนำหน้าเนมสเปซ

คุณสามารถตั้งนามแฝงให้คำนำหน้าเนมสเปซ เพื่อย่อการอ้างอิงที่ซ้อนกันหลายระดับได้

<?php
use App\Domain\Orders\Repositories as OrderRepo;

$repo = new OrderRepo\EloquentOrderRepository();

การแก้ข้อขัดแย้งของชื่อคลาส

เมื่อแพ็กเกจสองรายการกำหนดคลาสที่มีชื่อย่อเหมือนกัน ให้ตั้งนามแฝงให้คลาสใดคลาสหนึ่ง

<?php
use League\Flysystem\Filesystem;
use Illuminate\Filesystem\Filesystem as LaravelFS;

$fs1 = new Filesystem(/* adapter */);
$fs2 = new LaravelFS();

การใช้ use แบบจัดกลุ่มร่วมกับนามแฝง

บล็อก use แบบจัดกลุ่มยังรองรับการตั้งนามแฝงแยกกันสำหรับแต่ละสัญลักษณ์ด้วย

<?php
use App\Models\{User, Post as Article};

โครงสร้างที่ซ้อนกันหลายระดับ

โครงการ DDD ในโลกจริงมักมีเนมสเปซที่ประกอบด้วยส่วนต่าง ๆ อย่างน้อย 4 ส่วน เช่น App\Domain\Billing\Services\InvoiceGenerator

ขอบเขตของนามแฝง

นามแฝงมีขอบเขตเฉพาะไฟล์ นามแฝงที่กำหนดในไฟล์หนึ่งจะไม่มีผลกับอีกไฟล์หนึ่ง

ไลบรารี Logger สองรายการ

ตัวอย่าง: ใช้ Monolog และตัวบันทึกแบบกำหนดเองร่วมกัน

<?php
use Monolog\Logger;
use App\Logging\Logger as AppLogger;

$monolog = new Logger("channel");
$app     = new AppLogger();

นามแฝงของฟังก์ชันและค่าคงที่

คุณยังสามารถตั้งนามแฝงให้ฟังก์ชันและค่าคงที่ที่นำเข้าได้

<?php
use function App\Helpers\formatMoney as money;

echo money(1999); // "€19.99"

แนวทางปฏิบัติที่ดี

ตั้งนามแฝงให้สื่อความหมาย ใช้นามแฝงเพื่อแก้ข้อขัดแย้ง ไม่ใช่เพียงเพื่อลดการพิมพ์จนทำให้โค้ดอ่านยาก

สรุป

เนมสเปซที่ซ้อนกันช่วยจำลองโครงสร้างไดเรกทอรีของคุณ นามแฝงช่วยแก้ข้อขัดแย้งของชื่อและลดความเยิ่นเย้อ โดยทั้งสองอย่างใช้ use … as ที่ด้านบนของไฟล์

ตรวจสอบความเข้าใจอย่างรวดเร็ว

คุณจะตั้งนามแฝงให้การนำเข้าคลาสได้อย่างไร

คำถามที่พบบ่อย

บทเรียน “เนมสเปซซ้อนกันและชื่อแฝง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เนมสเปซซ้อนกันและชื่อแฝง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เนมสเปซซ้อนกันและชื่อแฝง”

สร้างเนมสเปซย่อยและใช้ชื่อแฝงเพื่อลดความยืดยาวของโค้ด คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “เนมสเปซซ้อนกันและชื่อแฝง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การประกาศและใช้งานเนมสเปซ
  2. เนมสเปซซ้อนกันและชื่อแฝง
  3. มาตรฐานการโหลดอัตโนมัติ PSR-4
  4. การลงทะเบียนตัวโหลดอัตโนมัติ
← กลับไปที่ PHP Academy