PHP - Các phần mở rộng và SAPI bị loại bỏ
Xin chào các bạn đang học lập trình PHP! Tôi rất vui được hướng dẫn các bạn qua một khía cạnh quan trọng của sự phát triển PHP: các phần mở rộng và SAPI bị loại bỏ. Là một giáo viên máy tính thân thiện với nhiều năm kinh nghiệm, tôi sẽ giải thích điều này một cách đơn giản để ngay cả những người không có nền tảng lập trình cũng có thể hiểu. Vậy, hãy lấy một tách cà phê (hoặc trà, nếu bạn thích), và chúng ta cùng bắt đầu!
Các phần mở rộng bị loại bỏ
Các phần mở rộng trong PHP giống như các add-on cung cấp thêm tính năng cho ngôn ngữ. Qua thời gian, một số phần mở rộng trở nên lỗi thời hoặc không cần thiết, và PHP quyết định loại bỏ chúng. Hãy cùng nhìn vào một số phần mở rộng bị loại bỏ đáng chú ý và hiểu tại sao chúng bị loại bỏ.
1. mysql
Phần mở rộng mysql
là một trong những phần mở rộng được sử dụng rộng rãi trong các phiên bản早期的 PHP. Nó cho phép các nhà phát triển tương tác với cơ sở dữ liệu MySQL. Tuy nhiên, nó đã bị loại bỏ trong PHP 7.0 do các vấn đề an ninh và thiết kế lỗi thời.
Dưới đây là một ví dụ về cách chúng ta từng kết nối với cơ sở dữ liệu MySQL bằng phần mở rộng này:
<?php
$connection = mysql_connect("localhost", "username", "password");
mysql_select_db("my_database", $connection);
$result = mysql_query("SELECT * FROM users");
while ($row = mysql_fetch_assoc($result)) {
echo $row['name'] . "<br>";
}
mysql_close($connection);
?>
Mã này sẽ kết nối với cơ sở dữ liệu, thực hiện một truy vấn để chọn tất cả người dùng, và in tên của họ. Đơn giản, phải không? Nhưng nó có các lỗ hổng an ninh và không hỗ trợ các tính năng mới của MySQL.
2. ereg
Phần mở rộng ereg
cung cấp các hàm biểu thức chính quy. Nó bị loại bỏ trong PHP 7.0 vì nó chậm hơn và ít tính năng hơn so với phần mở rộng PCRE (Perl Compatible Regular Expressions).
Dưới đây là một ví dụ về cách chúng ta từng sử dụng ereg
:
<?php
if (ereg("^[a-zA-Z0-9]+$", $username)) {
echo "Valid username";
} else {
echo "Invalid username";
}
?>
Mã này sẽ kiểm tra xem tên người dùng có chứa chỉ các ký tự chữ và số hay không. Mặc dù nó hoạt động,但它 không hiệu quả hoặc mạnh mẽ như phần mở rộng PCRE.
3. mssql
Phần mở rộng mssql
được sử dụng để kết nối với cơ sở dữ liệu Microsoft SQL Server. Nó bị loại bỏ trong PHP 7.0 thay vì phần mở rộng hiện đại và mạnh mẽ hơn sqlsrv.
Dưới đây là một ví dụ đơn giản về cách chúng ta từng kết nối với cơ sở dữ liệu MSSQL:
<?php
$connection = mssql_connect("localhost", "username", "password");
mssql_select_db("my_database", $connection);
$result = mssql_query("SELECT * FROM products");
while ($row = mssql_fetch_array($result)) {
echo $row['product_name'] . "<br>";
}
mssql_close($connection);
?>
Mã này sẽ kết nối với cơ sở dữ liệu MSSQL, lấy tất cả các sản phẩm, và hiển thị tên của chúng.
Bảng tóm tắt các phần mở rộng bị loại bỏ
Dưới đây là bảng tóm tắt một số phần mở rộng chính đã bị loại bỏ khỏi PHP:
Phần mở rộng | Bị loại bỏ trong | Thay thế bằng |
---|---|---|
mysql | PHP 7.0 | mysqli hoặc PDO_MySQL |
ereg | PHP 7.0 | PCRE (preg_* functions) |
mssql | PHP 7.0 | sqlsrv hoặc PDO_SQLSRV |
mcrypt | PHP 7.2 | OpenSSL |
recode | PHP 7.4 | iconv hoặc mbstring |
Các SAPI bị loại bỏ
SAPI代表Server Application Programming Interface. Đây là lớp giữa PHP và máy chủ web. Qua thời gian, một số SAPI đã bị loại bỏ khỏi PHP. Hãy cùng nhìn vào một số ví dụ.
1. php-fpm (FastCGI Process Manager)
Đùa而已! php-fpm hasn't been removed. Thực tế, nó là một trong những SAPI phổ biến nhất cho PHP. Tôi muốn bắt đầu với một小游戏 để giữ cho bạn cảnh giác. Luôn luôn cảnh giác trong thế giới lập trình!
2. apache_hooks
SAPI apache_hooks
bị loại bỏ trong PHP 7.0. Đây là một module thay thế Apache 1.x sử dụng Apache's hook API. Tuy nhiên, nó trở nên lỗi thời khi Apache 2.x trở thành tiêu chuẩn.
Dưới đây là một ví dụ đơn giản về cách bạn có thể thấy PHP được sử dụng với Apache trong quá khứ:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Cấu hình Apache này sẽ thiết lập một máy chủ ảo cho một ứng dụng PHP. Mặc dù cấu hình này không cụ thể cho apache_hooks
, nó cho bạn một ý tưởng về cách PHP và Apache làm việc cùng nhau.
3. aolserver
SAPI aolserver
bị loại bỏ trong PHP 5.3. Nó được sử dụng để tích hợp PHP với máy chủ web AOLserver, không còn được sử dụng rộng rãi nữa.
Bảng tóm tắt các SAPI bị loại bỏ
Dưới đây là bảng tóm tắt các SAPI chính đã bị loại bỏ khỏi PHP:
SAPI | Bị loại bỏ trong | Ghi chú |
---|---|---|
apache_hooks | PHP 7.0 | Module lỗi thời Apache 1.x |
aolserver | PHP 5.3 | Cho tích hợp với AOLserver |
caudium | PHP 7.0 | Cho máy chủ web Caudium |
continuity | PHP 7.0 | Cho máy chủ Continuity |
Tóm lại, sự phát triển của PHP không chỉ liên quan đến việc thêm mới các tính năng, mà còn loại bỏ các tính năng lỗi thời hoặc có vấn đề. Là một nhà phát triển, rất quan trọng để bạn luôn cập nhật các thay đổi để mã của bạn vẫn hiệu quả, an toàn và tương thích với các phiên bản PHP mới nhất.
Nhớ rằng, trong thế giới lập trình, thay đổi là điều duy nhất không thay đổi. Hãy đón nhận nó, học hỏi từ nó, và bạn sẽ phát triển như một nhà phát triển. Chúc bạn lập trình vui vẻ, và các cuộc phiêu lưu PHP của bạn không có lỗi và hạnh phúc!
Credits: Image by storyset