Sejarah PHP

Hai teman-teman pemrogram, hari ini kita akan mengambil sebuah perjalanan yang menarik melalui sejarah PHP, salah satu bahasa skrip server-side yang paling populer. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk memandu Anda dalam perjalanan ini. Jadi, siapkan mesin waktu maya Anda, dan mari kita masuk ke dalamnya!

PHP - History

Kelahiran PHP

PHP, yang aslinya berarti "Personal Home Page," diciptakan oleh Rasmus Lerdorf pada tahun 1994. Bayangkanlah dunia di mana internet masih dalam tahap awal, dan Lerdorf hanya mencoba untuk melacak siapa saja yang melihat resume online-nya. Takdirnya, kreatif sederhana ini akan berkembang menjadi kekuatan utama dalam pengembangan web!

PHP/FI

Pada tahun 1995, Lerdorf merilis kode sumber untuk PHP Tools, yang dikenal sebagai PHP/FI (Personal Home Page / Forms Interpreter). Versi awal ini memungkinkan pengembang untuk menyertakan query SQL ke dalam halaman HTML. Itu seperti memberi superpower kepada halaman web statis!

PHP 3

Marilah kita melompat ke tahun 1998, dan PHP 3 muncul ke permukaan. Ini adalah revisi total bahasa oleh Andi Gutmans dan Zeev Suraski. Mereka mengubah PHP menjadi bahasa yang lebih kuat dan dapat bersaing dengan ASP milik Microsoft. Pada masa ini, arti PHP berubah menjadi akronim rekursif "PHP: Hypertext Preprocessor."

PHP 4

Pada tahun 2000, PHP 4 dirilis, membawa serta banyak fitur baru dan peningkatan. Salah satu penambahan yang paling signifikan adalah mesin Zend, yang meningkatkan performa PHP secara drastis. Itu seperti mengupgrade dari sepeda menjadi mobil sport!

PHP 5

PHP 5, dirilis pada tahun 2004, adalah perubahan besar. Ini memperkenalkan fitur pemrograman berorientasi objek (OOP), membuat PHP menjadi pesaing yang serius di dunia pengembangan web. Mari kita lihat contoh sederhana OOP dalam PHP 5:

<?php
class Car {
public $color;

public function __construct($color) {
$this->color = $color;
}

public function getColor() {
return $this->color;
}
}

$myCar = new Car("red");
echo "My car is " . $myCar->getColor();
?>

Dalam contoh ini, kita mendefinisikan kelas Car dengan properti color dan metode untuk mengatur dan mendapatkan warna. Kemudian kita membuat objek Car baru dan mencetak warnanya. Pendekatan berorientasi objek ini membuat kode lebih terorganisir dan dapat digunakan kembali.

PHP 6

Sebuah kuisik PHP: PHP 6 tidak pernah benar-benar muncul! Ini direncanakan untuk mencakup dukungan native Unicode, tetapi karena berbagai komplikasi, proyek ini diabaikan. Sebagai ganti, banyak fiturnya dimasukkan ke PHP 5.3 dan versi berikutnya.

PHP 7

PHP 7, dirilis pada tahun 2015, adalah tonggak penting. Ini membawa peningkatan performa yang signifikan dan fitur baru. Salah satu penambahan utama adalah operator kapal angkasa (<=>) untuk membandingkan nilai. Berikut adalah contoh bagaimana ia bekerja:

<?php
// Contoh operator kapal angkasa
$a = 5;
$b = 10;

$result = $a <=> $b;

if ($result === -1) {
echo "$a is less than $b";
} elseif ($result === 0) {
echo "$a is equal to $b";
} else {
echo "$a is greater than $b";
}
?>

Operator ini mengembalikan -1 jika operand kiri kurang dari operand kanan, 0 jika mereka sama, dan 1 jika operand kiri lebih besar. Itu seperti memiliki kapal angkasa yang mengarahkan nilai!

Fitur Baru dalam PHP 8

Dan sekarang, kita mencapai masa kini dengan PHP 8, dirilis pada tahun 2020. Versi ini memperkenalkan beberapa fitur baru yang menarik yang membuat PHP menjadi lebih kuat dan ramah pengembang.

