Sử dụng Namespaces trong PHP5
Số trang: 6
Loại file: pdf
Dung lượng: 122.43 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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à...
Nội dung trích xuất từ tài liệu:
Sử dụng Namespaces trong PHP5 Sử dụng Namespaces trong PHP5Namespaces đượ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ở đầuNế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ộtcách tốt sẽ có thể là một quá trình khó khăn, ít nhất là trong giai đoạn đầu. Tuynhiên khi bạn đã nắm vững các khái niệm quan trọng xung quanh cách sử dụngcá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ớibạ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íathứ 3 hoặc thậm chí toàn bộ framework. Ví dụ, nói rằng bạn đ ã tạo ra một classcơ 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ìnhviê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ịchPHP 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ùngtênTấ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 trongnhững class gây xung đột, nh ưng đôi khi quá trình này có thể là một ác mộngthực sự, hoặc chỉ đơn giản là một giải pháp không khả thi. Tuy nhiên, khôngphả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 PHPclass phải thuộc về một namespace, mà nên tránh đặt tên một xung đột giữacác class như một trong những mô tả ở tr ên. Trong trường hợp cụ thể này, bạncó 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 forumnamespace.Hiểu cách name space 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ụngPHP của bạn sắp tớiSự cần thiết sử dụng namespace trong PHP 5Một cách hay để bắt đầu giải thích làm thế nào để sử dụng namespaces vớiPHP 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ôngtin 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:view plaincopy to clipboardprint? 1. // define User class 2. class User{ 3. private $firstName; 4. private $lastName; 5. private $email; 6. public function __construct($firstName,$lastName,$email){ 7. if(!$firstName||strlen($firstName)>32){ 8. throw new Exception(Invalid First Name parameter!); 9. } 10. if(!$lastName||strlen($lastName)>32){ 11. throw new Exception(Invalid Last Name parameter!); 12. } 13. if(!$email||!preg_match(/^.+@.+..+$/,$email)){ 14. throw new Exception(Invalid Email parameter!); 15. } 16. $this->firstName=$firstName; 17. $this->lastName=$lastName; 18. $this->email=$email; 19. } 20. // get users first name 21. public function getFirstName(){ 22. return $this->firstName; 23. } 24. // get users last name 25. public function getLastName(){ 26. return $this->lastName; 27. } 28. // get users email 29. public function getEmail(){ 30. return $this->email; 31. } 32. }// 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 users first name public function getFirstName(){return $this->firstName;}// get users last name public funct ...
Nội dung trích xuất từ tài liệu:
Sử dụng Namespaces trong PHP5 Sử dụng Namespaces trong PHP5Namespaces đượ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ở đầuNế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ộtcách tốt sẽ có thể là một quá trình khó khăn, ít nhất là trong giai đoạn đầu. Tuynhiên khi bạn đã nắm vững các khái niệm quan trọng xung quanh cách sử dụngcá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ớibạ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íathứ 3 hoặc thậm chí toàn bộ framework. Ví dụ, nói rằng bạn đ ã tạo ra một classcơ 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ìnhviê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ịchPHP 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ùngtênTấ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 trongnhững class gây xung đột, nh ưng đôi khi quá trình này có thể là một ác mộngthực sự, hoặc chỉ đơn giản là một giải pháp không khả thi. Tuy nhiên, khôngphả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 PHPclass phải thuộc về một namespace, mà nên tránh đặt tên một xung đột giữacác class như một trong những mô tả ở tr ên. Trong trường hợp cụ thể này, bạncó 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 forumnamespace.Hiểu cách name space 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ụngPHP của bạn sắp tớiSự cần thiết sử dụng namespace trong PHP 5Một cách hay để bắt đầu giải thích làm thế nào để sử dụng namespaces vớiPHP 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ôngtin 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:view plaincopy to clipboardprint? 1. // define User class 2. class User{ 3. private $firstName; 4. private $lastName; 5. private $email; 6. public function __construct($firstName,$lastName,$email){ 7. if(!$firstName||strlen($firstName)>32){ 8. throw new Exception(Invalid First Name parameter!); 9. } 10. if(!$lastName||strlen($lastName)>32){ 11. throw new Exception(Invalid Last Name parameter!); 12. } 13. if(!$email||!preg_match(/^.+@.+..+$/,$email)){ 14. throw new Exception(Invalid Email parameter!); 15. } 16. $this->firstName=$firstName; 17. $this->lastName=$lastName; 18. $this->email=$email; 19. } 20. // get users first name 21. public function getFirstName(){ 22. return $this->firstName; 23. } 24. // get users last name 25. public function getLastName(){ 26. return $this->lastName; 27. } 28. // get users email 29. public function getEmail(){ 30. return $this->email; 31. } 32. }// 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 users first name public function getFirstName(){return $this->firstName;}// get users last name public funct ...
Tìm kiếm theo từ khóa liên quan:
Lý thuyết tin học SQL Tin học đại cương giáo trình Tin học đại cương bài giảng Tin học đại cương tài liệu Tin học đại cương lý thuyết Tin học đại cươngGợi ý tài liệu liên quan:
-
Ứng dụng công cụ Quizizz thiết kế trò chơi học tập trong giảng dạy học phần tin học đại cương
12 trang 285 0 0 -
Tài liệu hướng dẫn thực hành Tin học đại cương - ĐH Bách Khoa Hà Nội
40 trang 250 0 0 -
Giáo trình Tin học đại cương part 7
19 trang 216 0 0 -
Giáo trình Tin học đại cương: Phần 1 - ĐH Kinh tế Quốc Dân
130 trang 149 0 0 -
Giáo trình Tin học đại cương (Tái bản năm 2020): Phần 1 - PGS.TS. Nguyễn Thị Thu Thủy (Chủ biên)
105 trang 139 0 0 -
Hướng dẫn thực hành lập trình C trên Visual Studio
9 trang 125 0 0 -
Giáo trình Tin học đại cương: Phần 1 - Vi Hồng Thắm
90 trang 116 0 0 -
Trắc nghiệm và đáp án hệ cơ sở dữ liệu - ĐH Công Nghiệp Tp. Hồ Chí Minh
63 trang 108 0 0 -
Đề cương học phần Tin học đại cương
23 trang 102 0 0 -
Quản trị người dùng trong Exchange 2007 bằng Powershell
9 trang 98 0 0