Tutorial Zend Bagian 1 - 3 - IlmuKomputer

Transcription

Tutorial Zend bagian 1 - 3Wirawan PrasetyoBestfriends si Dokumen:Copyright 2003-2007 IlmuKomputer.ComSeluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkansecara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapusatau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiapdokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijinterlebih dahulu dari IlmuKomputer.Com.Zend Framework merupakan salah satu framework php yang saat ini banyak digunakan. Padasaat awal pembelajaran akan sedikit sulit karena banyaknya hal yang harus dipahami. Namun,dibalik itu Zend sudah mendukung berbagai API yang disediakan oleh website2 besar.Zend frameword sudah mendukung penggunaan MVC dan php5. Sedangkan database yangsudah didukungnya : MySQL, Oracle, Firebird, SQLServer dll. Sedangkan ser vice yangdidukung : Flickr, Amazon, Technorati, Yahoo dan Akismet.Jadi buat kamu yg tertarik untuk mencoba framework ini atau memangmembutuhkan framework ini, silahkan melanjutkan membaca.Tetapi kalau kamu mau membuat aplikasi dan sudah memiliki requirementtertentu, ada baiknya kamu baca dulu dokumentasi. Apakah sesuai dengankebutuhan kamu. http://framework.zend.com/Atau baca artikel mengenai framework2 di php wikipediaphpit.net1. Kebutuhan dasarDisini gua menggunakan XAMPP 1.6.5 sebagai server dengan spek :-PHP v 5.2.5o-Konfigurasi httpd.conf ( root/xampp/apache/conf/httpd.conf) LoadModule rewrite module modules/mod rewrite.so( tanpa # ) Alllowoverwrite AllMySQL 5.0.51Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com1

-OS XP-File akan aku letakkan pada “instalationPath/xampp/htdocs/Root”.Jadi “index.php” berada �File asli dari framework ini, bisa di download dihttp://framework.zend.com. Didalam file tersebut, sudah adadokumentasinya. Sedangkan di webnya, juga tersedia video tutorial .Oia, aku menggunakan versi 1.5.2EditorEditor yg digunakan bisa bebas, notepad juga bisa digunakan.Namun, perusahaan zend juga membuat Zend Studio. Kelebihan darieditor ini, kita dapat melihat dimana sebuah klass yg kita gunakandideklarasikan ( tapi bayar loh ).Kalau di php, sepertinya belum ada aplikasi seperti ini. Namun, dijava bisa disamakan dengan NetBeans lah.Sedangkankan kemampuan dasar yang diperluan adalahkemampuan menggunakan php secara dasar seperti variabel,perulangan dan array. Kita menggunakan database MySQL denganGUI phpMyAdmin.2. Struktur FolderKetika kita menggunakan suatu framework. Maka kita wajib mengikutiaturan yg dibuat oleh penulis framework.Setelah kamu meng-unduh frameworknya, kemudian ekstraklah kesuatu tempat.Kemudian kopi filenya ke folder “Root”. Didalamnyasudah ada :-/ApplicationoController - disini tempat melekkan controller ( logika )oModel - disini tempat melekkan modeloView/script - disini tempat melekkan view( templat )-/Library - tempat menyimpan library zend-/public - bisa untuk meletakkan css kitaKomunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com2

3. Hello Word dan Form Sederhana3.1.Hasil AkhirHasil Akhir yang akan kita dapatkan pada akhir pengerjaan tutorialini adalah bagaimana cara menggunakan framework ini kemudianmembuat hello word sampai dengan membuat form sederhana untukmenampilkan hasil inputan user3.2.Kisi-KisiKlas-klas dari zend yang akan digunakan adalah : Zend ControlleroIni merupakan klas utama yang menujukkan bahwa kitamenggunakan MVC yang disediakan oleh framework ini3.3.Membuat htaccess dan index.php (bootstraping)Kali ini kita akan membuat suatu file yg fungsinya mencegah usermasuk ke dalam folder kita dengan mengetikan nama folder di dalamurl. Sehingga, setiap user akan kita alihkan ke halaman index rootsaja.Buatah “.htaccess “ file dengan isi, letakan di root aplikasi kamu.( missal di folder : Root )# Root\.htaccessRewriteEngine OnRewriteRule .* index.phpKomunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com3

