Ngôn ngữ lập trình PHP

PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.

Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp.

PHP/FI

PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus Lerdorf tạo ra năm 1994, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'. Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản. Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn.

PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay. Nó có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng. Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán.

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.

PHP3

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 họ nhận 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 của cơ sở mã PHP. 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 động cơ 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 động cơ 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à nhiều 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 đã 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, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới. PHP năm 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 và SPL.

PHP 6

Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ namespace; hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL... Phiên bản 6 này chỉ dùng ở việc nghiên cứu và thử nghiệm. Sau này PHP bỏ hẳn phiên bản 6 và lên 7.

PHP 7

Với việc sử dụng bộ nhân Zend Engine mới PHPNG cho tốc độ nhanh gấp 2 lần. Ngoài ra ở phiên bản này còn thêm vào rất nhiều cú pháp, tính năng mới giúp cho PHP trở nên mạnh mẽ hơn. Những tính năng mới quan trọng có thể kể đến như:

  • Khai báo kiểu dữ liệu cho biến.
  • Xác định kiểu dữ liệu sẽ trả về cho 1 hàm.
  • Thêm các toán tử mới (??, <=>,...)

  • PHP là một ngôn ngữ lập trình kịch bản mã nguồn mở (open source scripting language). Code PHP thường được xử lý trên web server bởi trình thông dịch PHP (PHP interpreter).
  • PHP được tối ưu cho các ứng dụng web và có thể dễ dàng nhúng vào HTML.
  • PHP vay mượn cú pháp từ C, Java, Perl nên dễ học và thời gian xây dựng ứng dụng ngắn.
  • PHP là một trong những ngôn ngữ lập trình phổ biến nhất thế giới, đặc biệt trong lập trình web.

Từ khi ra đời cho đến nay, PHP đã được sửa đổi, nâng cấp với nhiều phiên bản khác nhau. Bên dưới là tóm tắt các version đã được publish của PHP.

  • PHP/FI

Là viết tắt của Personal Home Page/Forms Interpreter, bao gồm các chức năng cơ bản của PHP giúp phát triển web. Ở phiên bản này, PHP có thể làm việc với Form và HML cũng như kết nối với các database.

  • PHP/FI 2.0

Ra đời năm 1997, bắt đầu được sử dụng cho nhiều website. Sau đó, PHP/FI 2.0 được thay thế bởi PHP 3.

  • PHP 3

Phiên bản này hỗ trợ làm việc với nhiều database, xây dựng nhiều API, hỗ trợ lập trình OOP và hoàn thiện cú pháp nhất quán cho PHP. Cũng với phiên bản này, PHP được đặt tên ngắn gọn là PHP là viết tắt của PHP: Hypertext Preprocessor.

  • PHP 4

Mục đích chính của phiên bản này là cải thiện tốc độ xử lý cho các ứng dụng phức tạp và cải thiện tính module của PHP.

  • PHP 5

Cải thiện khả năng hỗ trợ lập trình OOP, xử lý XML,… Các tính năng mới được bổ sung là Iterators, Reflection. Đặc biệt, kết nối và thao tác database với PDO được giới thiệu.

  • PHP 6

Có những tính năng và thay đổi nhỏ như hỗ trợ namespace, hỗ trợ Unicode,…Phiên bản này chủ yếu dùng để thử nghiệm và nghiên cứu.

  • PHP 7

Sử dụng Zend Engine giúp cho PHP tăng tốc độ lên gấp 2 lần cùng nhiều tính năng mới cũng được bổ sung.

  • PHP 8

PHP 8 được phát hành vào năm 2020. Đây là một bản cập nhật lớn của ngôn ngữ PHP. PHP 8 có nhiều tính năng và tối ưu hóa mới bao gồm JIT (Just In Time), named arguments, union types, attributes, match expression, nullsafe operator,…

5.1. Ưu điểm

  • Sử dụng mã nguồn mở: Việc cài đặt cũng như sử dụng ngôn ngữ lập trình PHP rất dễ dàng và hoàn toàn miễn phí dành cho tất cả mọi người. Vì vậy nên ngôn ngữ này luôn được cài đặt rất nhiều trên các Web Server như: IIS, Apache, Nginx.
  • Có tính cộng đồng cao: Do PHP là mã nguồn mở, lại dễ sử dụng nên ngôn ngữ này được ưa chuộng từ cộng đồng các lập trình viên. Cộng đồng ngôn ngữ này rất rộng rãi và đảm bảo được tính chất lượng. Đã có không ít diễn đàn, Blog, website trong và ngoài nước giải thích về ngôn ngữ này nên khả năng tiếp cận của mọi người sẽ dễ dàng và nhanh chóng hơn.
  • Hệ thống thư viện phong phú: Do lượng người dùng nhiều nên thư viện của ngôn ngữ PHP ngày càng được phát triển và mở rộng. Với thư viện Code hay hàm phong phú sẽ giúp cho việc học tập hoặc viết các ứng dụng PHP trở nên dễ dàng và nhanh chóng. Do đó, đây chính là đặc điểm làm cho ngôn ngữ này trở nên nổi bật. Ngôn ngữ PHP có thể kết hợp với những cơ sở dữ liệu lớn hơn như: Oracle, MySQL, Cassandra.
  • Tính bảo mật: Do đây là mã nguồn mở, đồng thời được sự hỗ trợ của cộng đồng các lập trình nên ngôn ngữ lập trình PHP sẽ an toàn khi sử dụng. Khi kết hợp với kỹ thuật bảo mật ở các tầng khác nhau thì ngôn ngữ lập trình sẽ chắc chắn và đảm bảo được hoạt động của website.

