Tampilkan postingan dengan label Symfony. Tampilkan semua postingan
Tampilkan postingan dengan label Symfony. Tampilkan semua postingan

Rabu, 19 Agustus 2015

      Untuk menampilkan data dari database ke progam, kita pasti tidak lepas dari query ke database seperti perintah SELECT, INSERT, DELETE, dan lain sebagainya. Secara default, symfony 1.4 menggunakan ORM untuk interaksi dengan database. ORM yang digunakan adalah PROPEL dan DOCTRINE. Dan untuk tulisan saya kali ini dan tulisan saya selanjutnya akan menggunakan PROPEL.

Menampilkan Semua Data

      Untuk menampilkan semua data, biasanya kita menggunakan query SELECT * FROM .....Coba lihat kode berikut.


public function executeIndex(sfWebRequest $request)
{
$this->barangs = BarangPeer::doSelect(new Criteria());
}

di atas merupakan function index yang berada di direktori inventory/apps/frontend/modules/liststok/action/actions.class.php.


$this->barangs = BarangPeer::doSelect(new Criteria());

function doSelect()merupakan function yang digunakan untuk menampilkan data. doSelect() mempunyai parameter object dari Criteria, juka object Criteria kosong, maka doSelect() akan menampilkan semua data dari table di database atau hasilnya sama dengan perintah "SELECT * FROM BARANG". BarangPeer merupakan model object dari tabel yang berada di database. Untuk mempelajari lebih jauh tentang object peer, anda bisa buka di direktory lib/model project symfony anda.

Menggunakan Criteria

      Criteria digunakan untuk membuat query sql dengan berbagai kriteria yang di inginkan seperti where, order by, limit dan lain lain. Untuk menggunakan Criteria anda harus mendefinisikan object dari criteria terlebih dahulu.

$criteria = new Criteria();

$criteria merupakanonject dari Criteria yang digunakan untuk memanipulasi criteria yang di inginkan.


$criteria = new Criteria();
$criteria->add(BarangPeer::STOCK,0,Criteria::EQUAL);
$this->barangs = BarangPeer::doSelect($criteria);

di atas sama dengan perintah "SELECT * FROM BARANG WHERE STOCK=0". Criteria::EQUAL digunakan untuk mencari data yang sama. Ada beberapa Criteria yang disediakan oleh Propel :


Criteria::EQUAL
Criteria::NOT_EQUAL
Criteria::GREATER_THAN, Criteria::GREATER_EQUAL
Criteria::LESS_THAN, Criteria::LESS_EQUAL
Criteria::LIKE, Criteria::NOT_LIKE
Criteria::CUSTOM
Criteria::IN, Criteria::NOT_IN
Criteria::ISNULL, Criteria::ISNOTNULL
Criteria::CURRENT_DATE, Criteria::CURRENT_TIME,
Criteria::CURRENT_TIMESTAMP

sesuai dengan namany, anda pasti sudah bisa menebak untuk apa Criteria tersebut.

      Sementara cukup sekian tulisan saya kali ini. Saya lanjutkan di lain kesempatan. Terima kasih.

references : http://symfony.com/legacy/doc/jobeet/1_3/en/06?orm=Propel

Senin, 13 Juli 2015

      Selamat siang, melanjutkan tulisan saya sebelumnya tentang symfony, kalo sebelumnya kita sudah membuat aplikasi, model, form, dan filter, kali ini saya lanjutkan dengan membuat modul. modul merupakan folder / direktori dari setiap menu yang ada dalam aplikasi. Dalam modul terdapat action atau controller, template yang berisi file kode html atau tampilan dan file pendukung lainnya. Modul mempunyai dua jenis, yaitu modul admin dan tidak admin. Langsung saja ke TKP.

Modul Non Admin

      Untuk membuat modul non admin, kita tidak usah repot repot menulis kode satu persatu secara full manual, cukup ketik perintah berikut.

symfony propel:generate-module --non-verbose-templates --with-show nama_aplikasi nama_module nama_model 

kode di atas akan menghasilkan modul di dalam aplikasi yang agan tentukan. Contoh


