suprie.in.ruangkopi.com

suprie.in.ruangkopi.com

Symfony Apps Part II

November6

Yesterday we have try to build a simple application based on symfony, now we’ll try to make those apps more usable what we have left now is user management
the sequence if users want to make a movie reviews is

  1. user login to the apps
  2. user pick which movie he / she want to review
  3. he / she put some review on it
  4. he can see the reviews.

in the previous sample, we’ve only build the CRUD application, which base of almost every application. To make it simple, we will use a plugin for symfony called sfGuardPlugin. It’s a plugin to ease the pain of user management and save a lot of our time.

first of all you’ve to download the plugin sfGuardPlugin
and follow the instruction found in http://trac.symfony-project.com/attachment/wiki/sfGuardPlugin/

if you succeeded installed the plugin, you should see the login screen when you trying to access your module.

but the page is a plain one, let’s try to change it a little bit first of all you have to create a folder called sfGuardAuth in your module folder, the module folder it self is on the apps/samples

inside of the sfGuardAuth, create a new folder named templates. Now fire up your favorite editor and create a new PHP file, we have to name it signinSuccess.php and secureSuccess.php
let’s create it like this





"; echo input_tag('username', $sf_data->get('sf_params')->get('username')); echo " "; ?>
"; echo input_password_tag('password'); echo " "; ?>
"; echo link_to(__('Forgot your password?'), '@sf_guard_password', array('id' => 'sf_guard_auth_forgot_password')) ?>

that’s for the login page, now what we want is user pick the movie and then give their review of the movie.

Read the rest of this entry »

posted under PHP | 2 Comments »

Symfony Apps

November2

Di Post-an saya sebelum nya kita udah lihat sekilas tentang symfony, dan atas permintaan beberapa teman akhirnya saya putus kan untuk sedikit lebih mendetail tentang perintah perintah nya.

Kemarin kita membahas mengenai aplikasi untuk mereview film, mari kita lanjutkan pembahasan kemarin.

Lakukan ini di konsole / command prompt di directory tempat kita menyimpan symfony.

%SYMFONY% adalah tempat kita menyimpan symfony

langkah pertama ada inisialisasi module di symfony


C:\>%SYMFONY%\symfony init-app samples

Movie One to Many Review
User One to Many Review
Review Many to One User
Review Many to One Movie

maka kita akan mendapatkan rancangan database seperti ini :

Rancangan Database untuk Aplikasi Movie Database

Perhatikan di aplikasi diatas table name untuk user adalah sf_guard_user, sf_guard_user adalah salah satu table yang di gunakan oleh sfGuardUser salah satu plugin symfony, plugin ini di gunakan untuk authorisasi user.

langkah selanjut nya adalah merubah file yang ada di config/schema.yml menjadi seperti ini :


---
propel:
 movie:
    _attributes: { phpName: Movie }
    id:
    movie_name: varchar(50)
    movie_synopsis: longvarchar
    movie_released: date
    movie_produsen: varchar(100)
    movie_director: varchar(50)
    created_at:

 review:
    _attributes: { phpName: Review }
    id:
    movie_id:
    user_id: { type: integer, foreignTable: sf_guard_user, foreignReference: id, required: true, onDelete: cascade }
    reviews: longvarchar
    rating: varchar(5)
    created_at:

Perhatikan bahwa untuk tipe data String di symfony kita harus masukkan sebagai varchar atau longvarchar perbedaan antara varchar dengan longvarchar adalah banyaknya karakter, varchar maksimum hanya 255 diatas 255 gunakan longvarchar. Dan jangan lupa bahwa yml sangat sensitive dengan masalah spasi, dan juga tidak boleh ada tab. Sesuaikan editor anda untuk memakai 4 spasi menggantikan satu kali tab.

Setelah file di ubah, dan di simpan, maka yang harus kita lakukan adalah meng generasi kan database untuk symfony.


C:\>%SYMFONY%\symfony propel-build-model

Perintah ini berfungsi untuk membangun model atau object dari schema.yml, model ini lah nanti yang akan berfungsi menjadi DAO


C:\>%SYMFONY%\symfony propel-build-sql

Perintah yang satu ini berfungsi untuk membuat perintah perintah sql dari schema.yml


C:\>%SYMFONY%\symfony propel-insert-sql

Setelah di buat perintah perintah sql lalu di eksekusi melalui perintah diatas.

Dan selanjutnya kita akan coba meng generasi kan model model yang telah kita buat melalui perintah diatas. Dengan perintah berikut


C:\>%SYMFONY%\symfony propel-generate-crud samples movie Movie

untuk melihat nya kita harus membuka browser lalu buka url http://localhost/samples/web/samples_dev.php/movie/list
Direktori samples merupakan root direktori dari symfony
Contoh: List dari database movie yang kita buat.


C:\>%SYMFONY%\symfony propel-generate-crud samples review Review

Perhatikan juga bahwa semua relationship di form tersebut sudah di solve dengan cara memberikan combobox.
Contoh: List dari database movie yang kita buat.


C:\>%SYMFONY%\symfony cc

Perintah ini untuk membersihkan cache dari symfony… biasakan setelah melakukan perubahan kita melakukan clear cache

Yup That’s it for today
Update :
Untuk contoh aplikasi bisa langsung di coba disini dengan username dan password admin

posted under PHP | 6 Comments »

Symfony web Framework

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

  1. Movie One to Many Review
  2. User One to Many Review
  3. Review Many to One User
  4. 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

Symfony…

well segitu aja dulu sekarang … kita lanjutin lain waktu

posted under PHP | 12 Comments »