emulai proyek
Diterjemahkan Oleh : Wildan Maulana
Tantangan
Symfony advent calendar adalah kumpulan 24 tutorial yang dipublikasikan setiap hari, mulai dari 1 Desember sampai 25 Desember. Iya, Setiap hari ! , termasuk akhir pekan, tutorial baru akan dipublikasikan. Setiap tutorial, diusahakan akan kurang dari satu jam, sambil melihat perkembangan aplikasi web 2.0, dari A sampai Z. Untuk tanggal 25, aplikasi akhirnya akan di onlinekan, dan source code nya akan dibuat open source. Aplikasi ini berguna, menarik, dan menyenangkan.
24 Kali kurang dari 1 jam hampir sama dengan 1 hari, dan itu adalah waktu yang kami pikir cukup, agar seorang developer dapat mempelajari symfony. Setiap hari, fitur baru akan ditambahkan ke aplikasi ini. Setiap hari Anda akan sadar bagaimana cepat dan efisien membangun aplikasi web base dengan symfony, dan pasti rasa ingin tahu Anda akan bertambah.
Kami anggap tantangan ini tidak terlalu sulit, dan karena Kami juga orang-orang yang malas, Kami tidak memiliki rencana untuk hari ke 21. Fitur yang paling banya diminta oleh komunitas akan ditambahkan ke aplikasi Kami, tanpa adanya persiapan, dan kami akan membuatnya bekerja. Ini akan menjadi hari symfony-guru-for-a-day
Proyek
Aplikasi yang akan dibuat sederhananya bisa dibilang aplikasi ?tunjukkan dan katakan?, seperti daftar apa saja yang ingin dilakukan, buku telepon, atau toko buku. Tapi kami ingin menggunakan symfony untuk proyek yang orisinal, sesuatu yang berguna, dengan fitur yang banyak. Tujuannya adalah untuk membuktikan kalau symfony itu dapat digunakan pasa situasi yang kompleks, untuk mengembangkan aplikasi yang profesional dengan sedikit style dan usaha.
Kita juga berharap banyak orang yang akan menggunakan aplikasi ini untuk menunjukkan kalau website symfony dapat
menangani load yang besar. Oleh karena itulah, mengapa aplikasi ini perlu memberikan layanan yang nyata, dan
dapat menjawab keperluan yang ada ? atau membuat yang baru. Peluncuran web site ini akan diiringi dengan test
yang yang beray; ini juga artinya kami harap Anda, untuk mengetes website sambil melihat sampai berapa banyak
pengunjung yang dapat didukung oleh website ini.
Isi dari proyek untuk hari berikutnya akan dirahasiakan. Masih banyak yang harus dilakukan hari ini tnaoa menjelaskan fitur lengkap dari aplikasi web 2.0. Ini akan memberikan Anda waktu untuk beredebat dan tebakan-tebakan tambahan. Tapi, kita perlu sebuah nama. jadi, kita panggil saja : askeet.
Yang akan Kita Kerjakan Hari Ini
Fokus utama hari ini adalah menampilkan sebuah halaman aplikasi ini ke web browser, dan mensetting lingkungan development yang profesional. Ini termasuk instalasi symfony, pembuatan sebua aplikasi, konfigurasi web server, dan penyetingan source version control system.
Seharusnya ini mudah bagi orang yang telah mengikuti tutorial sebelumya, dan tidak terlalu sulit untuk yang lainnya Dan, setiap orang sudah tentu saja harus belajar yang baru.
Kami asumsikan Anda menggunakan sistem Unix-like dengan Apache, MySql dan PHP 5 yang sudah terinstall. Jika Anda
menggunakan sistem Windows, jangan panik : ini juga dapat bekerja dengan baik, anda hanya perlu mengetik beberapa
perintah pada cmd
prompt.
Instalasi Symfony
Cara termudah untuk menginstall sumfony adalah dengan menggunakan paket PEAR. Tapi, agar dapat menggunakan channels dan mengakses channel symfony = Anda harus mengupgrade PEAR Anda ke versi 1.4.0 atau lebih tinggi (kecuali Anda menjalankan PHP 5.1.0, dimana sudah ada PEAR 1.4.5) :
$ pear upgrade PEAR
Catatan : Jika Anda mengalami masalah ketika menggunakan PEAR, silahkan melihat bab Instalasi pada buku symfony.
Sekarang, Anda dapat menambahkan channel 'symfony' :
$ pear channel-discover pear.symfony-project.com
Anda siap menginstall versi stabil terakhir dari symfony, bersama dengan paket yang berhubungan :
$ pear install symfony/symfony
Cek lah kalau symfony sudah terinstall dengan menggunakan command line untuk mengecek versinya :
$ symfony -V
Jika Anda curiga tentang apa saja yang dapat dilakukan oleh commnd line ini untuk Anda, ketik symfony -T, untuk melihat opsi-opsi yang tersedia. Anda juga mungkin ingin membaca bab instalasi pada buku symfony untuk membaca bagaimana cara menginstall symfony dari format tgz atau dari repository svn. Kontribusi dari komunitas juga menjelaskan instlasi non-PEAR, Anda dapat melihatnya pada symfony wiki.
Jika Anda Penasaran tentang apa saja yang dapat dilakukan oleh commnd line
ini untuk Anda, ketik symfony -T
, untuk melihat opsi-opsi yang tersedia.
Anda juga mungkin ingin membaca [bab instalasi]
(http://www.symfony-project.com/book/1_0/02-Exploring-Symfony-s-Code) pada buku symfony untuk
membaca bagaimana cara menginstall symfony dari format tgz atau dari
repository svn. Kontribusi dari komunitas juga menjelaskan instlasi non-PEAR, Anda dapat melihatnya pada
wiki symfony.
Setup Proyek
Pada symfony, sebuah applications (aplikasi) yang saling berbagi data model di kelompokkan menjadi
projects (proyek). Untuk proyek askeet, kita sudah bisa melihat kalau akan ada dua buah, frontend dan
backend : yang membuat dua buah aplikasi. Proyek akan menjadi inti aplikasi, maka proyek ini harus kita
buat terlebih dahulu. Untuk melakukan hal itu, apa yang Anda perlukan adalah membuat
direktori dan perintah sebuah perintah pada command line , yaitu symfony init-project
$ mkdir /home/sfprojects/askeet $ cd /home/sfprojects/askeet $ symfony init-project askeet
Sekarang saatnya untuk membuat aplikasi frontend dengan perintah symfony init-app
:
$ symfony init-app frontend
Wow, secepat itu.
Catatan : Pengguna Windows disarankan untuk menjalankan symfony dengan proyek barunya dalam path yang tidak mengandung spasi - ini termasuk direktori
Documents and Settings
.
Setup Web service
Konfigurasi Web server
Sekarang saatnya untuk mengubah konfigurasi Apache Anda untuk membuat aplikasi baru dapat diakses. Untuk yang proffesional, lebih baik men setup aplikasi baru dengan virtual host, dan itulah yang akan kita jelaskan disini, Bagaimanapun juga, jika Anda ingin menambahkannya sebagai alias, Anda bisa membacanya pada bab [Konfigurasi Web Server] (http://www.symfony-project.com/cookbook/1_0/web_server) di buku symfony.
Buka httpd.conf dari direktori Apache/conf/
Anda, dan tambahkan baris-baris ini di bagian akhir nya :
<VirtualHost *:80> ServerName askeet DocumentRoot "/home/sfprojects/askeet/web" DirectoryIndex index.php Alias /sf /usr/local/lib/php/data/symfony/web/sf <Directory "/home/sfprojects/askeet/web"> AllowOverride All </Directory> </VirtualHost>
Catatan : alias
/sf
menunjuk ke folder symfony pada direktori PEAR data Anda. Untuk melihatnya, ketik saja,pear config-show
. Aplikasi Symfony perlu mengakses folder ini untuk mendapatkan beberapa gambar dan file javascript, agar dapat menjalankan tollbar web debug dan AJAX helpers.
Pada Windows Anda harus mengganti baris Alias
dengan baris seperti ini :
Alias /sf "C:\php\pear\data\symfony\web\sf"
Membuat nama domaine
Nama domain askeet harus dibuat secara lokal.
Jika Anda menjalankan sistem Linux, ini bisa dilakukan dengan
mengedit file /etc/hosts
. Jika Anda menjalankan Windows XP, file in terletak di direktori
C:\WINDOWS\system32\drivers\etc\
.
Tambahkan baris berikut :
127.0.0.1 askeet
Catatan : Anda harus memiliki hak administrasi untuk melakukan hal ini.
Jika Anda tidak ingin menambah host baru, Anda harus menambahkan statemen Listen
untuk melayani website Anda
pada port lain. Ini akan memperbolehkan Anda untuk menggunakan domain localhost
.
Mengetes Konfigurasi baru
Restart Apache, dan cek kalau anda sekarang sudah bisa mengakses aplikasi baru Anda :
http://askeet/
Catatan: Symfony menggunakan module
mod_rewrite
untuk menghilangkan bagian /index.php/ pada URL. Jika anda tidak ingin menggunakannya atau web server Anda tidak menyediakan fasilitas yang sama, Anda bisa menghilangkan fitur ini dengan cara menghapus file.htaccess
yang ada di direktori web/. Jika versi Apache Anda tidak dicompile denganmod_rewrite
, cek Apakah Anda memiliki mod_reweite DSO terinstall kemudian jika iya, tambahkan baris ini pada filehttpd.conf
Anda :AddModule mod_rewrite.c LoadModule rewrite_module modules/mod_rewrite.soAnda akan belajar lebih jauh mengenai smart URL pada [bab routing] (http://www.symfony-project.com/book/1_0/09-Links-and-the-Routing-System).
Anda juga harus mencoba mengakses aplikasi dari lingkungan development. Keyik URL berikut :
http://askeet/frontend_dev.php/
Web debug toolbat seharusnya muncul pada bagian ujung atas kanan, termasuk icon kecil yang menunjukkan kalau
konfigurasi Alias /sf
Anda benar.
Sekali lagi,cara setup ini sedikit berbeda jika Anda menggunakan sercer IIS pada lingkungan Windows.
Cari tahu bagaimana mengkonfigurasinya pada [tutorial yang berhubungan]
(http://www.symfony-project.com/cookbook/1_0/web_server_iis).
Subversion
Salah satu prinsip orang-orang pemalas adalah tidak perlu mengkhawatirkan merusak kode yang sudah ada. Karena kita ingin bekerja cepat, kita ingin kembali ke versi sebelumnya jika ada perubahan yang tidak efisien, kita ingin memperbolehkab lebih dari satu orang bekerja pada sebuah proyek, dan kit juga ingin memiliki akses ke seluruh versi harian dari aplikasi, kita akan menggunakan version control. Yang akan kita gunakan adalah Subversion. Kita Asumsikan Saja Anda telah menginstall server subversion atau memiliki akses ke server subversion.
Pertama, buatlah repositoru untuk proyek askeet
:
$ svnadmin create $SVNREP_DIR/askeet $ svn mkdir -m "layout creation" file:///$SVNREP_DIR/askeet/trunk file:///$SVNREP_DIR/askeet/tags file:///$SVNREP_DIR/askeet/branches
Selanjutnya, Anda harus melakukan import awal, dengan mengabaikan direktori temporary cache/
dan log/
.
$ cd /home/sfprojects/askeet $ rm -rf cache/* $ rm -rf log/* $ svn import -m "initial import" . file:///$SVNREP_DIR/askeet/trunk
Sekarang ganti nama direktori aplikasi asli proyek dan gunakan versi yang diambil dari SVN, setelah itu hapus direktori asli proyek :
$ cd /home/sfprojects $ mv askeet askeet.origin $ svn co file:///$SVNREP_DIR/askeet/trunk/ askeet/ $ ls askeet $ rm -rf askeet.origin
Ada satu lagi hal yang harus di setup. Jika Anda mengirimkan direktori kerja Anda ke repository, Anda mungkin
mencopy juga file-file yang tidak diinginkan, seperti file-file yang terletak di direktori cache
dan log
dari
proyek Anda. Jadi Anda harus menentukan sebuah daftar yang berisi daftar file yang akan diabaikan oleh SVN :
$ cd /home/sfprojects/askeet $ svn propedit svn:ignore cache
Text editor default yang dikonfigurasikan untuk SVN akan muncuk, Tambahkan subdirektori dari askeet
yang akan
di abaikan oleh SVN ketika proses pengiriman (commit) :
*
Save dan berhenti. Anda telah selesai.
Ulangi prosedur ini untuk direktori log :
$ svn propedit svn:ignore log *
Sekarang, pastikan untuk mengeset permission write (hak untuk menulis) pada direktori cache dan log ke level yang sesuai agar web server Anda dapat menulis kedalamnya lagi. Pada command line, gunakanlah perintah ini :
$ chmod 777 cache $ chmod 777 log
Catatan : Pengguna Windows dapat mengggunakan client TortoiseSVN unuk memanage repositor subversion mereka.
Jika Anda ingin mempelajari lebih jauh tentang version control, bacalah bab Pembuatan Proyek pada buku symfony.
Catatan : SVN askeet adalah public, Anda bisa mengaksesnya di :
http://svn.askeet.com/Silahkan, lihatlah sekarang.
Code hari ini telah dicommit, Anda bisa mengambilnya dengan tag release_day_1
$ svn co http://svn.askeet.com/tags/release_day_1/ askeet/
Sampai ketemu Besok
Yah ..,ini sudah 1 jam !. Kita telah berbicara banyak dan tidak melakukan hal-hal yang baru untuk symfony. Tapi, lihat saja apa yang akan muncul untuk hari kedua kita :
- Apa yang akan dilakukan oleh aplikasi
- Membangun data model yang menggenerate object-relational mapping
- men-scaffolding sebuah modul
Sementara itu, jika Anda ingin mengetahui berita terakhir tentang askeet Anda bisa mendaftarke mailing list askeet atau berkunjung ke forumnya.
Pastikan Anda kembali lagi besok !
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.