kode di atas, saya membuat modul liststok pada aplikasi frontend dengan menggunakan model barang. Maka struktur direktori aplikasi frontend saya jadi seperti ini.


di dalam folder module terdapat folder modul liststok yang berisi folder actions dan template. template berisi file tampilan yang di dalamnya ada syntax html untuk membuat tampilan. Dan pada folder actions terdapat file action.php yang merupakan action / controller untuk modul liststok. Untuk menjalankannya, buka pada browser agan url

http://localhost/symfony/web/frontend_dev.php/liststok

symfony merupakan nama project agan, frontend_dev.php adalah nama aplikasi yang agan buat dan liststok adalah nama module yang akan di panggi. Dan coba lihat hasilnya. Kita sudah punya halaman yang sudah lengkap dengan operasi CRUD di dalamnya. Dan kira kira seperti inilah jadinya


Module Admin

       Module admin adalah module yang sudah dilengkapi dengan operasi CRUD, filter,sorting data. Jadi proses pembuatan aplikasi menjadi lebih cepat. Untuk membuat modul admin, ketik dan jalankan perintah berikut pada CMD.

symfony propel:generate-admin nama_aplikasi nama_model --module=nama_module

dan berikut adalah contoh yang saya pakai


syntax di atas saya membuat modul kategori di dalam aplikasi backend. Sehingga struktur folder aplikasi backend saya menjadi seperti berikut.


dan hasilnya di browser seperti berikut


kita sudah punya menu kategori lengkap dengan operasi CRUD, filter, dan sorting. Namun tampilan di atas sangat standart, kurang enak di lihat. Symfony sudah menyediakan tampilan default menu admin generator. Untuk menggunakannya cukup jalankan perintah berikut di CMD.

symfony plugin:publish-assets

dan coba muat ulang halaman admin tadi. Dan seperti inilah kira kira
 

Sementara cukup sekian tulisan saya kali ini. Insya allah saya lanjutkan di lain kesempatan.
     Selamat pagi pemirsa, melanjutkan tulisan sebelumnya mengenai framework php symfony, kali ini saya lanjutkan bagaimana membuat aplikasi di symfony 1.4.

Koneksi Database

      sebagi contoh, di sini saya membuat database aplikasi inventory barang. Dengan struktur tabel seperti pada gambar di bawah.

untuk membuat koneksi ke database, buka file databases.yml yang berada pada folder config.

all:
propel:
class: sfPropelDatabase
param:
classname: PropelPDO
dsn: mysql:dbname=inventory;host=localhost
username: root
password:
encoding: utf8
persistent: true
pooling: true

silahkan isi sesuai koneksi ke database agan.
 sekarang waktunya kita bermain dengan command promt atau CMD. Cekidot.

Membuat Aplikasi

      Buka CMD dan masuk ke direktori project symfony dan ketikkan perintah berikut.

symfony generate:app nama_aplikasi

di atas adalah syntax untuk membuat aplikasi.Di sini saya membuat dua aplikasi yaitu frontend dan backend. Frontend untuk aplikasi yang akan di akses oleh user umum dan backend adalah aplikasi yang akan di akses oleh user di sisi admin.

dan hasilnya folder app saya terdapat dua folder aplikasi yaitu backend dan frontend sesuai perintah yang saya buat.

Menulis Schema

      Schema adalah file yang mendefinisikan struktur tabel di database. Schema berguna untuk membuat form, membuat model, bermigrasi ke DBMS yang lain dll. file Schema terdapat di folder config/schema.yml.
       Untuk menulis schema berdasarkan database yang telah dibuat, ketikkan perintah berikut di CMD.

symfony propel:build-schema

karenasaya memakai ORM Propel, maka syntax di atas dan syntax syntax yang lain nanti akan memakai propel sebagai ORM nya. Setelah perintah di atas di jalankan, buka file config/schema.yml dan lihat apa yang terjadi. File otomatis telah terisi sesuai dengan struktur tabel yang agan buat di database.

