PHP - Kegonenan Ekstensi & SAPI

Hai sana, para pengembang PHP yang sedang mencari ilmu! Saya sangat gembira untuk membimbing Anda melalui aspek penting evolusi PHP: kegonenan ekstensi dan SAPI. Sebagai guru komputer yang ramah di lingkungan sekitar Anda dengan tahun-tahun pengalaman, saya akan memecahkan ini dalam cara yang bahkan mereka tanpa latar belakang pemrograman dapat mengerti. Jadi, ambil secangkir kopi (atau teh, jika Anda memilih), dan mari kita masuk ke dalam!

PHP - Removed Extensions & SAPIs

Kegonenan Ekstensi

Ekstensi di PHP adalah seperti tambahan yang memberikan fungsi ekstra kepada bahasa. Pada saat yang sama, beberapa ekstensi menjadi kedaluwarsa atau tidak diperlukan lagi, dan PHP memutuskan untuk menghapusnya. Mari kita lihat beberapa ekstensi yang terkenal yang dihapus dan memahami mengapa mereka ditutup pintunya.

1. mysql

Ekstensi mysql adalah salah satu ekstensi yang paling banyak digunakan di versi awal PHP. Itu memungkinkan pengembang untuk berinteraksi dengan basis data MySQL. Namun, itu dihapus di PHP 7.0 karena masalah keamanan dan desain yang kedaluwarsa.

Ini adalah contoh bagaimana kita biasanya menghubungkan ke basis data MySQL menggunakan ekstensi ini:

<?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);
?>

Kode ini akan menghubungkan ke basis data, menjalankan sebuah query untuk memilih semua pengguna, dan mencetak nama mereka. Sederhana, kan? Tetapi itu memiliki kerentanan keamanan dan tidak mendukung fitur MySQL yang lebih baru.

2. ereg

Ekstensi ereg menyediakan fungsi ekspresi regular. Itu dihapus di PHP 7.0 karena lebih lamban dan kurang fitur dibandingkan dengan ekstensi PCRE (Perl Compatible Regular Expressions).

Ini adalah contoh bagaimana kita biasanya menggunakan ereg:

<?php
if (ereg("^[a-zA-Z0-9]+$", $username)) {
echo "Username valid";
} else {
echo "Username tidak valid";
}
?>

Kode ini akan memeriksa jika nama pengguna hanya mengandung karakter alfanumerik. Meskipun itu bekerja, itu tidak seefisien atau kuat seperti lawannya PCRE.

3. mssql

Ekstensi mssql digunakan untuk menghubungkan ke basis data Microsoft SQL Server. Itu dihapus di PHP 7.0 menggantikan ekstensi yang lebih modern dan kaya fitur, yaitu sqlsrv.

Ini adalah contoh sederhana bagaimana kita biasanya menghubungkan ke basis data 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);
?>

Kode ini akan menghubungkan ke basis data MSSQL, mengambil semua produk, dan menampilkan nama mereka.

Tabel Ekstensi yang Dihapus

Ini adalah tabel yang menggabungkan beberapa ekstensi kunci yang telah dihapus dari PHP:

Ekstensi Dihapus di Pengganti
mysql PHP 7.0 mysqli atau PDO_MySQL
ereg PHP 7.0 PCRE (fungsi preg_*)
mssql PHP 7.0 sqlsrv atau PDO_SQLSRV
mcrypt PHP 7.2 OpenSSL
recode PHP 7.4 iconv atau mbstring

Kegonenan SAPI

SAPI berarti Server Application Programming Interface. Itu adalah lapisan antara PHP dan server web. Pada saat yang sama, beberapa SAPI telah dihapus dari PHP. Mari kita lihat beberapa contoh.

1. php-fpm (FastCGI Process Manager)

Tertawa! php-fpm belum dihapus. Pada kenyataannya, itu adalah salah satu SAPI yang paling populer untuk PHP. Saya ingin mulai dengan sedikit lelucon untuk membuat Anda tetap waspada. Selalu tinggal waspada di dunia pemrograman!

2. apache_hooks

SAPI apache_hooks dihapus di PHP 7.0. Itu adalah alternatif modul Apache 1.x yang menggunakan API hook Apache. Namun, itu menjadi kedaluwarsa saat Apache 2.x menjadi standar.

Ini adalah contoh sederhana bagaimana Anda mungkin telah melihat PHP digunakan dengan Apache di masa lalu:

<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>

Konfigurasi Apache ini akan mengatur virtual host untuk aplikasi PHP. Meskipun konfig ini tidak spesifik untuk apache_hooks, itu memberikan Anda gambaran bagaimana PHP dan Apache bekerja bersama.

3. aolserver

SAPI aolserver dihapus di PHP 5.3. Itu digunakan untuk mengintegrasikan PHP dengan server web AOLserver, yang tidak banyak digunakan lagi.

Tabel SAPI yang Dihapus

Ini adalah tabel yang menggabungkan beberapa SAPI kunci yang telah dihapus dari PHP:

SAPI Dihapus di Catatan
apache_hooks PHP 7.0 Modul Apache 1.x yang kedaluwarsa
aolserver PHP 5.3 Untuk integrasi AOLserver
caudium PHP 7.0 Untuk server web Caudium
continuity PHP 7.0 Untuk server Continuity

Dalam kesimpulan, evolusi PHP melibatkan tidak hanya menambahkan fitur baru, tetapi juga menghapus yang kadaluwarsa atau bermasalah. Sebagai pengembang, sangat penting untuk tetap diperbarui dengan perubahan ini agar kode Anda tetap efisien, aman, dan kompatibel dengan versi PHP terbaru.

Ingat, di dunia pemrograman, perubahan adalah konstanta. Embrasilah nya, belajar dari nya, dan Anda akan tumbuh sebagai pengembang. Selamat pemrograman, dan semoga petualangan PHP Anda bebas bug dan penuh keceriaan!

Credits: Image by storyset