Ưu điểm của không gian tên trong PHP

Thông thường, bạn sẽ kết thúc bằng việc sử dụng các thư viện của bên thứ ba từ các nhà cung cấp khác nhau trong các ứng dụng PHP của mình. Bây giờ, có thể xảy ra xung đột giữa hai hoặc nhiều thư viện nếu thư viện cố gắng sử dụng lại tên đã được thư viện khác sử dụng trong ứng dụng của bạn. Như bạn có thể biết, nếu bạn có một lớp, hàm hoặc hằng số được khai báo ở đâu đó trong mã của mình, thì bạn không thể có một cái khác có cùng tên ở nơi khác. Nếu có xung đột tên, nó sẽ phá vỡ ứng dụng của bạn

Trước khi giới thiệu các không gian tên trong PHP, các nhà phát triển đã giải quyết vấn đề này bằng cách giới thiệu các kỹ thuật khác nhau để ngăn xung đột tên. Một giải pháp phổ biến là sử dụng tên lớp và hàm dài. Ví dụ: để giới thiệu lớp


37 trong thư viện của họ, họ sẽ thêm tiền tố vào tên nhà cung cấp và do đó, nó sẽ trở thành như thế nào

38. Nếu bạn đã viết mã trong WordPress hoặc khung công tác Zend, tôi chắc rằng bạn đã nhận thấy những cách làm như vậy

Để giải quyết vấn đề này, các không gian tên đã được giới thiệu trong PHP kể từ PHP 5. 3. Cách tốt nhất để hiểu các không gian tên là tương tự như khái niệm cấu trúc thư mục trong một hệ thống tập tin. Thư mục được sử dụng để nhóm các tệp liên quan phục vụ mục đích của một không gian tên. Bạn không thể có hai tệp có cùng tên trong cùng một thư mục, nhưng bạn có thể có các tệp có cùng tên trong các thư mục khác nhau. Không gian tên bắt chước nguyên tắc tương tự trong PHP

Về cơ bản, các không gian tên cung cấp một cách để nhóm các mục có liên quan lại với nhau, tránh mọi xung đột tên có thể xảy ra. Không còn nghi ngờ gì nữa, đây hóa ra là một trong những thay đổi quan trọng nhất gần đây trong PHP. Trên thực tế, phần lớn các nhà cung cấp thư viện và khung của bên thứ ba đã điều chỉnh các không gian tên trong cơ sở mã của họ.  

Đó là một lời giải thích ngắn gọn về không gian tên là gì. Chúng ta sẽ xem cách sử dụng chúng trong vài phần tiếp theo

Cách hoạt động của không gian tên trong PHP

Trong phần này, bạn sẽ thấy cách bạn có thể xác định một không gian tên và nhóm các mục liên quan bên dưới nó

Xác định không gian tên và không gian tên phụ

Điều đầu tiên cần làm là xác định một không gian tên với từ khóa


39 ở đầu tệp PHP. Tất cả mã bên dưới từ khóa

39 trở thành mã được đặt tên. Điều quan trọng cần lưu ý là từ khóa này phải được đặt ở đầu tệp, đảm bảo rằng không có gì đứng trước nó. Ngoại lệ duy nhất là cấu trúc

41 mà bạn có thể sử dụng trước khi xác định không gian tên

Hãy xem nhanh đoạn mã sau, đoạn mã này minh họa cách xác định một không gian tên

1

2
namespace Tutsplus;
3
4
// code which is defined here belongs to the Tutsplus namespace

5
?>

Như bạn có thể thấy, ví dụ trên xác định không gian tên


42. Mã được xác định sau câu lệnh

43 thuộc về không gian tên

42. Bạn không thể truy cập mã này trực tiếp theo cách chúng tôi đã sử dụng trước khi không gian tên được giới thiệu. Chúng ta sẽ xem cách gọi mã không gian tên trong phần tiếp theo

Để tổ chức mã của bạn theo cách tốt hơn, PHP cho phép bạn xác định hệ thống phân cấp không gian tên để bạn có thể phân chia và tổ chức mã của mình một cách hợp lý. chúng được gọi là không gian tên phụ

Hãy sửa lại ví dụ trước

1

2

2
3
4

5
5
?>

Trong ví dụ trên, mã thuộc về không gian tên phụ


45. Trên thực tế, bạn có thể xác định nhiều không gian tên phụ để phân chia mã của mình trên thư viện, chẳng hạn như. g.

45, 

47, 

48, v.v.

Trên thực tế, bạn sẽ thấy rằng các nhà phát triển luôn thiết kế cấu trúc thư mục theo cách bắt chước và song hành với các không gian tên phụ. Ví dụ: lớp