Disini terlihat, apache akan selalu mengalihkan request kita keindex.php terlebih dahulu.Kemudian index.php akan memanggil class2 yg dibutuhkanframework dan mengeksekusi perintah yg ada di url. Ini kenapadinamakan bootstraopingSedangkan index.php kita isi dengan :# Root\index.phtml ?phperror reporting(E ALL E STRICT);ini set('display errors', true);date default timezone set('Asia/Jakarta'); rootDir dirname(dirname( FILE ));set include path('.' . PATH SEPARATOR . 'library'. PATH SEPARATOR . './application/models/'. PATH SEPARATOR . get include path());include "Zend/Loader.php";Zend Loader::loadClass('Zend Controller Front');// setup controller frontController Zend Controller Front::getInstance(); frontController- throwExceptions(true); frontController- );// run! frontController- dispatch();? Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com4

Penjelasan :-Ini set . - untuk menampingan pesan kesalahan di browser kita-Date . - jelaslah-require once 'Zend/Controller/Front.php - inilah file ygmenerangkan kita menggunakan framework Zend-include "Zend/Loader.php"; - ini klass yg mempermudah kitamenggunakan klass lainnya-Zend Loader::loadClass('Zend Controller Front’); - kitamenggunakan klas Controller3.4.Kontroller, Aksi ,View dan VariabelKetika kita mengetik / membuka suatu url ke aplikasi ygmenggunakan framework Zend, sebenarnya kita mengakses sebuahcontroller dan aksi di dalam controller tersebut. Dan juga akanmengirim variable dan nilai variable ( jika ada ).Secara default, kalau kita tidak menulis controller yg kita tuju. Makadianggap kita akan membaca controller index. ( akan disebut indexcontroller ). Setiap controller diletakkan dalam meController.php”.Dan jika kita juga tidak menulis nama aksinya, maka secara defaultitu berarti kita membaca aksi index. ( akan disebut index action diindex controller )#Root\application\controllers\IndexController.php ?phpclass IndexController extends Zend Controller Action{function indexAction(){}}? Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com5

Sedangkan jika tidak ada variabel . yah tidak ada nilai defaultnya.Sebagai contoh, http://localhost/Root sebenarnya kita menujuhttp://localhost/Root/index ( index kontroler).Karena juga tidak ada nama aksinya, jadi kita menujuhttp://localhost/Root/index/index ( index aksi di indexkontroler).Jika ingin mengirim variable, maka urlnya menjadi abel2.Jika mau mengirim variabel, nama kontroler dan aksi harus ditulis.Setelah mengetahui nama kontroler, Aksi dan Variabel yg dikirim. Kitamemerlukan satu halaman yg berfungsi menampilkan outputnya phtml”.Jadi setiap kontroler punya satu folder dan setiap aksi memilikitampilan sendiri (aksi.phtml) yang diletakkan dalam folder kontroler.Ini akan disebut view nama aksi di nama controller.Sebagai contoh, http://localhost/Root akan membutuhkan sebuahview index di l”.Mudah lah .3.5.Hello wordHehe . ini kan kata sakti kita setiap kali mempelajari bahasa baru. Yandak. Kita akan membuat suatu halaman untuk menginput nama danmood kita saat ini.Dan sebagai contoh, buatlah file index controller terlebih dahulu :3.5.1.Indeks ler.php ?phpclass IndexController extends Zend Controller Action{function indexAction(){}}? Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com6

