Học Lập Trình PHP Cơ Bản

0
25

Bước vào thế giới của những lập trình viên, đặc biệt là ngôn ngữ PhP chắc hẳn những người mới không khỏi bỡ ngỡ vì có quá nhiều ngôn ngữ lập trình. Tôi muốn chia sẻ với các bạn một số khái niệm về học lập trình PHP cơ bản.

1. PHP là gì?

PHP (viết tắt của Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản (scripting language), một loại mã lệnh chủ yếu được dùng để phát triển các trang web động. Khác với các ngôn ngữ client-side, như Javascript, mã lệnh PHP được thực thi ở phía server sau đó mã HTML, được trả về cho trình duyệt (client). Cú pháp PHP được vay mượn nhiều từ C và Java, nên bạn sẽ nhanh chóng tiếp cận với nó nếu đã học qua các ngôn ngữ kia. Tuy nhiên, nếu chưa học cũng không sao, bởi PHP không quá khó đối với tất cả mọi người, ngay cả đối với những người không phải là lập trình viên chuyên nghiệp.

Nếu muốn xây dựng cho mình một trang web động bằng PHP, bạn hãy truy cập ngay vào trang chủ của PHP tại địa chỉ http://www.php.net. Tại đây, các bạn có thể tham gia một khóa học ngắn về PHP, các kiến thức về PHP như hướng đối tượng, mảng, biến, hàm… được hệ thống một cách khá đầy đủ, cùng với những ví dụ minh họa dễ hiểu, sẽ giúp bạn nhanh chóng làm quen với PHP.

2. Lịch sử phát triển

PHP mà chúng ta biết đến ngày nay là sự kế thừa của một sản phẩm có tên là PHP/FI. Được viết bởi Rasmus Lerdorf, bản PHP đầu tiên là một tập hợp đơn giản các Common Gateway Interface (CGI) – một chuẩn giao tiếp giữa client và server – nhị phân viết bằng ngôn ngữ C. Ban đầu, Rasmus sử dụng nó để theo dõi người dùng truy cập vào hồ sơ cá nhân trên internet của mình. Vì vậy, ông đặt tên nó là “Personal Home Page Tools”. Theo thời gian, nhiều tính năng mới được thêm vào, và Rasmus đã viết lại PHP Tools này, tạo ra một công cụ lớn hơn và phong phú hơn về tính năng. Mô hình mới này có khả năng tương tác với cơ sở dữ liệu, và hơn nữa, nó giúp cho người dùng, có thể tạo ra một ứng dụng web động, ví dụ như guestbooks. Tháng 6/1995, Rasmus public mã nguồn của PHP Tools ra cộng đồng, cho phép các nhà phát triển có thể sử dụng và phát triển nó – một cách miễn phí.
Tháng 9/1995, Rasmus mở rộng PHP, thêm vào công cụ có tên là FI (Forms Interpreter), và một số chức năng như chúng ta biết ngày nay. Nó có các biến kiểu Perl và cú pháp cho phép nhúng mã HTML. Cú pháp này, tương tự Perl, nhưng hạn chế hơn, đơn giản và có phần không phù hợp. Trong thực tế, để nhúng mã lệnh PHP/FI vào một tập tin HTML, các lập trình viên phải sử dụng các comment HTML. Và mặc dù phương pháp này không được hoàn toàn đón nhận, FI vẫn tiếp tục phát triển và đem về lợi nhuận thương mại.

Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet. Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người.

PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0.

PHP 3
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó. Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại học. Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0.
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh mẽ của nó. Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng mới. Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0. Các tính năng khác được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác.
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc. Nó đã được đặt tên ngắn gọn là ‘PHP’, một kiểu viết tắt hồi quy của “PHP: Hypertext Preprocessor”.
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó. Vào thời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet.
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm.

PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun (modularity) của mã PHP gốc. Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này một cách có hiệu quả.
Một “cỗ máy” mới, có tên ‘Zend Engine’ (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên “cỗ máy” này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời. Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới.
Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet.
Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người, và hàng nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu kĩ thuật cho PHP.

PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn.Cộng đồng php đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0. Một thảo luận trên Slashdot.org đã cho thấy việc phát triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng Internet vào khoảng tháng 7 năm 2002. Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. Đó cũng là phiên bản đầu tiên của Zend Engine 2.0. Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT (Extensible Stylesheet Language Transformation), sửa chữa nhiều lỗi và thêm khá nhiều hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP.
Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn. Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams.

3. PHP có thể làm được những gì?

PHP chủ yếu tập trung vào kịch bản phía máy chủ, vì vậy bạn có thể làm bất cứ điều gì mà các chương trình CGI khác có thể làm. Chẳng hạn như thu thập dữ liệu, tạo ra các trang web động, gửi và nhận cookie… Tuy nhiên, PHP có thể làm nhiều hơn như vậy.

Có ba lĩnh vực chính mà mã PHP được sử dụng:
• Kịch bản phía máy chủ (Server-side scripting). Đây là mục tiêu chính mà PHP hướng tới. Để làm được điều này, bạn cần 3 công cụ sau: trình thông dịch PHP, web server và trình duyệt web. Bạn phải chạy web server (đã được cài đặt PHP), sau đó chạy file PHP của mình, và cuối cùng là tận hưởng thành quả mà web server trả về trên trình duyệt.
• Command line scripting (kịch bản cho Command line): bạn có thể chạy một kịch bản PHP mà không cần máy chủ hay trình duyệt web nào. Để chạy kịch bản PHP với Command line, bạn chỉ cần duy nhất 1 thứ, đó là trình thông dịch PHP. Loại kịch bản này rất lý tưởng cho các tác vụ được chạy một cách tự động, theo một lịch trình được định sẵn, bằng cách sử dụng cron (trên Linux) hoặc Task Scheduler (trên Windows).
• Dùng để viết ứng dụng desktop: PHP có lẽ không phải là ngôn ngữ tốt để tạo ra các desktop application với một giao diện đồ họa bắt mắt, thân thiện như C#, Java, VB… Nhưng nếu bạn muốn tạo cho mình 1 ứng dụng desktop viết bằng PHP, hãy sử dụng PHP-GTK. Đây là một tiện ích mở rộng (extension) của PHP, cho phép người dùng tạo ra các ứng dụng desktop với giao diện đồ họa khá bắt mắt. Bạn có thể download PHP-GTK tại địa chỉ http://gtk.php.net/download.php. Phiên bản mới nhất hiện tại là PHP-GTK 2.0 và yêu cầu cài đặt PHP 5.1.x trở lên.

PHP có thể chạy được trên tất cả các hệ điều hành, bao gồm cả Linux, nhiều phiên bản của Unix (bao gồm cả HP-UX, Solaris và OpenBSD), Microsoft Windows, Mac OS X, RISC OS, và nhiều hệ điều hành khác. PHP cũng đã hỗ trợ cho hầu hết các máy chủ web ngày nay (bao gồm Apache, IIS và nhiều máy chủ web khác). Vì vậy, bạn có quyền tự do lựa chọn một hệ điều hành và một máy chủ web. Hơn nữa, bạn có thể lựa chọn sử dụng lập trình hướng thủ tục, hoặc lập trình hướng đối tượng (OOP – Object Oriented Program) bởi OOP đã được hỗ trợ từ PHP 5 trở đi, hoặc hỗn hợp cả hai.

Với PHP, khả năng tạo dữ liệu đầu ra HTML là không giới hạn. Bạn có thể xuất văn bản, hình ảnh, tập tin PDF, audio hay thậm chí cả phim flash (bằng cách sử dụng libswf và Ming). PHP có thể tự động tạo (autogenerate) những tập tin này, lưu chúng trong hệ thống tập tin và tạo thành một bộ nhớ cache phía máy chủ cho trang web của bạn.

Một trong những tính năng mạnh nhất và quan trọng nhất của PHP là hỗ trợ một loạt các hệ quản trị cơ sở dữ liệu (CSDL), như MySql, MSSQL, mSQL, PostgreSQL, SQLite… Và tương ứng với mỗi hệ quản trị đó, là một driver để kết nối PHP với chúng, ví dụ ODBC cho MSSQL…

PHP cũng đã hỗ trợ giao tiếp với các dịch vụ sử dụng các giao thức khác nhau như LDAP, IMAP, SNMP, NNTP, POP3, COM… và nhiều giao thức khác. PHP cũng hỗ trợ WDDX, giúp trao đổi dữ liệu giữa hầu hết các ngôn ngữ lập trình web.

4. Zend framework

Zend framework là một thư viện mã nguồn mở để phát triển ứng dụng web và các dịch vụ với PHP 5. Zend framework sử dụng 100% mã hướng đối tượng, những thành phần của nó gần như là độc lập, ít phụ thuộc vào các thành phần khác.

Các thành phần trong thư viện Zend framework, mặc dù có thể được sử dụng riêng rẽ, nhưng chúng là một khung ứng dụng web vô cùng mạnh mẽ với khả năng mở rộng tuyệt vời khi kết hợp. Zend framework cung cấp một mô hình MVC (Model- View- Controller) mạnh mẽ, hiệu suất cao, và một cơ sở dữ liệu trừu tượng tương đối dễ sử dụng; các form HTML; các phương thức xác thực, lọc dữ liệu… giúp lập trình viên có thể dẽ dàng phát triển một ứng dụng. Các thành phần khác, chẳng hạn Zend_Acl và Zend_Auth, cung cấp giúp lập trình viên dễ dàng quản lý việc xác thực người dùng cho các ứng dụng web thương mại.

Nhà tài trợ chính cho dự án Zend Framework là Zend Technologies.Inc, nhưng cũng có nhiều công ty đã đóng góp những thành phần hoặc tính năng quan trọng cho Zend, như IBM, Google, Microsoft, Adobe và StrikeIron. Bên cạnh đó, vì là mã nguồn mở, Zend framework có một cộng đồng phát triển vô cùng rộng lớn. Trên các kênh IRC, các diễn đàn, bất cứ câu hỏi nào của bạn về Zend framework cũng sẽ ngay lập tức nhận được sự giải đáp.

Nguồn tham khảo: www.php.net, www.zend.com

 

Facebook Comments