–Zend Framework– Send mail without setting your own mail server
Jika kita diminta untuk membuat aplikasi yang di dalamnya ada urusannya dengan kirim mengirim email, tapi ceritanya kita tak punya mail server, atau kita tak mau berpusing2 mikirin setting mail server, kita bisa menggunakan alternatif cara ini. Di Zend Framework, kita bisa memakai Zend_Mail_Transport_Smtp library, dan memanfaatkan smtp server yang sudah dipercaya, seperti punya Gmail misalnya. Yang perlu kita punya hanyalah account di Web Mail kepercayaan kita itu, dan kita tahu network protokol dan port-nya. Setelah itu, kita aktifkan openssl di php.ini kita, uncomment extension=php_openssl.dll . Kalau sudah, langsung deh kita coba :
<?php //isi port dengan port smtp , username & password dengan username&password account kita $config = array('ssl' => 'tls','port' => 587, 'auth' => 'login', 'username' => 'usernameaccountkita', 'password' => 'passwordaccountkita'); $transport = new Zend_Mail_Transport_Smtp("smtp.gmail.com", $config); $mail=new Zend_Mail(); //isi content email... $mail->setBodyText("Hai...., ini test kirim email dengan Zend Framework"); //isi pengirim... $mail->setFrom("kamu@domainkamu.com","NamaKamu(Bisa dikosongkan)"); //isi tujuan... $mail->addTo("emailtujuan@domain.com","NamaTujuan(Bisa dikosongkan)"); //isi subject $mail->setSubject("Test Kirim email dengan Zend Framework"); //kirim... $mail->send($transport); ?>
CodeIgniter modular with separating your own module and core CodeIgniter Application Framework
Cie, judulnya in English lagih, 😀 …
Langsung ajah yach (halah mulai dah alay, xi.xi.xi..), pada tulisan saya kali ini, saya akan membahas tentang codeIgniter modular dengan memisahkan module-module yang kita buat dan core CodeIgniter Application Framework. Pertama, yang harus kita tahu, codeIgniter mode clean-install tidak menyediakan sistem modular, hal ini tentu sangat membuat capek. Tentang pembandingan aplikasi modular dan tidak modular dapat di lihat di postingan saya yang sebelumnya untuk Zend Framework. Sebenarnya, kalau saya lihat, memang modular aplication membuat performa aplikasi menjadi sedikit lebih lambat, tapi tentu toh kita akan ambil resiko itu untuk sesuatu yang lebih menjanjikan, yaitu efisiensi dan keteraturan yang akan kita dapatkan nantinya.
Hal pertama, kita download dulu extension dari codeIgniter wiki : CodeIgniter modular extension , ( dokumentasi bisa dilihat di sini) , nah setelah kita download file .zip -nya, kita extract saja ke dalam folder system/application/libraries , setelah itu, let’s setting directory structure menjadi seperti ini :
Dari gambar di atas, terlihat saya membuat dua module, yaitu mod_default dan mod_sample.
Ok, kalau sudah, kita coba cut (CTRL + X) controllers, models, dan views di folder system/application kita (Jangan takut error !!!, namanya juga belajar kan 🙂 ).
Kalau sudah, kita coba cut (CTRL + X) file index.php yang ada di folder codeIgniter kita yang seharusnya sejajar dengan folder system ke dalam folder public yang baru saja kita buat. Setelah itu, kita edit file index.php kita tersebut di bagian SET THE SERVER PATH :
/* |--------------------------------------------------------------- | SET THE SERVER PATH |--------------------------------------------------------------- | | Let's attempt to determine the full-server path to the "system" | folder in order to reduce the possibility of path problems. | Note: We only attempt this if the user hasn't specified a | full server path. | */ if (strpos($system_folder, '/') === FALSE) { if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE) { $system_folder = realpath(dirname(__FILE__)).'/../'.$system_folder; } } else { // Swap directory separators to Unix style for consistency $system_folder = str_replace("\\", "/", $system_folder); }
Lihat pada bagian $system_folder = realpath(dirname(__FILE__)).’/../’.$system_folder; yang merujuk ke folder system yang sejajar folder public, karena require nya diambil dari folder public , jadi harus ambil ke dalam satu langkah ( cd ..) .
Setelah itu, kita edit file MY_Router.php (yang telah kita copy dari file compress tadi ke folder system/application/libraries).
ubah :
APPPATH.'modules/' => '../modules/',
menjadi :
APPPATH.'../../modules/' => '../../../modules/',
karena ceritanya kita akan meletakkan modules nya diluar folder system 🙂
Nah, setelah semua siap, kita boleh tambahin file .htaccess di folder public untuk meremove index.php dari URL yang kita akses.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Dengan syarat, kita aktifkan dulu module mod_rewrite dulu yang bisa kita aktifkan dengan meng-uncomment (hilangkan tanda ; ) di file httpd.conf di dalam folder web container kita ( xampp, appserv, etc)
;LoadModule rewrite_module modules/mod_rewrite.so
———
Ok, let’s setting the configuration :
Buka file routes.php dalam folder system/application/config :
ubah
$route['default_controller'] = "welcome";
menjadi
$route['default_controller'] = "mod_default/welcome";
Habis itu, buka file config.php dalam folder system/application/config :
ubah :
$config['base_url'] = "http://www.example.com";
menjadi :
$config['base_url'] = "http://".$_SERVER['SERVER_NAME'].str_replace("index.php","",$_SERVER['SCRIPT_NAME']);
———
That’s all, sekarang kita coba buat contoh kasus panggil models dari module yang berbeda : kita buat file testmodel.php di dalam folder mod_sample/models (di dalam module mod_sample , buat folder models).
berisi contoh berikut :
<?php class Testmodel extends Model { public function __construct() { parent::Model(); } public function testfunc() { echo "this is test func from sample module"; } }
Setelah itu, coba deh kita panggil di controllers welcome di module mod_default,( kita tadi telah CUT controllers nya ke folder mod_default) seperti berikut :
<?php class Welcome extends Controller { function Welcome() { parent::Controller(); } function index() { $this->load->model('mod_sample/Testmodel','tm'); $this->tm->testfunc(); } } /* End of file welcome.php */ /* Location: ./modules/mod_default/controllers/welcome.php */
———–
ok coy, sekarang kita coba panggil di browser :
Padahal kita panggil itu dari mod_default, kalau udah jalan , ya berarti udah berhasil :).
Referensi :
http://codeigniter.com/forums/
http://codeigniter.com/wiki/Modular_Extensions_-_HMVC/
4 comments