5.2. Nhược điểm

Cấu trúc ngữ pháp chính là vấn đề mà một người dùng tiếp xúc với ngôn ngữ này. PHP không được đẹp mắt và gọn gàng như các loại ngôn ngữ lập trình khác và chỉ hoạt động được trên các ứng dụng web.

  • Thiết lập các chương trình cho hệ thống máy chủ

Ứng dụng chủ yếu của PHP đó chính là việc xây dựng nên các chương trình dành cho các server máy chủ. Để có thể viết nên các chương trình chạy được trên máy chủ thì các lập trình viên sẽ phải thực hiện các công việc như: xây dựng máy chủ web, phân tích cú pháp ngôn ngữ lập trình PHP, trình duyệt web. Các lập trình viên có thể xây dựng output này bằng các trình duyệt web phổ biến.

  • Tạo các dòng tập lệnh

Các ngôn ngữ PHP Dev có thể tạo nên dòng tập lệnh để chạy các chương trình PHP mà không cần bất cứ một máy chủ nào. Lập trình này được sử dụng trên các hệ điều hành như: Các trình lập tác vụ trên Windows, Linux.

  • Xây dựng ứng dụng làm việc

Từ những điểm mạnh vốn có của PHP, có thể đây chưa là phương thức tốt nhất để xây dựng ứng dụng phần mềm nhưng nếu như muốn đi sâu hơn vào tạo lập phần mềm từ PHP thì bạn cũng có thể sử dụng PHP – GTK như một ngôn ngữ nền tảng để xây dựng phần mềm của riêng mình. PHP – GTK là nhánh mở rộng của ngôn ngữ lập trình này, nó cũng không có sẵn trong các phiên bản hiện nay.

  • Hỗ trợ cho một loại cơ sở dữ liệu khác nhau

Đây chính là ứng dụng mạnh nhất của PHP. Nếu trang web được hỗ trợ cơ sở dữ liệu tốt sẽ giúp ích rất nhiều đến việc vận hành cũng như backup dữ liệu nếu không may xảy ra tình huống tấn công an ninh mạng xảy ra.

Hiện nay, ngôn ngữ PHP được sử dụng trên hầu hết các hệ điều hành phổ biến trên thị trường như: Microsoft Windows, Linux, macOS…. Vì vậy, các DEV có thể tự quyết định, lựa chọn cho mình một hệ điều hành tự lập trình. Như vậy, ngôn ngữ lập trình PHP đã mang lại rất nhiều lợi ích cho hoạt động công nghệ thông tin hiện nay.

PHP là một ngôn ngữ lập trình nhưng không chạy trên một trình duyệt mà chủ yếu tương thích với một máy chủ web. Nếu bạn mở một trang web bất kỳ thì máy chủ sẽ chạy tập lệnh PHP được liên kết sau đó trả lại website cho bạn.

  • HTML: Ngôn ngữ này được sử dụng nhằm tạo nên một trang web hoàn chỉnh. HTML được dùng chủ yếu để tạo cấu trúc cơ bản của một trang web. Hiện nay, hầu hết trang web nào cũng cần phải sử dụng ngôn ngữ HTML để xây dựng website.
  • CSS: CSS được sử dụng chủ yếu để trang trí cho website thêm đẹp mắt. CSS có nhiều hiệu ứng khác nhau để có thể giúp cho website của bạn trở nên đẹp mắt và thu hút nhiều lượt người xem.
  • Javascript: Ngôn ngữ này sẽ cung cấp cho website của bạn một sức mạnh nhất định. Sử dụng Javascript, các lập trình viên có thể đặt những phép tính, điều kiện khác nhau để kiểm tra khả năng phản ứng của website trong thực tế.

  • Dễ học: Bạn có thể học một cách dễ dàng bởi nó có tài liệu tuyệt vời về các chứng năng.
  • Sử dụng rộng rãi: PHP được sử dụng để tạo nên các nền tảng như: Blogs, thương mại điện tử, phương tiện truyền thông xã hội… Các thống kê cho thấy có 79% các trang web đều sử dụng PHP.
  • Chi phí thấp: PHP là mã nguồn mở và bạn có thể sử dụng nó miễn phí.
  • Cộng đồng lớn: Khi gặp phải bất cứ một vấn đề gì với nó, bạn sẽ không phải lo lắng bởi có rất nhiều Blog PHP trên internet để bạn trao đổi và hỏi.
  • Có khả năng tích hợp với cơ sở dữ liệu như: Oracle, Sybase, MySQL, DB2…