3.5.2.Indeks View# Root\application\view\script\index\index.phtml ?phpEcho “Hello Word”;? Jalankan / aktifkan web server kamu, kemudian buka browserkesayangan kamu. Di url ketikan : http://localhost/Root. Maka browserkamu akan menampilakan “ Hello Word” ( pastinya tanpa kutip duayah ).Mudah kan .3.6.Header ,footer dan cssHeader dan footer merupakan komponen yg biasanya ada di suatuhalaman. Header biasanya berisi logo dan footer berisi copyright danlain lain.File header dan footer kita letakkan ”Untuk menambahkan header dan footer, pada file view kitamenambahkan script “ ?php echo this- render('namafile.phtml'); ? “Sedangkan file style, kita letakkan di“Root\public\styles\namafilecss.css”. Dan di view kita menambahkan“ link rel "stylesheet" type "text/css" media "screen" href " ?phpecho this- baseUrl;? /public/styles/site.css" ”Sebagai contoh, file �� ,kita tambah menjadi : ( tambahan diberi warna biru )#Root\application\view\script\index\index.phtml ?php echo this- render(header.phtml'); ? Hello WordKomunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com7

? echo this- render(‘footer.phtml'); ? Pada file controller index, kita akan membuat fungsi php ?phpclass IndexController extends Zend Controller Action{function init(){ this- initView(); this- view- baseUrl this- request getBaseUrl();}function indexAction(){}}? Penjelasan :a) Fungsi init pada merupakan fungsi pertama yg dijalankan ketika kita membuatclass baru.b) this- view- baseUrl this- request- getBaseUrl()menerangkan root dari url kitac) Kita membuat file header.phtml dan footer.phtml yg kemudian digunakan di halaman index.phtml ( echo this- render(“header.phtml”) ). Ini mirip seperti includes(“namafile.php”);d) Membuat file style sheet. “ ?php echo this- baseUrl;? / “ akanmenampilakn url kita yg sebenarnya.Kemudian, kita membuat file htmlKomunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com8

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 xhtml1-transitional.dtd" html xmlns "http://www.w3.org/1999/xhtml" xml:lang "en"lang "en" head meta http-equiv "Content-Type" content "text/html;charset utf8" / title My root Title /title link rel "stylesheet" type "text/css" media "screen"href " ?php echo this- baseUrl;? /public/styles/site.css" / /head body div id "headerRoot" Header root hr /div div id "isiRoot" Membuat file html /div div id "footerRoot" hr My footer copyright /div /body /html Membuat file style# Root\public\styles\site.css#headerRoot{Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com9

text-align : center;font-size:1.4em;color: #800000;}#footerRoot{text-align : center;}Refresh browser kamu, tampilan hello word akan berubah3.7.Menampilkan nilai suatu variabel di controller ke dalam viewSuatu halaman dinamis, biasanya diisi dengan tampilan yg berubah.Kali ini saya akan menampilkan “ title” web yg dikirim dari controllerke view# Root\application\controllers\IndexController.php ?phpclass IndexController extends Zend Controller Action{function init(){ this- initView(); this- view- baseUrl this- request getBaseUrl();}function indexAction()Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com10

{ this- view- title "Root saya"; this- view- isi "Ini isi halaman saya"; this- render();}}? Pada file, file html). “ title My rootTitle /title ” diganti menjadi “ title ?php echo this- title; ? /title ”.Pada file index.phtml# Root\application\view\script\index\index.phtml ?php echo this- render('header.phtml'); ? ?php echo this- isi; ? br hello word ?php echo this- render('footer.phtml'); ? Penjelasan :a) “ this- view- isi "Ini isi halaman saya";” padaindexcontroller.php menerangkan kita mengirim sebuahvariabel bernama “isi” dengan isi “Ini isi halaman saya” ketampilan(view)b) Kita juga dapat menggunakan “ this- view- assign('isi',’ Ini isihalaman saya '); ”c) “ ?php echo this- isi; ? ” pada index.phtml menerangkankita akan menampilan variabel dengan nama “isi”Refresh kembali browser kamu . berubahKomunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com11