49 được xác định trong không gian tên

50 được cho là được tìm thấy trong thư mục 

51. Không gian tên phụ thực sự hữu ích khi tổ chức mã của bạn

Cách sử dụng không gian tên

Trong phần trước, chúng ta đã thảo luận về không gian tên và không gian tên phụ để hiểu cách bạn có thể viết mã không gian tên. Trong phần này, chúng ta sẽ xem cách gọi mã không gian tên

Xem xét ví dụ sau, định nghĩa không gian tên


45. Giả sử nó nằm trong mylib. tập tin php

1

2
2
1
3

2
4
5
2
6
2
7
2
8
2
9
namespace Tutsplus;
0
namespace Tutsplus;
1
namespace Tutsplus;
2
namespace Tutsplus;
3
namespace Tutsplus;
4
namespace Tutsplus;
5
namespace Tutsplus;
6
namespace Tutsplus;
7
namespace Tutsplus;
8
namespace Tutsplus;
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
namespace Tutsplus;
8
3
8
3
9
4
0
4
1
4
2
4
3
?>

Như bạn có thể thấy, đoạn mã này định nghĩa một lớp, một hàm và một hằng số trong không gian tên


45

Ví dụ sau minh họa cách sử dụng mã không gian tên được xác định trong mylib. php

1
________0____7_______
4
8_______9_______
// code which is defined here belongs to the Tutsplus namespace

0_______10__________
5
11_______3
2
7
// code which is defined here belongs to the Tutsplus namespace

5
2
9
namespace Tutsplus;
1
// code which is defined here belongs to the Tutsplus namespace

8
namespace Tutsplus;
3
5
0
namespace Tutsplus;
5
namespace Tutsplus;
7
5
3_______8_______9_______12_______5_______ 9_______1

Đầu tiên, chúng tôi đã bao gồm mylib. php bằng cách sử dụng câu lệnh


54

Tiếp theo, chúng tôi đã sử dụng tên lớp đủ điều kiện (không gian tên) để khởi tạo lớp


55. Nếu bạn sử dụng

56 thay vì 

57 thì sẽ dẫn đến một lỗi nghiêm trọng.  

Vì chúng tôi chưa xác định bất kỳ không gian tên nào trong ứng dụng. php, mã thuộc về không gian tên chung. Vì vậy, bạn không thể truy cập lớp


55 mà không có tham chiếu không gian tên. Lưu ý rằng bạn có thể truy cập lớp 

55 từ bên trong không gian tên 

45 mà không cần tên đủ điều kiện

Tất nhiên, khi các không gian tên không được xác định, các lớp, hàm và hằng số được đặt trong không gian chung và hoạt động giống như trước khi các không gian tên được hỗ trợ

Cách nhập không gian tên

Như bạn đã thấy trong phần trước, bạn cần sử dụng tên đủ điều kiện để tham chiếu các mục được đặt tên. Giờ đây, việc sử dụng các tên đủ điều kiện ở mọi nơi bạn muốn tham chiếu đến một mục được đặt tên là thực sự cồng kềnh

May mắn thay, bạn có thể nhập các không gian tên bằng toán tử


61, do đó không cần phải chỉ định các tên đủ điều kiện

Hãy nhanh chóng sửa đổi ứng dụng. php để minh họa cách bạn có thể sử dụng tính năng nhập

1

2
4
8
3
?>
3
4
___
5
11_______0
2
7
2
9
// code which is defined here belongs to the Tutsplus namespace

3
namespace Tutsplus;
1
1
1
namespace Tutsplus;
3
namespace Tutsplus;
5
// code which is defined here belongs to the Tutsplus namespace

8
namespace Tutsplus;
7
1
6_______8_______9_______9_______0_______12_______3_______9_______1_______ 4

Trong ví dụ trên, chúng tôi đã nhập không gian tên


45. Giờ đây, bạn chỉ cần thêm tiền tố

63 khi gọi các mục được đặt tên và nó sẽ tự động được chuyển đổi thành tên đủ điều kiện

Bí danh không gian tên

Bí danh tương tự như nhập, nhưng nó cho phép bạn tham chiếu các không gian tên dài bằng cách chỉ định một tên ngắn hơn

Cách tốt nhất để hiểu nó là đi qua một ví dụ

1

2
4
8
3

09
4

11
5
2
7
// code which is defined here belongs to the Tutsplus namespace

0
2
9
namespace Tutsplus;
1

17
namespace Tutsplus;
3

19
namespace Tutsplus;
5
namespace Tutsplus;
7

22
namespace Tutsplus;
9

24
3
0
3
2
// code which is defined here belongs to the Tutsplus namespace

