
Symfony adalah salah satu PHP framework yang bersifat opensource!
Syarat menginstall Symfony apa??
Syarat umum :
- Ada web server PHP 5, MySQL5, PEAR
- bisa menjalankan Mysql, PEAR, & PHP CLI via console
Windows
- Punya tools buat nge un-extract
Linux
- Mengerti/ tahu perintah tar
Kenapa console?? Pihak developernya menclaim penggunaan CLI akan mempercepat proses development suatu project, mungkin dengan asumsi semua orang pasti pernah berurusan dengan tools yang satu ini dalam men-develop suatu web. Dan ini benar, kita bisa membuat sebuah web, tanpa harus mengetikkan satupun perintah PHP!
Beberapa Istilah, teknologi dan metodologi yang digunakan oleh Symfony (untuk pengetahuan saja)
- ORM [wiki] - Object Relational Mapping, Suatu metode dimana anda (diharapkan) tidak “menyentuh” data (database) secara langsung. Namun sebagai gantinya anda akan menggunakan objek-objek yang menjadi interface program anda dengan database. Keuntungannya, data anda lebih aman dari sentuhan langsung script anda yang kadang berakibat fatal (hayoo ngaku siapa yang pernah…
) selain itu terdapat fitur foreign key yang dapat anda gunakan sekalipun database type anda tidak mendukung penggunaan foreign key (contohnya MYISAM). ORM di Symfony akan dilakukan oleh propel.
- CRUD [wiki] - Create, read, update and delete. Aplikasi paling bagus, canggih dan unik sekalipun, pasti memiliki dan atau mengkombinasikan empat kemampuan dasar ini. Buat, baca, sunting, hapus. Symfony dapat membuat kemampuan dasar ini jauh lebih mudah dan cepat.
- YML [wiki] - Bagi anda yang sudah familiar dengan XML, seharusnya tidak ada masalah dengan YML. YML, seperti halnya XML, YML adalah file penyimpan data dengan format dan aturan tertentu. YML dibanding XML, lebih simple dalam hal penulisan, karena tidak mengenal tag. Tag dalam XML digantikan dengan spasi di YML.
- DRY [wiki] - Jangan mengulangi apa yang sudaha anda tulis
Symfony merupakan framework kelas enterprise. Artinya, setiap modul dan template yang anda develop dalam symfony dapat reuseable/ digunakan kembali oleh modul lain atau aplikasi lain.
- KISS [wiki] - Buat menjadi sederhana
Semua hal diatas menuju satu tujuan, aplikasi anda dapat dibuat lebih sederhana, mudah dibaca dan mudah dikembangkan kembali (re-develop). Semua yang ada di symfony mampu memenuhi kebutuhan anda dalam men develop suatu aplikasi, tinggal bagaimana anda meramu script dan utility yang ada dalam framework symfony ini menjadi sebuah aplikasi yang anda inginkan.
Jargon-jargon dasar yang perlu kita sepakati dalam menggunakan Symfony adalah:
Project - Project adalah root dari aplikasi-aplikasi yang akan kita bangun. Project dapat terdiri dari beberapa aplikasi. Project mengatur pondasi dari website, seperti koneksi basisdata, plugins, model, dan sebagai container dari aplikasi.
Application- Untuk memudahkan ana untuk memahami layer layer ini, misalkan anda membuat Sistem informasi penjualan. Diamana Sistem Informasi ini adalah Project anda, dan anda menginginkan aplikasi tersendiri untuk setiap user, kita asumsikan kita memiliki user administrator, supplier, pegawai, dan customer. Maka aplikasi-aplikasi ini yang akan menjadi suatu aplikasi dalam project kita. Kenapa dipisah? karena bebeda peruntukannya pun berbeda, behaviour nya berbeda, hak aksesnya berbeda (dapat disesuaikan dan di konfigurasi seesuai kebutuhan).
Module - Module adalah sekumpulan fungsionalitas dengan objek sama atau serupa atau satu tujuan. Module dalam Sistem informasi adalah modul barang, pemesanan, laporan transaksi, login, halaman depan, manajemen user, dan sebagainya.
Action - Action adalah logic dari setiap modul. Dalam suatu modul minimal memiliki satu buah action. Miisalkan di module barang terdapat action listBarang, inputBarang, hapusBarang, editBarang, dan sebgainya. Penamaan action dimungkinkan sama dengan nama modul, contoh: modul login memiliki dua actions, yaitu login dan logout.
Parameter - Pengertian parameter sama seperti pengertian parameter di fungsi. Yaitu variabel yang diperlukan untuk melakukan fungsi/ action.
Satu aplikasi minimal memiliki satu modul dan satu aksi.
camelCase - sebenarnya hanya persetujuan cara penulisan di symfony, dimana huruf awal nama fungsi adalah huruf kecil (lowercase) dan setiap penggalana kata huruf besar (uppercase), sperti unta diaman kepalanya rendah dan punuknya lebih tinggi daripada kepalanya. Contoh saya memiliki nama fungsi :


