October31
Mungkin rekan rekan semua udah ada yang pernah denger symfony web application framework
Based on the best practices of web development, thoroughly tried on several active websites, symfony aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure.
di website nya bilang begituh… well anyway mari kita coba coba belajar symfony….
langkah nya cukup gampang koq
1. Download
Untuk intial project disarankan untuk mendonlot sf_sandbox. Kenapa ? karena di sandbox itu semua requirement nya symfony udah tersedia. Jadi tinggal pake dan utak atik…
2. Set PHP
Langkah berikutnya kita set PHP biar bisa di panggil lewat konsole. Klo di windows itu di Start->Setting->Control Panel->System->Advanced Options->Environment Variables lalu cari variable Path, lalu edit… tambahkan %PATH%:$PATH_TO_PHP … $PATH_TO_PHP itu tempat kita taruh php.exe
database
Sekarang kita akan coba membuat aplikasi database dalam hal ini kita coba buat aplikasi movie Review…
Didalam perencanaan nya kita ingin ada Movies, Movies bisa direview oleh banyak User, Setiap User bisa Mereview banyak movie sehingga kita dapatkan dua database dengan hubungan many to many. Untuk mempermudah kita buat satu table untuk membantu kita yaitu table review…
Jadi table kita menjadi
- Movie One to Many Review
- User One to Many Review
- Review Many to One User
- Review Many to One Movie
Untuk memperkirakan field database kita gunakan asumsi-asumsi…
Movie
Setiap Movie pasti ada judul, produsen, sutradara, tanggal release movie nya, sama sinopsis.
User
Setiap User punya user, password, etc….
Review
Ada Movie, ada User yang mereview, ada isi review, tanggal review, sama rating….
Saya kira segitu cukup untuk memberikan gambaran bagaimana database yang akan kita buat.
Untuk database di symfony sendiri, standardnya menggunakan
Propel
Propel ada sebuah ORM ( Object Relational Mapping ), yang menurut saya sih sangat membantu, yah lumayan lah walau klo di bandingkan dengan hibernate di Java masih kalah.
Sedikit mengutip dari Wikipedia :
Object-Relational mapping (aka O/RM, ORM, and O/R mapping) is a programming technique for converting data between incompatible type systems in databases and object-oriented programming languages. This creates, in effect, a “virtual object database” which can be used from within the programming language Wikipedia
Untuk mengedit database di symfony edit sebuah file di folder config/schema.yml
kira kira ini isi nya
propel:
movie:
_attributes: { phpName: Movie }
id:
movie_name: varchar(50)
movie_detail: longvarchar
movie_length: varchar(10)
movie_status: varchar(25)
movie_genres: varchar(50)
movie_released: date
movie_rating: varchar(100)
movie_distributors: varchar(50)
movie_production_co: varchar(50)
movie_studio: varchar(50)
movie_location: longvarchar
movie_produced_in: varchar(50)
created_at:
critics:
_attributes: { phpName: Critics }
id:
movie_id:
reviews: longvarchar
rating: varchar(5)
user_id: { type: integer, foreignTable: sf_guard_user, foreignReference: id, required: true, onDelete: cascade }
created_at:
harap di perhatikan kalau settingan ini sangat sensitive masalah spasi , dan tidak boleh pake TAB
setelah di simpan
lalu coba buka directory symfony melalui konsole lalu ketik :
C:\>symfony propel-build-model
C:\>symfony propel-build-sql
C:\>symfony propel-insert-sql
dan viola!!! jadi deh database nya … default dari sandbox memakai sqllite…
CRUD
CRUD ada lah aplikasi dasar dalam PHP yang fungsinya hanya untuk Create Read Update Delete jadi untuk mempermudah dan mempercepat kita gunakan generator bawaan dari symfony…
C:\>symfony propel-generate-crud frontend movie Movie
C:\>symfony propel-generate-crud frontend critics Critics
C:\>symfony cc
frontend perintah di atas adalah nama aplikasi nya ….
movie adalah nama script nya sedangkan Movie adalah nama object nya..
– phpName: Movie di schema.yml —
symfony cc adalah perintah untuk membersihkan cache nya symfony…
lalu coba buka browser .. lalu buka url
http://localhost/sf_sandbox/web/frontend_dev.php/movie
jika semua langkah nya tepat seharusnya keluar

well segitu aja dulu sekarang … kita lanjutin lain waktu