Showing posts with label symfony PHP. Show all posts
Showing posts with label symfony PHP. Show all posts

5.20.2010

Symfony Dojo File Upload

problem: migrate apliakasi especimen ke server baru, dan lupa kode untuk upload file sehingga muncul error berikut



dan ternyata kesalahan adalah set header kembalian dari symfony yang harus di set menjadi text/html. (karena memakai dojo, semua seragam memakai json). setelah diperbaiki, aplikasi kembali berjalan seperti semula:



snippet symfony untuk set header:
//set request header as text/html
$this->getResponse()->setHttpHeader('Content-type', 'text/html');

7.23.2008

Membuat Skeleton Kerja PHP Symfony [draft]

salah satu framework PHP yang powerful adalah symfony. Dengan dukungan editor open seperti Eclipse didapatkan environment yang lengkap untuk mengembangkan aplikasi web. Berikut adalah langkah membuat skeleton kerja PHP Symfony menggunakan Eclipse.

Setting Environment Eclipse


- plugin eclipse yang dibutuhkan adalah symfoclipse, wicked shell
- open view symfoclipse, buat PHP Project, kemudian klik kanan pada project tersebut dan pilih menu "init-project"

Plugin Default


plugin yang dibutuhkan adalah sfGuardPlugin untuk otentikasi dan otorisasi pengguna. sfPropelTextOutputBehaviorPlugin untuk export view dalam bentuk JSON atau XML.

optional plugin yang juga sering dipakai: sfTCPDFPlugin untuk membuat format PDF.

Membangun Aplikasi Default -> Admin


membangun aplikasi default untuk control panel admin

3.04.2008

Menikmati Alternasi - PHP Symfony

Salah satu alternatif penggunaan framework untuk rapid development PHP adalah symfony.
Symfony menggunakan ORM Propel, memungkinkan pembangkitan source code dari skema database yang ada (reverse engineering).

jika database fisik belum ada, bangun skeleton schema.yml terlebih dahulu. kemudian menggunakan perintah symfony build-model dan symfony build-sql akan membangkitkan model dan statement SQL untuk database tersebut.

jika database fisik telah ada, Propel dapat membangkitkan dengan perintah symfony propel-build-schema.

dengan demikian pendefinisian schema.yml menjadi penting di sini dan sangat menghemat waktu jika pendefinisian database telah benar.

penggunaan propel-build-model membangkitkan kelas dalam package lib.modules dengan kata kunci nama kelas [model]*.php dan lib.modules.om dengan kata kunci nama kelas Base[model].php.

Framework adalah perangkat pendukung, bukan perangkat utama, oleh karenanya itu business model harus sebisa mungkin lepas dari spesifikasi framework yang dipakai. Dari pembangkitan kelas dengan propel-build-model tampak bahwa model disimpan dalam kelas Base[model]. Hal ini mencerminkan desain yang kurang baik jika kita berpindah dengan framework yang lain. Solusi multiple inheritance tidak dapat digunakan karena PHP tidak mendukungnya. Oleh karena itu solusi alternatif adalah membangun interface untuk model kita.

Interfaces ditempatkan di packages lib.interfaces. Dengan load propel-build-model, konfigurasi class autoload akan menyertakan definisi interfaces yang dibuat tanpa menghapus definisi model lain yang telah dibangkitkan dan dimodifikasi sebelumnya. Gambar dapat dilihat berikut ini:


Walaupun informasi attribute akan hilang, setidaknya definisi method masih dapat disimpan, dan detail implementasi tetap diuraikan pada kelas turunan yang coupling dengan framework symfony agar dapat memanfaatkan tools development dari symfony yang sudah ada, seperti propel-init-admin, propel-crude-generate.