getfungsimengambilnamauseryanglogin()
dalam camel case akan ditulis
getFungsiMengambilNamaUserYangLogin()
Baiklah, selanjutnya..
Permalink
No Comments
Pada postingan saya sebalumnya saya singgung tentang framework dan saya mencoba menggunakan PRADO.
Setelah mencoba-coba ada beberapa hal yang saya agak kagok menggunakan prado. Mungkin karena kebiasaan saya yang sudah terlalu lama tidak menggunakan bahasa visual saya agak canggung untuk menggunakan pemrograman berbasis komponen, sperti PRADO. Beberapa kekurangan PRADO adalah masih minimnya dokumentasi dan support, ini penting untuk sebuah framework yang opensource. Selain tentunya mudah dibaca dan popularitas
.
Apa itu framework?? dalam lingkup software tentunya, saya kutip dari Wikipedia
A software framework is a re-usable design for a software system (or subsystem). A software framework may include support programs, code libraries, a scripting language, or other software to help develop and glue together the different components of a software project. Various parts of the framework may be exposed through an API.
Yang saya pahami, framework adalah suatu standar dalam bekerja. Kita tahu untuk menghasilkan suatu output, bisa dilakukan dengan banyak cara. Framework membatasinya. Kenapa?? Karena terkadang pekerjaan tidak dikerjakan oleh satu orang, namun oleh sebuah tim (bukan makanan). Framework menerapkan standar bagaimana cara mengakses, mengolah dan menyajikan informasi/ data/ logika program sehingga mudah dibaca oleh selain kita! (hehehe dalem..)
Misalnya PRADO, Anda dibatasi dalam lingkuangan serba komponen, jika anda ingin mengakses data, ada komponennya, kalau tidak ada?? jangan membuat Class, tetapi buatlah komponen! Dimana penamaan, struktur, dan behaviour dari komponennya harus mengikuti standar dari framework yang anda gunakan, jika tidak, apalah artinya anda menggunakan framework jika hasilnya masih spaghetti.
Saat ini saya sedang mengeksplore Symfony sebagai salah satu PHP framework, dan sudah beberapa project di kantor kami yang mulai menggunakan symfony. Apa dan bagaimana symfony?? Anda dapat langsung ke websitenya atau menunggu tulisan berikutnya yang rencananya beberapa tulisan kedepan akan tentang symfony
(hope my mood support it)
Permalink
No Comments
Kali ini saya akan menglihkan perhatian kita ke HTML. Kenapa? Karena HTML adalah dasar dari sebuah web, sangat tidak mungkin kita meguasai pemrograman web tanpa mengetahui . HTML yang akan saya bahas disini adalah HTML 4.0 yang dikeluarkan oleh W3C.
Unsur utama HTML 4.0 adalah
- DTD - Definisi Tipe Dokumen diperlukan HTML 4.0 untuk menetukan sifat dokumen. Terdapat 6 DTD pada HTML 4.0 Namun hanya 3 DTD yang umum digunakan.
- Strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- Loose
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd" >
- Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd"DTD lainnya adalah :
- HTMLlat1.ent
- HTMLsymbol.ent
- HTMLspecial.ent
- <html>
- <head>
- <body>
Maka dengan membentuk
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang=“en”>
<head>
</head>
<body>
</body>
</html>
Kita sudah membentuk dokumen HTML 4.0 strict. Oh ya , saya belum menjelaskan apa perbedaan strict dan loose ya hehehe. Untuk frameset, berfungsi untuk mengenalkan bahwa dokumen kita menggunakan frame, baik frameset maupun iframe.
Strict, artinya dokumen kita dijamin memenuhi wellformness, resikonya jika tidak, dokumen kita langsung ditolak, bahkan tidak dapat ditampilkan. Sedangkan loose/ transitional parser HTML masih memberikan toleransi kesalahan dan akan tetap menampilkan dokumen kita walau tampilannya mungkin tidak sesuai harapan 
Permalink
1 Comment
Wah sudah lama juga ngga nulis ya
Maaf ni blognya agak un updated for temporary karna lagi sibuk nyoba prado, ntar klo udah beres, pasti diposting disini, gomenasai..
Permalink
No Comments
Dari salah satu komentar yang mampir:
mas php adminya kok lum ada
smua buku ku mengarah pembelajaran pad apache,php,mysql,phpmyadmin
saya kebingungan cara dowload php my admin n cara cconfigurasinya dengan ketiga software ersebut
Pertama terimakasih untuk ali56 atas komentarnya, kedua, saya ingin tekankan bahwa phpmyadmin bukanlah satu-satunya cara untuk manajemen basisdata mysql, ada banyak tools seperti sqlyog, mysql-front atau cara konvensional tapi paling powerful, lewat console
phpmyadmin adalah salah satualat bantu (tools) manajemen mysql berbasis web. Untuk menggunakan phpmyadmin, kita harus meng-unduh phpmyadmin disini. Setelah selesai, extract pada DocumentRoot sesuai dengan konfigurasi webserver Apache (atau yang lain) pada baris
DocumentRoot “C:/www”
Konfigurasi yang perlu dilakukan adalah, merubah username yg melakukan koneksi ke database (untuk single user). ubah file “config.inc.php” pada direktori “config” di dalam direktori phpmyadmin yang sudah kita ekstrak sebelumnya. Ubah baris
$cfg['Servers'][$i]['controluser'] = ‘pmausr’;
$cfg['Servers'][$i]['controlpass'] = ‘pmapass’;
sesuaikan pmausr dan pmapass dengan user database anda.
Sampai disni, anda sudah dapat menggunakan phpmyadmin, namun agar berkerja maksimal, ada modul PHP yang sebaiknya kita aktifkan. Buka file “php.ini” cari baris
;extension=php_mbstring.dll
hilangkan tanda semicolon/ titikkoma/ ; di awal baris sehingga menjadi
extension=php_mbstring.dll
Buka alamathttp://127.0.0.1/phpmyadmin/ pad web browser, dan lihat apakah phpmyadmin kita sudah siap digunakan
. Jika masih terdapat error, silahkan dilihat dokumentasi phpmyadmin atau tinggalkan komentar pada post ini, dan kita bahas bersama. Terimakasih 
Permalink
4 Comments
Sebelumnya kita telah membahas bagaimana mengoutputkan string/ huruf. Namun karena pada dasarnya PHP tidak mengenal tipe data, penulisan untuk string seperti dalam kasus hai programmer kursus sebelumnya dapat juga digunakan untuk mengoutputkan angka.
Yang akan kita bahas disini berkaitan dengan angka dan penanganan khusus PHP dalam mengoutputkan angka.
$angka1 = 5;
$angka2 = '3';
$hasil = $angka1 + $angka2;
echo 'Hasilnya $angka1 + $angka2 = '.$hasil.' = '.($angka1 + $angka2).'<br />';
Akan menghasilkan
Hasilnya $angka1 + $angka2 = 8 = 8
Dari baris-3 dapat kita lihat, tidak peduli anda menulis angka dalam kutip atau tidak (tipe string), PHP hanya akan melihat nilainya apakah berupa angka atau string. Dan pada baris ke-5, Operasi bilangan dapat anda langsung lakukan pada output dengan menggunakan kurung ( ) sebagai penanda bahwa yang disisipkan adalah berupa operasi bilangan yang mempunyai return value. Operasi dasar bilangan dalam PHP adalah
+ : penjumlahan. Misal : 7 + 3 hasilnya adalah 10
- : pengurangan. Misal : 7 - 3 hasilnya adalah 4
* : perkalian. Misal : 7 * 3 hasilnya adalah 21
/ : pembagian. Misal : 7/2 hasilnya adalah 3.5
% : modulus/sisa pembagian. Misal 7%3 hasilnya adalah 1
Untuk bermacam kepentinan, kadang kita memerlukan penulisan angka dengan format tertentu, untuk itu kita dapat menggunakan fungsi sprintf(), panduan lengkapnya dapat dilihat disini.
Untuk lebih meyakinkan bahwa yang kita outputkan sudah ssuai dengan tipe data yang kita inginkan kita dapat melakukan casting seperti contoh dibawah ini untuk mengoutput bialngan integer (bilangan bulat)
<code>
$i = 8;
echo (int) $i;
</code>
Selain cast untuk (int) ada juga
- (integer) - cast untuk integer
- (bool), (boolean) - cast untuk boolean
- (float), (double), (real) - cast untuk float
- (string) - cast untuk string
- (binary) - cast untuk binary string (PHP 6)
- (array) - cast untuk array
- (object) - cast untuk object
Hmm.. kursus ke-2 tentang bilangan dan operasi bilangan sampai disini dulu, ada pertanyaan silahkan tinggalkan komentar anda, kami dengan senang hati mencoba menjawabnya.
. Salam, enjoy your day
. 
Permalink
No Comments
Selamat datang di posting pertama kursus PHP. Disini saya akan membagi apa yang saya thu tentang PHP, from zero (dari awal mula) to hero (jadi Batman
) WHAT?!?!?
Mari kita mulai dengan berdoa 
Aplikasi pertama kita, bukan sekedar hello world
namun lebih kepada mengenal sifat string di PHP
. Sebelum memulai, kita buat kesepakatan terlebih dulu. Berdasarkan ini, kita akan lebih cenderung menggunakan echo untuk menuliskan output. Dan berdasarkan ini, kita akan menggunakan single-quote/ kutip satu untuk delimiter string kita. Deal
echo 'Hai.';
echo ' Hai<br />$programmer. ';
$programmer = 'PHP';
echo ' Hai '.$programmer.'.';
$programmer .= 'HANIFA';
echo ' Hai '.$programmer.'.<br />';
$hari = 'Jum\'at';
echo ' Hai '.$programmer.', ini hari '.$hari.'.';</pre>
<pre>
Dan outputnya akan menjadi
Hai.Hai
$programmer. Hai PHP. Hai PHPHANIFA.
Hai PHPHANIFA, ini hari Jum’at.
Kita dapat melihat hasil dari baris ke-3 bahwa $programmer akan di outputkan apa adanya, karena berada dalam single-quote string, tetapi tag HTML dan karakter spesial HTML tidak terlihat karena sudah diterjemahkan menjadi break dan non-breakingspace kecuali kita view source browser kita.
Sedangkan baris ke-4 dan baris ke-5 menunjukkan delimiter dan penggabungan antara variabel dengan string. Pada baris ke-6, kita menyambung variabel programmer kita dengan string ‘HANIFA’ menghasilkan PHPHANIFA sebagai nilai dari variabel programmer.
Perhatikan, berapapun banyaknya spasi yang klita berikan pada baris ke-7, output hanya akan menghasilkan satu spasi saja.
Baris ke-8 dan 9 menunjukkan cara menggunakan kutip satu/single-quote ( ' ) di dalam string yang delimiternya kutip satu juga, yaitu dengan melakukan escape character dengan memberikan tanda backslash ( \ ) sebelum karakter. Hal ini juga berlaku jika kita ingin menggunakan kutip dua/double-quote ( " ) di dalam string yang delimiternya kutip dua.
Baik, hari ini cukup sekian. Tentang menampilkan variabel bertipe string. Rencananya post kursus selanjutnya membahas tipe bilangan dan operasinya.
Terimakasih.. 
Permalink
2 Comments
Anda membuat web-web berisi informasi sensitif seperti trading, forex, e-shopping? Anda sudah menggunakan clean URL, https, captcha, honeypot, blackhole, dannnn segala macam pencegahan dalam berbagai layer aplikasi, namun masih saja jebol hanya karena kelalaian user yang awam, memilih opsi “remember password” pada browser di komputer yang digunakan secara bersama-sama, misal di warnet, atau bahkan di kantor dan institusi-institusi, baik pendidikan hingga pemerintahan (Angkatan Bersenjata, POLISI, Dinas Rahasia, dll). Cukup gawat bukan??
Lalu saya melihat situs ini dan ini, kita tidak di prompt untuk penyimpan password
Mengapa?? Ternyata ada script trik tertentu, dengan menambahkan variabel
autocomplete=“off”
pada tag
<form>
Sehingga tag form kita menjadi
<form method="post" action="" autocomplete = “off” >
Mudah bukan??
Semua hal di dunia seperti dua muka mata uang, selalu ada kebalikannya. Demikian pun untuk script ini, anda dapat melakukan kebalikannya, maksudnya disini, anda dapat meng-bypass blocking autocomplete milik Yahoo! (yang sudah saya ujicoba), namun cara ini hanya berlaku pada browser Mozilla
Caranya..
- Buka halaman target yang anda ingin simpan passwordnya namun situs itu menonaktifkan autocompletenya
- Copy script berikut dan paste pada addressbar Firefox browser
javascript:(function(){var ca,cea,cs,df,dfe,i,j,x,y;function n(i,what){return i+" "+what+((i==1)?"":"s")}ca=cea=cs=0;df=document.forms;for(i=0;i<df.length;++i){x=df[i];dfe=x.elements;if(x.onsubmit){x.onsubmit=”";++cs;}if(x.attributes["autocomplete"]){x.attributes["autocomplete"].value=”on”;++ca;}for(j=0;j<dfe.length;++j){y=dfe[j];if(y.attributes["autocomplete"]){y.attributes["autocomplete"].value=”on”;++cea;}}}alert(”Removed autocomplete=off from “+n(ca,”form”)+” and from “+n(cea,”form element”)+”, and removed onsubmit from “+n(cs,”form”)+”. After you type your password and submit the form, the browser will offer to remember your password.”)})();
- Akan muncul pesan berikut jika anda melakukannya dengan benar

- Masukkan username dan password anda seperti biasa
- Dan Firefox akan meng by-pass autocomplete=”off” dan akan mengingat username dan password anda.
beres.. 
Permalink
No Comments
Sebenarnya, seluruh bahasa pemrograman mempunyai kemampuan yang sama untuk membangun suatu program. Mereka memiliki statement:
- pengkondisian (if..then..else..; switch/ case..of.. )
- Perulangan dengan pengecekan kondisi berhenti di awal (while..do..)
- Perulangan dengan pengecekan kondisi berhenti di akhir (do..while..; repeat..until..)
- Perulangan dengan jumlah yang ditentukan (for..to..do..; foreach..)
- Memberikan pesan (write; print; echo)
- Kemampuan membaca/ menulis/ menghapus/ memindahkan file (fread; fwrite; ulink; cp; touch
*
- Berinteraksi dengan aplikasi/ modul lain (fopen; include; use) *
- Menangkap kesalahan/ menyimpan/memberikan pesan error (catch Exception; try) *
- Koneksi dengan basisdata (connect; open) untuk aplikasi client server berbasis data *
CMIIW jika ada yang keliru atau terlewat. Pada dasarnya kemampuan tersebut dimiliki oleh seluruh bahasa pemrograman tingkat rendah. Dan kemampuan (*) pada bahasa yang lebih tinggi, seperti bahasa visual dan PHP sendiri.
Artinya, anda diberikan kebebasan menggunakan bahasa apapun untuk membangun suatu program aplikasi. Yang penting program memberikan output yang diharapkan dengan input yang diharapkan juga.
Namun terdapat beberapa pertimbangan dalam memilih bahasa pemrograman
- Lingkungan/ environment implementasi program. Apakah pengguna disana lebih mudah berbasis windows atau web, sistem operasi yang digunakan, usia pengguna, dan lain sebagainya.
- Penguasaan dan kemahiran. Anda mungkin meguasai suatu bahasa pemrograman, namun belum tentu anda mahir. Maksud saya, saat anda mengetahui suatu bahas anda juga diharakan dapat menggunakan bahas tersebut seoptimal mungkin, mengurangi jumlah LOC dan penggunaan resource yang optimal.
- Avaibility/ ketersediaan. Anda boleh jadi menguasai VB.Net, ORACLE, MS-SQLServer dan berbagai bahasa propietary. Tapi apakah ada ketersediannya (dengan legal tentunya). Jika anda/ client anda mempu untuk pengadaan aplikasi propietary, kenapa tidak, dan biasanya project dengan bahasa propietary nilainya lumayan “njomplang” dibanding dengan aplikasi yang dibangun dengan bahasa opensource.
- Support. Sebelum (mengklaim) anda mencapai tingkat mahir, anda pasti sering berhubungan dengan elemen yang satu ini. Support dapat berupa dokumentasi bahasa pemrograman (help) yang memadai, manual, forum diskusi, online/ offline custumer support yang dapat dihubungi dan jaringan pengguna yang luas dan berpengalaman akan sangat membantu dalam memberikan saran dan ide pembuatan program.
Selamat memilih.. 
Permalink
1 Comment
Jika anda pengguna W®, anda pasti pernah berhadapan dengan dialog box seperti ini
atau ini 
Anda akan menemui dialog box seperti itu saat anda akan menghapus file setup.exe atau file beratribut readonly, atau saat memindahkan file, terdapat nama file yang sama.
Ada pilihan Yes atau No, yang kosekuensinya anda harus kembali memilih jika kembali menemui kondisi yang sama.
Dan ada pilihan Yes to all, jika anda ingin “meng-Yes-kan” setiap kali anda menemui kondisi seperti itu.
Lalu kenapa tidak ada pilihan No to all, padahal saya seringkali menemui kondisi dimana saya memerlukan No to all, sebenarnya, ADA
Caranya:
Tekan dan tahan tombol [Shift] saat anda mengklik No
Dengan demikian anda seolah-olah selalu No jika menemui kondisi file setup.exe, readonly, file replace. Neat 
Permalink
No Comments