Kompiler JIT

Salah satu penambahan paling signifikan dalam PHP 8 adalah kompiler Just-In-Time (JIT). Bayangkanlah itu seperti turbocharger untuk kode PHP Anda, membuatnya berjalan lebih cepat dari sebelumnya!

Tipe Union

PHP 8 memperkenalkan tipe union, yang memungkinkan pengembang untuk menentukan beberapa tipe kemungkinan untuk parameter tunggal atau nilai kembalian. Berikut adalah contoh:

<?php
function processInput(int|float $number): int|float {
if ($number > 100) {
return $number * 2;
}
return $number;
}

echo processInput(50);  // Output: 50
echo processInput(150.5);  // Output: 301
?>

Dalam contoh ini, fungsi processInput dapat menerima baik integer maupun float, dan ia juga dapat mengembalikan jenis ini. Fleksibilitas ini membuat kode kita lebih ekspressif dan aman jenis.

Argumen Berjudul

Argumen berjudul adalah penambahan lainnya yang fantastik dalam PHP 8. Mereka memungkinkan Anda untuk menentukan parameter mana yang Anda kirimkan nilai ke, membuat kode Anda lebih mudah dibaca dan fleksibel. Mari kita lihat contoh:

<?php
function createUser($name, $email, $age = null) {
echo "Name: $name, Email: $email, Age: $age";
}

createUser(name: "John Doe", email: "[email protected]", age: 30);
createUser(email: "[email protected]", name: "Jane Smith");
?>

Dalam contoh ini, kita dapat memanggil fungsi createUser dengan argumen berjudul dalam urutan apa pun, dan kita bahkan dapat mengabaikan parameter opsional.

Perubahan dan Penambahan Tipe di PHP 8

PHP 8 juga membawa beberapa perubahan dan penambahan penting ke sistem tipe.

Tipe Mixed

Tipe mixed diperkenalkan untuk menandai bahwa parameter atau nilai kembalian dapat berupa jenis apa pun. Itu seperti wildcard untuk jenis!

<?php
function processAnything(mixed $data): mixed {
if (is_string($data)) {
return strtoupper($data);
} elseif (is_int($data)) {
return $data * 2;
}
return $data;
}

echo processAnything("hello");  // Output: HELLO
echo processAnything(5);  // Output: 10
?>

Pemeriksaan Tipe Lebih Ketat

PHP 8 juga memperkenalkan pemeriksaan tipe yang lebih ketat. Misalnya, pengiriman null ke fungsi yang mengharapkan jenis tertentu sekarang akan melempar kesalahan kecuali parameter ditandai secara eksplisit sebagai nullable.

<?php
function greet(string $name) {
echo "Hello, $name!";
}

greet("John");  // Bekerja lancar
greet(null);  // Melempar TypeError

function greetNullable(?string $name) {
echo "Hello, " . ($name ?? "stranger") . "!";
}

greetNullable("Jane");  // Bekerja lancar
greetNullable(null);  // Juga bekerja, output: Hello, stranger!
?>

Dalam contoh ini, fungsi pertama greet akan melempar kesalahan jika diberikan null, sedangkan fungsi kedua greetNullable menerima nilai null.

Untuk menguraikan semua metode yang kita diskusikan, berikut adalah tabel praktis:

Versi PHP Fitur Utama
PHP/FI SQL queries in HTML
PHP 3 Revisi total, nama baru
PHP 4 Mesin Zend
PHP 5 Pemrograman berorientasi objek
PHP 7 Peningkatan performa, operator kapal angkasa
PHP 8 Kompiler JIT, tipe union, argumen berjudul, tipe mixed

Dan begitu saja, teman-teman! Kita telah mengambil perjalanan melalui sejarah PHP, dari permulaannya yang sederhana ke bentuk kuatnya saat ini. Ingat, setiap baris kode yang Anda tulis adalah bagian dari cerita ini. Jadi, majulah, tulis kode dengan keberanian, dan mayat perjalanan PHP Anda bebas bug dan penuh sukses!

Credits: Image by storyset