3.8.Form SederhanaSebagai contoh, kita akan membuat sebuah form sederhana diindex.phtml yang meminta kita memasukkan nama kita kemudianakan ditampilkan di read.phtml.Karena itu, kita juga memerlukan sebuah aksi baru , bernama read.Pada file ex.phtml ) ?php echo this- render('header.phtml'); ? ?php echo this- isi; ? br hello word form action " ?php echo this- baseUrl ? /index/read"method "post" Masukkan nama kamu : input type "text"name "txtNama" br Masukkan mood kamu : input type "text" name "txtMood" input type "submit" value "Masuk" /form ?php echo this- render('footer.phtml'); ? Membuat file baru, .phtml ?php echo this- render('header.phtml'); ? ?php echo this- isi; ? br Selamat datang ?php echo this- nama; ? , saat ini moodkamu ?php echo this- mood; ? ?php echo this- render('footer.phtml'); ? Pada Index oller.php), membuat aksi baru(function readAction()). “ function indexAction() dan function init()”sengaja tidak ditampilkan untuk menghemat baris tapi di dalamaplikasi tetap ada.Komunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com12

?phpclass IndexController extends Zend Controller Action{.function readAction(){ request this- getRequest(); this- view- assign('nama', request getParam('txtNama')); this- view- assign('mood', request getParam('txtMood')); this- view- isi "Mood kamu hari ini"; this- render();}? Kemudian masukkan data kamu ke form diindex(http://localhost/Root), kemudian tekan tombol masuk. Munculkan .Penjelasanan :a) Pada index view Kita membuat form sederhana dengan field nama danmood. Action kita arahkan ke controller index dengan functionread ( form action " ?php echo this- baseUrl ? /index/read" method "post" )b) Pada function read action index controller Disini kita membuat aksi read sesuai dengan link formdiatas. request this- getRequest(); kita menampungsemua variable yg dikirim ke request this- view- assign('nama', request getParam('txtNama')); Kiat mengambil nilai variablesatu persatu (txtNama) untuk ditampilkan di web kitaKomunitas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com13

c) Pada read view Menampilan view yg dikirim3.9.KesimpulanMungkin sampai saat ini masih terlihat sulit ketika akanmengembangkan suatu aplikasi web. Tapi mari di telaah kembali, filecontroller (Root\application\controllers\IndexController.php) dan fileview ada file controller terlihat rumit, namun di file view terlihat mudah.Hanya memerlukan beberapa baris saja. Efeknya, ketika seorang webdesigner akan melakukan perubahan, dia tidak akan kesulitan. Karenatidak perlu berurusan dengan file php yg begitu banyak.Begitu juga ketika programmer melakukan coding, dia tidak perluterlalu memikirkan tampilannya.Source Code:File yang diikut sertakan hanya berupa hasil akhir. Kamu perlu terlebih dahulu mendownloadframeworknya secara online kemudian extrak ke htdocs. Kemudian letakkan file source codedengan menimpa folder app dan public.Biografi PenulisWirawan Prasetyo (Wawan) lahir pada bulan Desember tahun 1984.Menyelesaikan S1 di Universitas Bina Nusantara, Jakarta jurusan TeknikInformatika pada tahun 2007. Saat ini berkerja di sebuah media hukum online (www.hukumonline.com ) sebagai tas eLearning IlmuKomputer.ComCopyright 2003-2007 IlmuKomputer.Com14

- include "Zend/Loader.php"; - ini klass yg mempermudah kita menggunakan klass lainnya - Zend_Loader::loadClass('Zend_Controller_Front'); - kita menggunakan klas Controller 3.4.Kontroller, Aksi ,View dan Variabel Ketika kita mengetik / membuka suatu url ke aplikasi yg menggunakan framework Zend, sebenarnya kita mengakses sebuah