Oleh: kod34fr33 | 16/Februari/2007

Framework?

Dulu saya tidak pernah menggunakan template engine ataupun framework dalam membuat aplikasi web. Selain belum perlu, toh menurut saya aplikasi web yaa gitu gitu aja: desain database, tinggal selipin skrip php di dalam html, ganti ekstensi .html menjadi .php voila, selesai.

Pernah sih baca-baca mengenai template engine Smarty. pas lihat dokumentasinya, hmm… disitu ditulis kalo alasannya biar desainer templatenya nggak perlu belajar php… kayaknya kurang tepat. soalnya walaupun desainer tidak belajar php, dia perlu belajar sintaks-sintaks smarty dong… kalo gitu sama aja dong… Akhirnya saya nggak jadi belajar Smarty ataupun template engine lainnya.

Untuk framework, sebetulnya selama bekerja di perusahaan ini, saya sudah berurusan dengan framework. proprietary tentu, karena framework ini dibuat oleh perusahaan tempat saya bernaung dan disesuaikan untuk aplikasi-aplikasi yang khusus dibuat oleh perusahaan. Framework perusahan saya ini menurut saya agak belibet dan kurang fleksibel untuk dikembangkan. tapi satu hal yang harus saya akui: template engine di belakangnya bagus! benar2 memisahkan antara kode PHP dengan template HTML.

Akhir tahun lalu saya diminta kerjasama freelance (paruh waktu) dengan teman saya untuk proyek pembuatan aplikasi web. Jadi teman saya yang mencari proyek, kalau proyek tersebut membutuhkan skrip php, saya yang akan mengerjakannya. Teman saya benar-benar tidak tahu menahu mengenai pemrograman (juga PHP tentunya).

Berawal dari ini, saya mencoba mencari framework untuk memudahkan dan meningkatkan produktivitas dalam pembuatan aplikasi, dan pilihan saya jatuh pada cakePHP framework.

Memang, ada banyak framework untuk PHP: cakePHP, Symfony, Prado, Seagull, dan masih banyak lagi. Saya tidak ingin membandingkan framework-framework tersebut, karena saya belum pernah mencoba satu per satu, hanya cakePHP saja yang sudah saya coba gunakan. Prado saya ketahui dari teman saya yang punya background ASP. Menurutnya Prado mudah digunakan, tapi bagi saya Prado terlalu ASP oriented (saya hanya lihat sekilas dari dokumentasi dan tutorialnya sih :p ), karena saya tidak punya latar belakang ASP, jadi saya enggan mencobanya. Mungkin bila anda punya latar belakang ASP boleh mencobanya.

Untuk Symfony saya belum pernah mencoba, jadi tidak bisa mereviewnya. begitu pula Seagull. Hanya saja Seagull di dokumentasinya disebutkan bahwa Seagull mirip dengan Struts atau JSP. Jadi untuk yang sudah familiar dengan Struts atau JSP di Java, mungkin lebih mudah menggunakan Seagull.

Yang jelas, dengan menggunakan framework berarti harus meluangkan sedikit waktu untuk belajar menggunakannya. Apa? belajar lagi? Ya! karena framework menurut saya seperti magic: anda lakukan yang seperti yang disebutkan di konvensi dan puff! framework akan membuatkan fungsi2 standar untuk anda. Jadi framework yang bagus haruslah mempunyai learning curve yang landai, alias mudah dipelajari (dengan dokumentasi yang jelas tentunya).

whew, cukup panjang sepertinya. Cukup sekian dulu pengenalannya dengan framework. berikutnya kita mulai dengan cakePHP learning by doing.

Oleh: kod34fr33 | 16/Februari/2007

Kustomisasi Status Yahoo Messenger di halaman web

Huaaahh.. setelah diguncang gempa dan banjir, saya bisa online lagi akhirnya.

Untuk pemanasan, saya mau bahas mengenai cara cek status yahoo messenger secara online (tidak melalui program Messenger di desktop) dan akhirnya cara menampilkannya dihalaman web (dengan PHP tentunya :p )
Cara mencek status ym seseorang dapat dilakukan secara online dengan mengunjungi alamat web berikut:

http://mail.opi.yahoo.com/online?u={username}&m={mode output}&t={type}

{username}: anda ganti dengan yahooID yang ingin anda cek

{mode output}: ada dua mode ditawarkan: ‘g’ untuk keluaran gambar dan ‘a’ untuk keluaran teks

{type}: tipe format keluaran yang anda inginkan untuk mode ‘g’ ada 6 (0-5). Sedangkan untuk mode ‘a’ hanya ada 2 (0-1) pilihan

Oke, sekarang kita lihat output masing type dan mode.

Graphic mode (mode = g)

  • type = 0
    • offline : offline type 0
    • online: online type 0
  • type = 1
    • offline: offline type 1
    • online: online type 1
  • type = 2
    • offline: offline type 2
    • online: online type 2
  • 3
    • offline: offline type 3
    • online: online type 3
  • 4
    • offline: offline type 4
    • online: online type 4
  • 5
    • offline: offline type 5
    • online: online type 5

