Bagi anda yang bergelut dengan php tiap harinya, pernah terpikir ga bagaimana bahasa pemrograman sejuta umat ini dibuat? Ternyata bahasa pemrograman PHP pada mulanya tidak dirancang sebagai bahasa pemrograman baru, tapi hanya skrip bahasa C yang memanfaatkan CGI untuk memproses data untuk keperluan menghitung jumlah kunjungan dan menerima input dari form website Rasmus Rerddorf. Maka jangan heran, awal kependekan PHP Sendiri adalah Personal Homepage Tools, dan bukan PHP programing language.
Menariknya tool ini di opensourcekan dan dibagikan ke programer yang lain dan fitur fitur terus ditambahkan ke dalamnya. Maka dalam waktu yang tidak begitu lama (Sekitar 1 sampai 2 tahun), fitur itu dikembangkan agar bisa memproses form HTML, berubahlah nama PHP menjadi PHP/F1 (PHP /Form Interpreter). Mungkin anda mengira hebat ya seorang Rasmus bisa menciptakan PHP sendiri. Berapa ribu baris kode yang ditulis? Ternyat PHP v1 itu sangat sederhana. Bahkan jika merujuk pada spesifikasi bahasa pemrograman, PHP v1 belum bisa disebut bahasa pemrograman, hanya tool bahasa C yang dipakai untuk memproses data dinamis lewat Web.Versi ini bahkan belum bisa terkoneksi ke database. Lebih rinci tentang sejarah versi satu bisa anda baca di http://php.net/manual/en/history.php.php.
Artikel ini saya tulis bagi yang tertarik dengan sejarah bahasa pemorgraman PHP atau mahasiswa yang tertarik membuat bahasa pemrograman sederhana, memahami awal PHP muncul dan kodenya akan makin memahamkan anda bagaimana pemrograman web saat itu dibuat dan bagaimana Aplikasi web bekerja dan memotivasi kita untuk menjadi programer yang lebih baik.
Analisa Code
Source code PHP v1 bisa anda download di http://museum.php.net. Source code PHP versi 1 hanya berukuran 27kb dalam format Zip yang terdiri dari 19 File source C, MakeFile dan Readme. Total baris source code PHP hanya sekitar 3200-an Baris kode. Artinya kode program yang dibuat untuk tugas akhir anak teknik informatika saat ini jauh lebih banyak daripada source code PHP v1.
Berikut ini adalah daftar filenya
rw-r--r-- 1 candra candra 5,3K Jun 22 1995 common.c -rw-r--r-- 1 candra candra 1,3K Jun 12 1995 common.h -rw-r--r-- 1 candra candra 1,9K Jun 12 1995 config.h -rw-r--r-- 1 candra candra 1,4K Jun 22 1995 error.c -rw-r--r-- 1 candra candra 1,1K Jun 12 1995 html_common.h -rw-r--r-- 1 candra candra 18K Jun 12 1995 License -rw-r--r-- 1 candra candra 1,8K Jun 22 1995 Makefile -rw-r--r-- 1 candra candra 9,4K Jun 22 1995 phpf.c -rw-r--r-- 1 candra candra 29K Jun 22 1995 phpl.c -rw-r--r-- 1 candra candra 13K Jun 22 1995 phplmon.c -rw-r--r-- 1 candra candra 8,3K Jun 22 1995 phplview.c -rw-r--r-- 1 candra candra 3,2K Jun 22 1995 post.c -rw-r--r-- 1 candra candra 1,2K Jun 12 1995 post.h -rw-r--r-- 1 candra candra 2,7K Jun 12 1995 README -rw-r--r-- 1 candra candra 5,1K Jun 22 1995 subvar.c -rw-r--r-- 1 candra candra 1,2K Jun 16 1995 version.h -rw-r--r-- 1 candra candra 5,1K Jun 22 1995 wm.c -rw-r--r-- 1 candra candra 1,1K Jun 12 1995 wm.h
Perhatikan bahwa kode ini terakhir kali di edit tahun 1995, sekitar 23 Tahun yang lalu, mungkin sebagian pembaca disini belum lahir :).
Kode PHP paling banyak ada difile phpl.c
sepanjang 1049 Baris. rinciannya bisa anda lihat dibawah ini .
36 common.h 50 config.h 27 html_common.h 34 post.h 29 version.h 32 wm.h 204 common.c 41 error.c 398 phpf.c 1049 phpl.c 524 phplmon.c 278 phplview.c 130 post.c 156 subvar.c 166 wm.c 3154 total
Inti kode PHP ada di 4 file yaitu phpl.c, phpf.c, phplmon.c dan phplview.c
. Mari kita lihat sedikit fungsi di phpf.c yang merupakan code untuk memproses form.
void PrintFormType(int type, char *field, char *text) { switch(type) { case 'M': if(field) printf("<b>%s:</b> <a href=\"mailto:%s\">%s</a><br>\n",field,text,text); else printf("<a href=\"mailto:%s\">%s</a><br>\n",text,text); break; case 'm': if(field) printf("<b>%s:</b> <a href=\"mailto:%s\">%s</a> \n",field,text,text); else printf("<a href=\"mailto:%s\">%s</a> \n",text,text); break; case 'L': if(field) printf("<b>%s:</b> <a href=\"%s\">%s</a><br>\n",field,text,text); else printf("<a href=\"%s\">%s</a><br>\n",text,text); break; case 'l': if(field) printf("<b>%s:</b> <a href=\"%s\">%s</a> \n",field,text,text); else printf("<a href=\"%s\">%s</a> \n",text,text); break; case 'T': if(field) printf("<b>%s:</b> %s<br>",field,text); else printf("%s<br>",text); break; case 't': if(field) printf("<b>%s:</b> %s ",field,text); else printf("%s ",text); break; case 'I': if(field) printf("<b>%s:</b> <i>%s</i><br>",field,text); else printf("<i>%s</i><br>",text); break; case 'i': if(field) printf("<b>%s:</b> <i>%s</i> ",field,text); else printf("<i>%s</i> ",text); break; case 'B': if(field) printf("<b>%s:</b> <b>%s</b><br>",field,text); else printf("<b>%s</b><br>",text); break; case 'b': if(field) printf("<b>%s:</b> <b>%s</b> ",field,text); else printf("<b>%s</b> ",text); } }
Berikut ini adalah fungsi error yang ada di php versi 1.
void html_error(char *str1, char *str2) { puts("Content-type: text/html"); puts(""); printf("<html><head><title>%s</title></head><body>\n",str1); printf("<h2>%s</h2>\n",str1); if(str2) printf("<b>%s</b>\n",str2); puts("</body></html>"); } void html_head(char *str) { puts("Content-type: text/html"); puts(""); if(str) printf("<html><head><title>%s</title></head>\n",str); }
Jika anda paham bahasa c, pasti anda akan tertarik dengan konstruksi PHP di awal yang memang sederhana. Karena awalnya PHP hanyalah tool CGI, maka PHP sangat lemah dari sisi bahasa pemrograman. PHP Baru benar benar menjadi bahasa pemrograman ketika sudah versi 7. Versi versi sebelumnya merupakan versi bahasa pemprograman setengah matang, makanya programer di luar negeri banyak yang pindah ke Python, Java atau Ruby. Selama 20 tahun berkembang, PHP akhirnya menjadi bahasa yang matang di versi 7. Jika anda mahasiswa IT coba buat analisa kodenya atau membuat tool sederhana dengan Bahasa C untuk memproses form dari web. Jika anda bisa membuat program CGI sederhana yang diproses dengan bahasa C maka sejatinya anda sudah mampu membuat bahasa pemrograman sekelas PHP v1. Ingin mencoba bagaimana membuat program web di tahun 1995 dengan bahasa C? anda bisa mulai disini http://www.purplepixie.org/cgi/howto.php
Sangat menarik dan ga disangka” awalnya php merupakan bagian dari bahasa lain. Syaa kira dia berdiri sendiri dari awal hehe