Welcome to Abdul Malik Ikhsan's Blog

Zend Framework Modular Application for Efficient Development Process

Posted in Tutorial PHP, Zend Framework by samsonasik on December 19, 2009

Coba perhatikan 2 gambar berikut :

Secara sekilas, gambar bagian kanan ‘seolah’ lebih sederhana daripada bagian kiri, hanya saja, ketika ruang lingkup aplikasi meluas, maka lebih menguntungkan jika kita menggunakan struktur bagian kiri. Pada gambar struktur bagian kiri, aplikasi disusun secara modularitas, seperti xaraya , sehingga ketika ada pengupdate-an suatu modul di sisi client, maka kita tidak perlu mencomot controllers, models, dan view satu-satu dari aplikasi, tapi cukup satu modul itu dicopy, dan ditimpa, just copy, and paste.

Persiapan untuk menggunakan cara ini, yang pertama, siapkan file konfigurasi (ex : application.ini ) di dalam folder config.
contoh :

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0

;Database Configuration
resources.db.adapter         = "PDO_PGSQL"
resources.db.params.host     = "localhost"
resources.db.params.username = "ikhsan"
resources.db.params.password = "ikhsan"
resources.db.params.dbname   = "zend_prj"

;resource module
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ""

;Bootstrap
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

[staging : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

Kalau sudah, langkah selanjutnya adalah set master bootstrap yang ada di direktori application.

<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

 protected function _initAutoload()
 {
 $autoloader = new Zend_Application_Module_Autoloader(array(
 'namespace' => '',
 'basePath'  => APPLICATION_PATH.'/modules/default'
 ));

 return $autoloader;
 }

 protected function _initDoctype()
 {
 $this->bootstrap('view');

 $view = $this->getResource('view');
 $view->doctype('XHTML1_STRICT');

 return $view;
 }

 protected function _initView()
 {
 $view = new Zend_View();
 $sesi = new Zend_Session_Namespace();

 $view->headTitle('Zend Project');

 //set layout directory ...
 $layout = (null!=$sesi->sesiuser) ?"layout" : "layoutlogin";

 //contoh set theme style....
 $theme = "zend_prj";

 Zend_Layout::startMvc(array(
 'layoutPath' => PUBLIC_PATH."/themes/$theme/$layout/scripts",
 'layout' => 'layout'
 ));

 return $view;
 }

}
?>

Setelah itu, kita set default bootstrap module (nama class = Namamodule_Bootstrap ) –> file Bootstrap dapat dicopy untuk tiap module 🙂

<?php
class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
 protected function _initView()
 {
 $router = new Zend_Controller_Router_Rewrite();
 $request =  new Zend_Controller_Request_Http();
 $router->route($request);

 $module = $request->getModuleName();
 $module = ($module=='default') ? 'home' : $module;

 $view = new Zend_View();
 $view->headTitle(' : '.$module);

 return $view;
 }

}
?>

Penamaan kelas dalam module dipisahkan oleh namespace masing-masing, jadi kalau kita letakkan file model di dalam module samplemodule misal, ya berarti kita bisa beri nama kelasnya,
misalnya Samplemodule_Model_Examplemodel dengan nama file Examplemodel.php

NB :
untuk PUBLIC_PATH , kita bisa define kan seperti berikut di public/index.php:

defined('PUBLIC_PATH')
 || define('PUBLIC_PATH', realpath(dirname(__FILE__)));

Cerita pendek berjudul ” Cape deh “

Posted in lucu2 by samsonasik on December 16, 2009

Boss bicara dengan sekretarisnya: “Seminggu kita pergi untuk perjalanan
dinas, tolong siap-siap.”

Sekretaris telepon suaminya: “Mas, saya mau berangkat untuk perjalanan
dinas, hati-hati di rumah ya.”

Suami telepon kekasih gelapnya: “Istriku mau berangkat seminggu, kau ada
waktu?”

Kekasih gelap bilang terhadap anak kursusnya: “Nak, ibu punya banyak
kerjaan selama seminggu, kursus ditiadakan selama seminggu.”

Anak kursus bilang terhadap kakeknya: “Kek, seminggu tidak ada kursus,
gurunya sibuk. Ayo kita jalan-jalan. ”

Kakek (=Boss) telepon sekretarisnya: “Minggu ini saya mau jalan-jalan sama
cucu saya, meeting dibatalkan.”

Sekretaris telepon suaminya: “Bossnya ada kerjaan rumah yang mendadak,
tripnya dibatalkan Mas.”

Suami bilang kekasih gelapnya: “Kau tak bisa datang, istriku tak jadi
pergi.”

Kekasih gelap telepon anak kursusnya : “Nak, kursus minggu ini berjalan
seperti biasa.”

Anak kursus bilang sama kakeknya: “Kek, guruku bilang kursus berjalan
normal. Kakek jalan sendiri aja.”

Kakek bilang sama sekretarisnya: “Minggu ini kita atur perjalanan dinas
lagi. Kamu siap-siap, yah!”

Cape deh…

Sumber : email forwad-an 😀