Membuat Model

       Model adalah class class yang akan dibuat untuk berinteraksi dengan tabel di database seperti melakukan perintah insert, read, update, delete. Folder model terdapat pada folder lib/model. Untuk membuat model tidak perlu membuat manual satu per satu, tetapi cukup dengan menuliskan syntax berikut pada CMD dan jalankan.

symfony propel:build-model

setelah di jalankan, coba lihat di folder lib/model.Maka otomatis kita mempunyai file model dan file Peer untuk kita sesuai dengan tabel yang ada di database. Dengan file model inilah kita akan berinteraksi dengan tabel tabel di database.

Membuat form

      Udah tahu form kan ? form adalah media kita melakukan input data. Form seperti textfield, textarea,radiobutton dll. Di symfony, kita tidak perlu susah susah membuatnya manual. Bayangkan jika tabelnya ada ratusan, butuh berapa hari untuk membuatnya. Untuk membuat form, cukup jalankan perintah berikut di CMD.

symfony propel:build-form

dan lihat di folder lib/form. Kita sudah mempunyai form sesuai dengan tabel yang ada di database.

Membuat Filter

      Sekarang filter. Apa itu filter ? Filter adalah semacam form pencarian data yang biasanya ada berdampingan dengan tabel. Filter berfungsi untuk form pencarian maupun filter data. Kebayangkan ssahnya nyari data satu per satu di tabel kalo gak ada filter ?. Untuk membuatnya gak perlu susah susah ngoding satu persatu. Cukup jalankan perintah berikut di CMD.
 
symfony propel:build-filter

maka kita sudah mempunyai file filter yang berada di folder lib/filter

Sementara cukup sekian dulu tulisan ini. Kita sambung di lain kesempatan untuk artikel selanjutnya tentang framework symfony 1.4. See You.

Kamis, 09 Juli 2015

      Selamat pagi, lama banget rasanya saya gak nulis di blog ini. Mungkin karena akhir akhir ini lagi sibuk sama berbagai kegiatan jadi belum sempat update tulisan di blog ini. Mumpung kali ini lagi agak longgar, saya mau nambah coretan baru tentang framework php.

     Kenapa framework ? apa ada yang salah dengan php native ? untuk jawaban pertanyaan tersebut saya kira sudah banyak di bahas di blog lain salah satunya di sini. Dan framework php pun ada buanyak banget dan gratis. Ada yang buatan Indonesia sendiri, ada yang dari luar. namun kali ini saya akan membahas tentang symfony versi 1.4 yang kebetulan sedang saya pakai di tempat kerja. Langsung aja Cekidot.

  1. Silahkan download package symfony 1.4 yang saya pakai di sini  atau yang versi asli di sini.
  2. Untuk tutorial instalasi versi asli bisa di lihat di sini 
  3. Extrak file hasil download ke dalam folder webserver agan, contoh saya pakai xampp jadi saya extrak di c:\\xampp\htdocs\
  4. Rename sesuai dengan nama project yang akan agan buat.
  5. Buka cmd dan masuk ke direktori hasil extrak tadi.
  6. kemudian ketik perintah berikut "lib\vendor\symfony\data\bin\symfony generate:project nama_project --orm=Propel" tanpa tanda petik. nama_project adalah nama folder project yang ari hasil extrak file zip tadi. Propel adalah ORM yang di gunakan.
  7. setelah generate selesai, maka struktur folder akan menjadi seperti berikut.
  8. penjelasan struktur folder sebagai berikut.
     
      Di symfony, satu project bisa terdiri dari banyak aplikasi. Contoh: dalam project SIM terdapat aplikasi frontend untuk aplikasi yang bisa dilihat oleh orang umum, aplikasi backend untuk aplikasi manajemen data oleh admin dll. Untuk membuat aplikasi terlebih dahulu harus mengatur file koneksi database. File konfigurasi database terdapat pada  file databases.yml di dalam folder config. Silahkan di configurasi sesuai database anda.

      Sementara cukup sekian tulisan saya kali ini, semoga masih ada kesempatan lain untuk melanjutkan tulisan ini. Sampai jumpa.