Namespace trong PHP – Toidicode.com

Namespace php là gì

Trong một dự án công trình to mang lúc nào khách tham quan nghĩ tới ngôi trường hợp là sẽ xảy ra những class mang trùng tên nhau ko? Chính vì như thế điều đấy nhưng kể tử phiên bạn dạng PHP 5.3 trở đi thì PHP mang trợ thủ cho chúng ta tác dụng thế hệ là namespace …

1, Namespace là gì?

– Namespace hỗ trợ tạo ra một ko gian tên cho hàm và lớp trong lập trình chung chung và trong PHP nói riêng.

-Vì như thế ở đấy là series hướng nhân vật nên bản thân sẽ chỉ trình diễn về namespace trong hướng nhân vật, trong hướng nhân vật thì namespace mang tác dụng tạo ra định danh cho lớp một biện pháp ví dụ hóa hơn.

VD: như chúng ta mang 2 file mỗi file đều chứa một class và 2 class nó lại mang một điểm chung là trùng tên. Giờ đây lúc khách tham quan nhúng cả 2 file này vào và gọi class thì tức thì tức tốc chương trình sẽ báo lỗi. Để xử lý điều đấy thì chúng ta cần khai báo namespace cho nhì class đấy (sưu tầm tiếp để coi biện pháp khai báo).

2, Khai báo namespace.

-Để khai báo namespace trong PHP chú ta dùng cú pháp sau:

namespace Name;

Trong số đó: Name là tên của namespace.

Quan tâm: lúc khai báo namespace thì chúng ta phải đặt nó ở phía trên cùng của file. Không chỉ có vậy nếu như khách tham quan mong muốn đặt tên namespace đúng chuẩn chỉnh thì hãy xem thêm series PHP standards.

VD:

class Package { public function sayHello() { echo ‘Hello World!’; } }

-Và khách tham quan cũng mang thể trọn vẹn đặt tên namespace theo các ngành được.

VD: Tạo một class HomeController trong thư mục appcontrollers và đặt tên namespace như sau:

namespace AppControllers; class HomeController { //code }

3, Gọi namespace.

– Trong khi một class đang được một namespace định danh thì khách tham quan sẽ ko thể gọi theo biện pháp thường thì được nữa nhưng phải gọi với cú pháp:

new tenNamespacetenClass();

VD:

-Tạo một file ConNguoi.php mang nội dung như sau:

<?php namespace ConNguoi; class ConNguoi { private $name = ‘Con cái Người’; public function getName() { return $this->name; } }

-Tiếp đấy tạo một file index.php cùng cấp với file ConNguoi.php và khi này chúng ta sẽ phải gọi class ConNguoi như sau:

<?php include ‘ConNguoi.php’; $connguoi = new ConNguoiConNguoi(); echo $connguoi->getName(); //thành quả: Con cái Người

Hấp thụ namespace bằng use

-Nếu như khách tham quan ko mong muốn gọi namespace theo biện pháp trên thì khách tham quan dùng từ khóa use để hấp thụ theo cú pháp sau:

use tenNamespacetenClass;

Quan tâm: Khai báo hấp thụ namespace cũng phải được đặt trên đầu của một file, nếu như trong một file mang dùng namespace và use thì use sẽ được đặt dưới namespace.

VD: Bản thân sẽ dùng use để hấp thụ namespace của class ConNguoi, lúc đấy file index.php sẽ được viết lách như sau:

<?php include ‘ConNguoi.php’; use ConNguoiConNguoi; $connguoi = new ConNguoi(); echo $connguoi->getName(); //thành quả: Con cái Người

VD: Một file nhưng mang khai báo namespace và use thì sẽ viết lách như sau:

<?php namespace nguoilon; include ‘ConNguoi.php’; use ConNguoiConNguoi; class NguoiLon extends ConNguoi { //code }

4, Định danh cho namespace.

-Giả sử namespace của chúng ta rất dài hoặc vì như thế một lý do nào đấy nhưng khách tham quan ko mong muốn gọi namespace như vậy, thì PHP cũng mang phân phối cho chúng ta một phương pháp đấy là tạo định danh cho namespace.

-Để tạo định danh thế hệ cho namespace trong PHP chúng ta dùng từ khóa as với cú pháp như sau:

use tenNamespace as tenMoi;

VD: Tạo định danh cho namespace ConNguoi phía trên.

<?php include ‘ConNguoi.php’; use ConNguoi as People; $connguoi = new PeopleConNguoi(); echo $connguoi->getName(); //thành quả: Con cái Người

5, hầu hết namespace trong một file.

-Như phía trên bản thân mang nói là lúc khai báo namespace thì chúng ta phải đặt ở đầu file, nhưng nếu như ở trong một file mang nhiều namespace thì chúng ta sẽ khai báo như sau:

namespace nameone; class ClassOne { // } namespace nametwo; class ClassTwo { // }

VD:

-Tạo một file Class.php mang nội dung như sau:

<?php namespace ClassConNguoi; class ConNguoi { private $name = ‘Con cái Người’; public function getName() { return $this->name; } } namespace ClassNguoiLon; class NguoiLon { private $name = ‘Nguoi Lon’; public function getName() { return $this->name; } }

-Và chúng ta sẽ tạo một file index.php để gọi 2 class đấy như sau:.

<?php include ‘Class.php’; $connguoi = new ClassConNguoiConNguoi(); echo $connguoi->getName(); //thành quả: Con cái Người $nguoilon = new ClassNguoiLonNguoiLon(); echo $nguoilon->getName(); //thành quả: Nguoi Lon

6, Lời Kết.

-Tương tự bản thân đang trình diễn xong về namespace trong PHP rồi, kỳ vọng mọi người mang thể bắt chắc tri thức này để lúc học tập những PHP framework như Laravel, Zend,… khỏi bị kinh ngạc. Bài tiếp theo chúng ta sẽ tìm hiểu về Trait trong PHP.