8
3
4

29
3
6
3
8
5
3
3
9

34
4
1
?>

Như bạn có thể thấy trong ví dụ trên, chúng tôi đã tạo bí danh


64 cho không gian tên

45 và do đó bạn có thể sử dụng nó thay vì chỉ định tên đủ điều kiện

Trên thực tế, bí danh thực sự hữu ích khi tạo bí danh cho các lớp và giao diện. Trong ví dụ trên, chúng tôi cũng đã tạo bí danh


66 cho lớp

55 thuộc không gian tên

45. Vì vậy, bạn chỉ cần sử dụng 

56 để khởi tạo lớp

70, cải thiện khả năng đọc của mã

Không gian tên thực sự hữu ích khi cấu trúc cơ sở mã của bạn, cùng với những lợi ích rõ ràng khác mà chúng mang lại. Đối với các nhà phát triển PHP, không gian tên là một tính năng chính để tìm hiểu và sử dụng

Phần kết luận

Trong bài viết này, chúng ta đã thảo luận về một trong những tính năng mới hữu ích nhất trong PHP, được giới thiệu kể từ PHP 5. 3. không gian tên. Bắt đầu với những điều cơ bản, chúng tôi đã trải qua các chủ đề khác nhau như cách sử dụng, nhập và bí danh không gian tên

Học PHP với một khóa học trực tuyến miễn phí

Nếu bạn muốn học PHP, hãy xem khóa học trực tuyến miễn phí của chúng tôi về các nguyên tắc cơ bản của PHP

Ưu điểm của không gian tên trong PHP

Trong khóa học này, bạn sẽ học các nguyên tắc cơ bản của lập trình PHP. Bạn sẽ bắt đầu với những kiến ​​thức cơ bản, học cách PHP hoạt động và viết các hàm và vòng lặp PHP đơn giản. Sau đó, bạn sẽ xây dựng các lớp mã hóa để lập trình hướng đối tượng đơn giản (OOP). Đồng thời, bạn sẽ học tất cả các kỹ năng quan trọng nhất để viết ứng dụng cho web. bạn sẽ có cơ hội thực hành phản hồi các yêu cầu GET và POST, phân tích cú pháp JSON, xác thực người dùng và sử dụng cơ sở dữ liệu MySQL

  • Ưu điểm của không gian tên trong PHP
    Ưu điểm của không gian tên trong PHP
    Ưu điểm của không gian tên trong PHP

    Nguyên tắc cơ bản PHP

    Ưu điểm của không gian tên trong PHP
    Ưu điểm của không gian tên trong PHP
    Ưu điểm của không gian tên trong PHP

    Jeremy McPeak

    29 Thg 10 2021

Tập lệnh PHP tốt nhất trên CodeCanyon

Nếu bạn muốn tạo các tính năng chuyên biệt trong ứng dụng PHP của mình hoặc để tải xuống các ứng dụng hoàn chỉnh mà bạn có thể sử dụng và tùy chỉnh, hãy xem các tập lệnh PHP chuyên nghiệp trên CodeCanyon

Lợi thế của không gian tên là gì?

Ưu điểm lớn nhất của việc sử dụng không gian tên là các tên lớp được khai báo trong một không gian tên này sẽ không xung đột với các tên lớp tương tự được khai báo trong một không gian tên khác. It is also referred as named group of classes having common features.

Sự khác biệt giữa sử dụng và không gian tên trong PHP là gì?

Không gian tên là để tránh xung đột tên lớp, vì vậy bạn có thể có hai tên lớp giống nhau dưới hai không gian tên khác nhau. Sử dụng giống như PHP bao gồm . Vui lòng đăng nhập hoặc tạo tài khoản để tham gia vào cuộc trò chuyện này.

Tại sao chúng ta sử dụng không gian tên trong laravel?

Không gian tên cho phép bạn phân vùng mã thành các nhóm logic bằng cách xác định chúng vào “không gian tên” của riêng chúng . Một chuỗi văn bản sau từ khóa "không gian tên" xác định không gian tên và tất cả mã bên dưới nó sẽ nằm trong không gian tên đó. Không gian tên cũng cung cấp một cách để nhóm các hàm và hằng số của giao diện.

Sự khác biệt giữa không gian tên và lớp là gì?

Không gian tên và các lớp là hai khái niệm khác nhau. Các lớp là kiểu dữ liệu. Các lớp về cơ bản là phiên bản mở rộng của các cấu trúc. Các lớp có thể chứa các thành viên dữ liệu và các hàm với tư cách là thành viên, nhưng các không gian tên có thể chứa các biến và hàm bằng cách nhóm chúng thành một