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