Namespaces được tạo ra như 1 phần của PHP 5.3 để giải quyết xung đột có thể xảy ra khi 2 class có cùng một tên. Tình trạng này xảy ra thường xuyên hơn là bạn nghĩ. Bài này giới thiệu cho bạn cách sử dụng namespace để giải quyết vấn đề này. Bao gồm vài code ví dụ để dễ hiểu hơn.
Mở đầu
Nếu bạn là một lập trình viên PHP có kinh nghiệm, bạn sẽ biết chắc rằng để xây dựng ứng dụng web theo mô hình hướng đối tượng (Object-Oriented) một cách tốt sẽ có thể là một quá trình khó khăn, ít nhất là trong giai đoạn đầu. Tuy nhiên khi bạn đã nắm vững các khái niệm quan trọng xung quanh cách sử dụng các phương pháp tiếp cận này thì làm việc với class sẽ trở nên quen thuộc với bạn để có thể nhanh chóng bắt đầu phát triển các ứng dụng PHP phức tạp hơn.
Sự thật là nhiều thứ có thể phức tạp hơn khi bạn bắt đầu sử dụng class của phía thứ 3 hoặc thậm chí toàn bộ framework. Ví dụ, nói rằng bạn đã tạo ra một class cơ sở dữ liệu gọi là "MySQL," để xử lý tất cả các quá trình giao tiếp với cơ sở dữ liệu của bạn.
Cho đến nay, class này không xung đột, phải không? Nhưng, kịch bản này có thể thay đổi tệ hơn nếu bạn quyết định sử dụng ứng dụng forum của lập trình viên khác viết ra, mà nó cũng có class có tên "MySQL." Bất cứ khi nào bạn cố gắng sử dụng các class của forum và class của bạn đồng thời trình thông dịch PHP thông dịch viên sẽ "hét âm ĩ" với bạn rằng bạn đang sử dụng 2 class trùng tên
Tất nhiên, bạn có thể giải quyết vấn đề này bằng cách đổi tên của một trong những class gây xung đột, nhưng đôi khi quá trình này có thể là một ác mộng thực sự, hoặc chỉ đơn giản là một giải pháp không khả thi. Tuy nhiên, không phải tất cả đều bị mất trong trường hợp này, bởi vì với việc phát hành 5.3 PHP, vấn đề này có thể được giải quyết một cách dễ dàng bằng namespaces.
Bằng cách sử dụng tính năng này, có thể để xác định rằng một hoặc nhiều PHP class phải thuộc về một namespace, mà nên tránh đặt tên một xung đột giữa các class như một trong những mô tả ở trên. Trong trường hợp cụ thể này, bạn có thể chỉ ra rằng class MySQL của bạn là hợp lệ trong một namespace là "general", trong khi các class của forum sẽ có hiệu lực trong một "forum" namespace.
Hiểu cách namespace hoạt động trong PHP 5 đơn thuần đòi hỏi nhiều hơn lý thuyết đơn giản. Vì vậy bài viết sẽ có một số mẫu code ví dụ, với hy vọng sẽ giúp bạn tìm hiểu làm thế nào để sử dụng tính năng hữu ích này các ứng dụng PHP của bạn sắp tới
Sự cần thiết sử dụng namespace trong PHP 5
Một cách hay để bắt đầu giải thích làm thế nào để sử dụng namespaces với PHP 5 bao gồm việc (recreating a simple - yet potentially real -- situation)(không dịch), nơi tên của một class có thể được chia sẻ với cái khác. Trong trường hợp này, giả sử rằng có một class gọi là "User" lưu trữ các thông tin do người sử dụng cung cấp, chẳng hạn như họ và tên, cũng như các địa chỉ email.
Các mẫu của class như miêu tả ở trên có dạng như sau:
- // define 'User' class
- class User{
- private $firstName;
- private $lastName;
- private $email;
- public function __construct($firstName,$lastName,$email){
- if(!$firstName||strlen($firstName)>32){
- throw new Exception('Invalid First Name parameter!');
- }
- if(!$lastName||strlen($lastName)>32){
- throw new Exception('Invalid Last Name parameter!');
- }
- if(!$email||!preg_match("/^.+@.+..+$/",$email)){
- throw new Exception('Invalid Email parameter!');
- }
- $this->firstName=$firstName;
- $this->lastName=$lastName;
- $this->email=$email;
- }
- // get user's first name
- public function getFirstName(){
- return $this->firstName;
- }
- // get user's last name
- public function getLastName(){
- return $this->lastName;
- }
- // get user's email
- public function getEmail(){
- return $this->email;
- }
- }
Chắc chắn, dấu hiệu của class "User" bên trên là khá dễ dàng nắm bắt, từ class này đơn giản lưu tên đầy đủ và địa chỉ email của một người sử dụng giả định ở một số đặc điểm. Ngoài ra, class thực hiện một số quyền, sử dụng trực tiếp để lấy các giá trị của các đặc điểm khi được yêu cầu.
Bây giờ bạn đã thấy được cách định nghĩa một class đơn giản, đây là một ví dụ chứng minh cách làm thế nào để sử dụng trong trường hợp cụ thể. Vui lòng xem code ví dụ :
- // example on using the previous 'User' class without namespaces
- try{
- // create new instance of 'User' class
- $user=new User('Alejandro','Gervasio',' Địa chỉ email này đã được bảo vệ từ spam bots, bạn cần kích hoạt Javascript để xem nó. ');
- // display user data
- echo 'First Name: '.$user->getFirstName().'';
- echo 'Last Name: '.$user->getLastName().'';
- echo 'Email: '.$user->getEmail().'';
- }
- Nguồn www.opensource.com.vn/opensource/programming/php/62-su-dung- namespaces-trong-php5.html
| Lập trình PHP Calculator < Lùi | Tiếp theo > Sắp xếp mảng trong PHP |
|---|
Tags:
Tin mới hơn:
- 12/03/2009 19:09 - Sửa lỗi Headers Already Sent
- 09/03/2009 13:07 - Gửi email bằng PHP
- 23/02/2009 19:45 - Kết nối FTP bằng PHP
- 22/02/2009 12:58 - Tạo bộ đếm Simple Text Counters
- 22/02/2009 12:47 - Lập trình PHP Calculator
Tin cũ hơn:
- 14/02/2009 11:11 - Sắp xếp mảng trong PHP
- 25/01/2009 23:07 - Hướng dẫn cài đặt uCash, uShop cho VBB forum phần 2
- 25/01/2009 23:05 - Hướng dẫn Install uCash & uShop cho vbb forum
- 19/01/2009 10:15 - Tìm hiểu thư viện ZendFramework phần 2
- 19/01/2009 09:56 - Tìm hiểu thư viện ZendFramework phần 1
Download Game bóng đá PES8 Việt Nam
Tải game bóng đá FiFa 09
Tải game Dragon ball Z - 7 viên ngọc rồng
Tải Game Bóng Đá Pro Evolution Soccer 6 Việt Nam
Download PES 2011 patch Việt Nam PESVN
Tải Game Bóng Đá FIFA 2009 RIP 1 CD
Download Pro Evolution Soccer 2011
Download Game THE SIMS 3
Tải Game bóng đá PES 2009
Download PES 2011 demo
Thay đổi màn hình đăng nhập Windows 7 bằng tay
Một số hàm hay dùng trong JavaScript
Kiểm soát hoàn toàn trỏ chuột bằng bàn phím với NeatMouse
Choáng với concept của Windows Phone 8
Những đặc điểm ưu việt của Windows Phone
Ứng dụng gọi điện VoIP Viber sắp có mặt trên Windows Phone
Game Diablo 3 sắp có mặt trên Windows Phone Marketplace
37 trang css & xhtml web template miễn phí tuyệt đẹp
Những điều cơ bản cần biết về bàn phím chơi game - Gaming Keyboard
L.A. Noire: The Complete Edition - THETA [Full ISO/Action/2011] [13.37GB]
Download 7554 demo
Download Game PC, cập nhật liên tục (torrent)
PES 2012 ra mắt bản mở rộng đầu tiên vào 11/10
PES2012 - Full version - Ngôn ngữ và bình luận tiếng Anh
PES2012 - Blurry disable làm mịn đồ họa
PES 2011 PATCH 4.1 - TRANSFER UPDATE - RELEASED
Bộ sưu tập free PrestaShop Themes phần 3
Bộ sưu tập theme Prestashop miễn phí phần 2
Top 10 Free PrestaShop Themes
Download Prestashop 1.5
Download PrestaShop 1.4
Bổ sung Memcached vào PrestaShop 1.4
Hướng dẫn tích hợp Ngân Lượng vào PrestaShop
Sửa lỗi invalid carrier or no carrier selected trong PrestaShop
Cài đặt PrestaShop
Thiết kế giao diện PrestaShop Theme
Hướng dẫn cài đặt themes trong PrestaShop
Hướng dẫn cách thêm ngôn ngữ cho PrestaShop
Bộ sưu tập Giao diện Premium PrestaShop Themes chuyên nghiệp
Giới thiệu về website thương mại điện tử 2.0 Prestashop
10 smartphone “bom xịt” năm 2010
Pro Evolution Soccer 2010 - Sự trở lại của vị vua [RELOADED][PC Game]
Bài 1: Làm quen với hệ quản trị cơ sở dữ liệu Microsoft Access


