PHP – Удаленные расширения и SAPI
Здравствуйте, начинающие разработчики PHP! Я рад помочь вам понять важный аспект эволюции PHP: удаленные расширения и SAPI. Как ваш доброжелательный сосед-преподаватель компьютерных наук с многолетним опытом, я объясню это так, чтобы даже те, кто не имеет опыта программирования, могли понять. Так что возьмите杯咖啡(или чай, если предпочитаете), и погружаемся в это!
Удаленные расширения
Расширения в PHP похожи на дополнения, которые добавляют额外的 функциональность языку. Со временем некоторые из этих расширений становятся устаревшими или ненужными, и PHP решает их удалить. Давайте рассмотрим некоторые из самых заметных удаленных расширений и поймем, почему им закрыли дверь.
1. mysql
Расширение mysql
было одним из самых widely используемых расширений в ранних версиях PHP. Оно позволяло разработчикам взаимодействовать с базами данных MySQL. Однако его удалили в PHP 7.0 из-за проблем с безопасностью и устаревшим дизайном.
Вот пример того, как мы раньше подключались к базе данных MySQL с помощью этого расширения:
<?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);
?>
Этот код будет подключаться к базе данных, выполнять запрос для выбора всех пользователей и выводить их имена. Просто, правда? Но у него были проблемы с безопасностью и не поддерживались новые функции MySQL.
2. ereg
Расширение ereg
предоставляло функции регулярных выражений. Его удалили в PHP 7.0,因为它 было медленнее и менее функционально по сравнению с расширением PCRE (Perl Compatible Regular Expressions).
Вот пример того, как мы раньше использовали ereg
:
<?php
if (ereg("^[a-zA-Z0-9]+$", $username)) {
echo "Valid username";
} else {
echo "Invalid username";
}
?>
Этот код будет проверять, содержит ли имя пользователя только алфавитно-цифровые символы. Хотя он работал, он не был tão эффективен или мощен, как его аналог PCRE.
3. mssql
Расширение mssql
использовалось для подключения к базам данных Microsoft SQL Server. Его удалили в PHP 7.0 в пользу более современного и функционального расширения sqlsrv.
Вот простой пример того, как мы раньше подключались к базе данных 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);
?>
Этот код будет подключаться к базе данных MSSQL, извлекать все продукты и отображать их имена.
Таблица удаленных расширений
Вот таблица, резюмирующая некоторые из ключевых расширений, которые были удалены из PHP:
Расширение | Удалено в | Замена |
---|---|---|
mysql | PHP 7.0 | mysqli или PDO_MySQL |
ereg | PHP 7.0 | PCRE (функции preg_*) |
mssql | PHP 7.0 | sqlsrv или PDO_SQLSRV |
mcrypt | PHP 7.2 | OpenSSL |
recode | PHP 7.4 | iconv или mbstring |
Удаленные SAPI
SAPI означает Server Application Programming Interface. Это слой между PHP и веб-сервером. Со временем некоторые SAPI были удалены из PHP. Давайте рассмотрим несколько примеров.
1. php-fpm (FastCGI Process Manager)
Шутка! php-fpm не был удален. На самом деле, это один из самых популярных SAPI для PHP. Я хотел начать с небольшой шутки, чтобы держать вас в тонусе. Всегда будьте бдительны в мире программирования!
2. apache_hooks
SAPI apache_hooks
был удален в PHP 7.0. Это был альтернативный модуль Apache 1.x, который использовал API挂钩 Apache. Однако он стал устаревшим, так как Apache 2.x стал стандартом.
Вот простой пример того, как вы могли видеть использование PHP с Apache в прошлом:
<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>
Эта конфигурация Apache установит виртуальный хост для PHP-приложения. Хотя эта конфигурация не específica для apache_hooks
, она дает вам представление о том, как PHP и Apache работают вместе.
3. aolserver
SAPI aolserver
был удален в PHP 5.3. Он использовался для интеграции PHP с веб-сервером AOLserver, который больше не используется широко.
Таблица удаленных SAPI
Вот таблица, резюмирующая ключевые SAPI, которые были удалены из PHP:
SAPI | Удалено в | Примечания |
---|---|---|
apache_hooks | PHP 7.0 | Устаревший модуль Apache 1.x |
aolserver | PHP 5.3 | Для интеграции с AOLserver |
caudium | PHP 7.0 | Для Caudium веб-сервера |
continuity | PHP 7.0 | Для Continuity сервера |
В заключение, эволюция PHP включает не только добавление новых функций, но и удаление устаревших или проблемных. Как разработчик, важно следить за этими изменениями, чтобы ваш код оставался эффективным, безопасным и совместимым с последними версиями PHP.
Помните, в мире программирования изменения — это единственное постоянство. Принимайте их, учитесь у них, и вы вырастете как разработчик. Счастливого кодирования, и пусть ваши приключения с PHP будут свободны от ошибок и радостны!
Credits: Image by storyset