Text mode (mode = a)

  • type = 0
    • offline : {username} is NOT ONLINE
    • online: {username} is ONLINE
  • type = 1
    • offline: 00
    • online: 01

Sekarang, bagaimana cara menampilkan di halaman web anda?

Untuk mode graphic, cara menampilkannya lebih mudah. Anda cukup menyisipkan alamat tersebut pada properti src di element img. Contoh konkritnya:

<img src="http://mail.opi.yahoo.com/online?u=my_yahoo_id&m=g&t=3" title="menampilkan status YM user my_yahoo_id dengan mode: g type: 3" alt="" />

trus apa gunanya mode text (a) dong?

pertanyaan bagus! Menurut saya text mode digunakan bila anda membutuhkan status YM untuk dimanipulasi, alias tidak digunakan bulat-bulat seperti mode graphic. :p

trus, sekarang bagaimana caranya menyisipkan di halaman web?

cara cukup mudah, bisa dilakukan dengan cara seperti berikut ini :

$status = 'offline'; //set default status
// buka alamat online checker, caranya sama dengen membuka file biasa
// PHP memperlakukan hampir semua source seperti file: buka, lakukan sesuatu(add,read,edit), tutup
$handle = fopen("http://mail.opi.yahoo.com/online?u=my_yahoo_id&m=a&t=1","rb");
if($handle){ //cek apakah var handle true (alamat tersebut dapat diakses, dan handle ada isinya)
   $content = fread($handle,255); //ambil isi return value alamat tersebut
   $status = ($content=='01' ? 'online' : 'offline');
   fclose($handle);
}

//status sudah dapat digunakan sekarang
if($status=='online'){
   //do online logic here
}else{
   //do offline logic here
}

just like that!

Oh ya, saya hampir lupa memberitahukan satu hal penting: menggunakan fopen() untuk membuka URL memerlukan setting allow_url_fopen aktif. dan jelas-jelas di manual PHP diberi catatan: “This setting can only be set in php.ini due to security reasons.” dan mungkin banyak hosting di luar sana yang sudah mematikan setting ini sehingga skrip di atas tidak bisa dijalankan.

Bila setting allow_url_fopen di hosting anda dimatikan, coba ganti potongan skrip diatas dengan yang di bawah ini:

$status = 'offline'; //set default status
$fp = fsockopen("mail.opi.yahoo.com", 80, $errno, $errstr, 30);
if (!$fp) {
} else {
   $out = "GET /online?u=my_yahoo_id&m=a&t=1 HTTP/1.1rn";
   $out .= "Host: mail.opi.yahoo.comrn";
   $out .= "Connection: Closernrn";

   fwrite($fp, $out);
   $tmp = '';
   while (!feof($fp)) {
      $tmp .= fgets($fp, 128);
   }
   $status = substr($tmp,-10,3)=='01' ? 'online' : 'offline';
   fclose($fp);
}

//status sudah dapat digunakan sekarang
if($status=='online'){
   //do online logic here
}else{
   //do offline logic here
}

saya tidak akan menjelaskan lebih detil mengenai potongan skrip di atas, jadi silahkan dicoba dan buka manual PHP untuk penjelasan detilnya. :p

Catatan: hasil googling mengatakan, bahwa bila seseorang login melalui YM dengan checkbox ’sign in as invisible’ aktif, maka akan terlihat offline dengan menggunakan online checker ini. Berbeda dengan seseorang yg login awal visible kemudian menset ‘appear offline’ atau ‘appear permanently offline’ maka akan terlihat online dengan online checker ini.

Oleh: kod34fr33 | 19/Desember/2006

Kalkulasi Waktu Kemacetan

Fiuhh… Sampe juga di kantor… minum dulu, baru deh nge-blog lagi.

Sebetulnya sejak kuliah saya ingin bekerja di luar Jakarta, tapi apa daya, takdir berkata lain. Salah satu alasan saya ingin bekerja di luar kota kelahiran saya adalah kemacetannya yang sudah diluar batas kewajaran (menurut saya pribadi lohh). Sebelumnya saya pernah mencoba KRL ekonomi sebagai alternatif, tapi karena menurut saya kurang manusiawi dan juga kenangan buruk akan HP saya yang hilang di KRL ekonomi, saya putuskan untuk berhenti menggunakan jasa angkutan ini (bila tidak sangat terpaksa sekali). Baca Lanjutannya…

Oleh: kod34fr33 | 18/Desember/2006

Install Tarball di Linux

Manual atau tutorial Instalasi Aplikasi berbasis Tarball (tar gz atau tar bz) berbahasa Indonesia masih jarang. Saya sendiri hanya menemukan 1 website yang benar2 informatif (saya lupa tautannya, yang saya ingat hanya website itu berasal dari salah satu universitas di kota Malang).

Saya sendiri pertama kali berinteraksi dengan Linux, bingung ketika install aplikasi berbasis tarball ini. Baiklah, cukup basa basinya. Lebih baik kita lanjut saja… Baca Lanjutannya…

Oleh: kod34fr33 | 18/Desember/2006

Hello world!


<?php
echo "Hello World!";
?>

« Newer Posts

Kategori