Development

Documentation/id_ID/book/1.0/03-Running-Symfony (diff)

You must first sign up to be able to contribute.

Changes from Version 1 of Documentation/id_ID/book/1.0/03-Running-Symfony

Show
Ignore:
Author:
tohenk (IP: 202.95.150.6)
Timestamp:
03/02/09 04:19:15 (9 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/id_ID/book/1.0/03-Running-Symfony

    v0 v1  
     1{{{ 
     2#!WikiMarkdown 
     3 
     4Bab 3 - Menjalankan Symfony 
     5=========================== 
     6 
     7Sebagaimana anda telah belajar pada bab-bab sebelumnya, framework symfony terdiri dari kumpulan file-file yang ditulis menggunakan PHP. Sebuah proyek symfony menggunakan file-file ini, jadi memasang symfony berarti mendapatkan file-file tesebut dan membuatnya tersedia untuk digunakan oleh proyek tersebut. 
     8 
     9Sebagai framework PHP 5, symfony membutuhkan PHP 5. Pastikan anda sudah memasangnya dengan membuka sebuah baris perintah dan mengetik perintah berikut: 
     10 
     11    > php -v 
     12 
     13    PHP 5.2.0 (cli) (built: Nov 2 2006 11:57:36) 
     14    Copyright (c) 1997-2006 The PHP Group 
     15    Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies 
     16 
     17Jika versi nomor adalah 5.0 atau lebih tinggi, maka anda siap memasang symfony, seperti dijelaskan pada bab ini. 
     18 
     19Instalasi Sandbox 
     20----------------- 
     21 
     22Jika anda hanya ingin melihat kemampuan symfony, kemungkinan anda akan memilih instalasi secara cepat. Dalam kasus ini, anda memerlukan sandbox. 
     23 
     24Sandbox adalah arsip file serderhana. Yang berisi proyek symfony yang kosong dengan menyertakan semua librari-librari yang dibutuhkan(symfony, pake, lime, Creole, Propel, dan Phing), sebuah aplikasi default, dan konfigurasi dasar. Sandbox akan bekerja begitu keluar dari kotak, tanpa perlu konfigurasi server atau paket tambahan lainnya. 
     25 
     26Untuk memasangnya, download arsip sandbox dari [http://www.symfony-project.org/get/sf_sandbox.tgz](http://www.symfony-project.org/get/sf_sandbox.tgz). Mekarkan di bawah root direktori web yang sudah dikonfigurasi sesuai web server anda (biasanya `web/` atau `www/`). Demi keseragaman, pada bab ini mengasumsikan anda meletakkannya pada direktori `sf_sandbox/`. 
     27 
     28>**PERHATIAN** 
     29>Meletakkan semua file di bawah root direktori web memang baik untuk pengujian pada localhost, namun ini merupakan kebiasaan jelek untuk server produksi. Hal ini membuat semua internal aplikasi anda dapat dilihat oleh semua pengguna. 
     30 
     31Uji hasil instalasi anda dengan mengeksekusi CLI symfony. Pergi ke direktori `sf_sandbox/` yang baru dan ketik perintah berikut pada sistem *nix: 
     32 
     33    > ./symfony -V 
     34 
     35Pada Windows, berikan perintah: 
     36 
     37    > symfony -V 
     38 
     39Anda seharusnya melihat nomor versi sandbox: 
     40 
     41    symfony version 1.0.0 
     42 
     43Sekarang pastikan server web dapat bekerja dengan sandbox dengan me-request URL ini: 
     44 
     45    http://localhost/sf_sandbox/web/frontend_dev.php/ 
     46 
     47Anda seharusnya melihat halaman ucapan selamat seperti terlihat dalam Figur 3-1, dan ini berarti instalasi telah selesai. Jika tidak, makan pesan kesalahan akan menuntun anda melewati pengubahan konfigurasi yang dibutuhkan. Anda dapat juga mereferensi pada seksi "Troubleshooting" selanjutnya pada bab ini. 
     48 
     49Figur 3-1 - Halaman ucapan selamat Sandbox 
     50 
     51![Sandbox congratulations page](/images/book/F0301.jpg "Sandbox congratulations page") 
     52 
     53Sandbox ditujukan bagi anda untuk belajar symfony pada komputer lokal, bukan untuk membangun aplikasi kompleks yang mungkin akan dipublikasikan di Web. Tetapi, versi symfony yang disertakan dalam sandbox sudah berfungsi penuh dan ekuivalen dengan symfony yang terpasang melalui PEAR. 
     54 
     55Untuk meng-uninstall sandbox, cukup hapus direktori `sf_sandbox/` dari folder `web/` anda. 
     56 
     57Instalasi Librari Symfony 
     58------------------------- 
     59 
     60Ketika membangun sebuah aplikasi, anda mungkin akan membutuhkan instalasi symfony dua kali: sekali untuk lingkungan pengembangan anda dan sekali unutk server host (kecuali jika host anda telah ter-install symfony). Untuk setiap server, anda mungkin akan menginginkan untuk menghindari duplikasi dengan meletakkan semua file-file symfony pada satu tempat saja, baik apakah anda membangun satu atau beberapa aplikasi. 
     61 
     62Sementara framework symfony berkembang dengan cepat, versi stabil yang baru dapat dengan cepat dirilis hanya setelah beberapa hari sejak instalasi anda yang pertama. Anda perlu memikirkan untuk meng-upgrade framework sebagai pertimbangan utama, dan itulah alasan mengapa anda hanya memerlukan satu saja instalasi librari symfony untuk semua proyek-proyek symfony anda. 
     63 
     64Ketika waktunya untuk meng-install librari tersebut untuk pengembangan aplikasi yang sesungguhnya, anda memiliki dua alternatif: 
     65 
     66  * Instalasi dengan PEAR sangat direkomendasikan untuk kebanyakan orang. Instalasi ini mudah untuk dipakai bersama dan dapat di-upgrade, dan proses instalasi tersebut cukup jelas. 
     67  * Instalasi dari Subversion (SVN) ditujukan untuk digunakan oleh pengembang-pengembang PHP mahir, yang ingin mendapat keuntungan dari patch-patch terakhir, memambahkan fitur-fitur mereka sendiri, dan/atau memberikan kontribusi pada proyek symfony. 
     68 
     69Symfony mengintegrasikan beberapa paket-paket lain: 
     70 
     71  * pake adalah utilitas CLI. 
     72  * lime adalah utilitas pengujian unit. 
     73  * Creole adalah engine abstraksi database. Sama seperti PHP Data Objects (PDO), yang menyediakan antar muka antara kode anda dengan kode SQL database, yang memungkinkan untuk berpindah ke engine lain. 
     74  * Propel sebagai ORM. Yang menyediakan persistensi obyek dan servis query. 
     75  * Phing sebagai sistem pembangun (build system) yang digunakan oleh Propel untuk menciptakan kelas-kelas model. 
     76 
     77Pake dan lime dikembangkan oleh tim symfony. Creole, Propel, dan Phing datang dari tim lain dan dirilis di bawah GNU Lesser Public General License (LGPL). Semua paket-paket tersebut disertakan dalam symfony. 
     78 
     79### Instalasi Paket PEAR Symfony 
     80 
     81Paket PEAR symfony berisi librari-librari symfony dengan semua ketergantungannya. Juga berisi sebuah skrip CLI yang menyediakan perintah `symfony`. 
     82 
     83Langkah pertama untuk meng-install adalah menambah channel symfony ke PEAR, dengan memberikan perintah ini: 
     84 
     85    > pear channel-discover pear.symfony-project.com 
     86 
     87Untuk melihat librari-librari yang tersedia pada channel tersebut, ketik berikut: 
     88 
     89    > pear remote-list -c symfony 
     90 
     91Sekarang anda siap meng-install versi stabil yang terakhir dari symfony. Berikan perintah ini: 
     92 
     93    > pear install symfony/symfony 
     94 
     95    downloading symfony-1.0.0.tgz ... 
     96    Starting to download symfony-1.0.0.tgz (1,283,270 bytes) 
     97    ................................................................. 
     98    ................................................................. 
     99    .............done: 1,283,270 bytes 
     100    install ok: channel://pear.symfony-project.com/symfony-1.0.0 
     101 
     102Hanya itu. File-file symfony dan CLI sudah terpasang. Periksa bahwa instalasi telah berhasil dengan memanggil baris perintah `symfony` yang baru, untuk melihat nomor versi: 
     103 
     104    > symfony -V 
     105 
     106    symfony version 1.0.0 
     107 
     108>**TIP** 
     109>Jika anda lebih menyukai meng-install versi beta terakhir, yang sudah menyediakan perbaikan-perbaikan bug dan penambahan-penambahan fitur yang terbaru, ketik `pear install symfony/symfony-beta`. Rilis beta masih belum cukup stabil dan umumnya tidak direkomendasikan untuk lingkungan produksi. 
     110 
     111Librari-librari symfony sudah terpasang pada direktori-direktori sebagai berikut: 
     112 
     113  * `$php_dir/symfony/` berisi librari-librari utama. 
     114  * `$data_dir/symfony/` berisi kerangka dari aplikasi symfony; modul-module default; dan konfigurasi, data i18n, dll. 
     115  * `$doc_dir/symfony/` berisi dokumentasi. 
     116  * `$test_dir/symfony/` berisi pengujian-pengujian unit. 
     117 
     118Variabel _dir adalah bagian dari konfigurasi PEAR anda. Untuk melihat nilainya, ketik berikut: 
     119 
     120    > pear config-show 
     121 
     122### Check Out Symfony dari Repositori SVN 
     123 
     124Untuk server-server produksi, atau ketika PEAR bukan menjadi pilihan, anda dapat men-download versi terakhir librari symfony langsung dari repositori Subversion symfony dengan melakukan checkout: 
     125 
     126    > mkdir /path/to/symfony 
     127    > cd /path/to/symfony 
     128    > svn checkout http://svn.symfony-project.com/tags/RELEASE_1_0_0/ . 
     129 
     130Perintah `symfony`, yang tersedia pada instalasi PEAR, sebenarnya memanggil skrip `/path/to/symfony/data/bin/symfony`. Jadi berikut ini akan sama dengan perintah `symfony -V` untuk instalasi SVN: 
     131 
     132    > php /path/to/symfony/data/bin/symfony -V 
     133 
     134    symfony version 1.0.0 
     135 
     136Jika anda memilih instalasi SVN, anda mungkin sudah memiliki proyek symfony. Agar proyek tersebut menggunakan file-file symfony, anda perlu mengubah dua variabel yang terdapat pada file `config/config.php` proyek, sebagai berikut: 
     137 
     138    [php] 
     139    <?php 
     140 
     141    $sf_symfony_lib_dir  = '/path/to/symfony/lib'; 
     142    $sf_symfony_data_dir = '/path/to/symfony/data'; 
     143 
     144Bab 19 menyediakan cara lain untuk menghubungkan sebuah proyek dengan instalasi symfony (termasuk symbolic link dan path relatif). 
     145 
     146>**TIP** 
     147>Sebagai alternatif, anda juga dapat men-download paket PEAR ([http://pear.symfony-project.com/get/symfony-1.0.0.tgz](http://pear.symfony-project.com/get/symfony-1.0.0.tgz)) dan memekarkannya pada suatu tempat. Anda akan mendapatkan hasil yang sama seperti dengan checkout. 
     148 
     149Setup Aplikasi 
     150-------------- 
     151 
     152Seperti yang anda pelajari pada Bab 2, symfony menggabungkan aplikasi-aplikasi yang berkaitan dalam proyek. Semua aplikasi-aplikasi dalam sebuah proyek berbagi pakai database yang sama. Agar bisa men-setup aplikasi, anda harus men-setup sebuah proyek terlebih dahulu. 
     153 
     154### Membuat Proyek 
     155 
     156Setiap proyek symfony mengikuti struktur direktori yang sudah ditentukan. Baris perintah symfony mengotomatisasi pembuatan proyek-proyek baru dengan menginisialisasi kerangka proyek, dengan struktur tree dan hak akses yang sesuai. Jadi untuk membuat sebuah proyek, buat sebuah direktori baru dan jalankan symfony untuk membuatnya sebagai sebuah proyek. 
     157 
     158Untuk instalasi PEAR, berikan perintah-perintah ini: 
     159 
     160    > mkdir ~/myproject 
     161    > cd ~/myproject 
     162    > symfony init-project myproject 
     163 
     164Untuk instalasi SVN, buat sebuah proyek dengan perintah-perintah berikut: 
     165 
     166    > mkdir ~/myproject 
     167    > cd ~/myproject 
     168    > php /path/to/symfony/data/bin/symfony init-project myproject 
     169 
     170Perintah `symfony` harus selalu dipanggil dari direktori root proyek (`myproject/` pada contoh sebelumnya), karena semua tugas-tugas yang dilaksanakan berlaku khusus pada proyek. 
     171 
     172Symfony akan membuat struktur direktori yang terlihat seperti ini: 
     173 
     174    apps/ 
     175    batch/ 
     176    cache/ 
     177    config/ 
     178    data/ 
     179    doc/ 
     180    lib/ 
     181    log/ 
     182    plugins/ 
     183    test/ 
     184    web/ 
     185 
     186>**TIP** 
     187>Perintah `init-project` menambahkan skrip `symfony` pada direktori root proyek. Skrip PHP ini sama persis dengan perintah `symfony` yang terinstall melalui PEAR, jadi anda dapat memanggil `php symfony` daripada `symfony` jika anda tidak mempunyai dukungan baris perintah alami (untuk instalasi SVN). 
     188 
     189### Membuat Aplikasi 
     190 
     191Proyek belum siap ditampilkan, karena setidaknya membutuhkan satu aplikasi. Untuk menginisialisasi aplikasi, gunakan perintah `symfony init-app` dan berikan nama aplikasi sebagai argumen: 
     192 
     193    > symfony init-app myapp 
     194 
     195Perintah ini akan membuat direktori `myapp/` dalam folder `apps/` pada root proyek, dengan konfigurasi aplikasi default dan serangkaian direktori-direktori yang dipersiapkan untuk menampung file-file website anda: 
     196 
     197    apps/ 
     198      myapp/ 
     199        config/ 
     200        i18n/ 
     201        lib/ 
     202        modules/ 
     203        templates/ 
     204 
     205Beberapa file-file PHP yang berkaitan dengan front controller dari setiap lingkungan default juga dibuat dalam direktori `web` proyek: 
     206 
     207    web/ 
     208      index.php 
     209      myapp_dev.php 
     210 
     211`index.php` adalah front controller produksi dari aplikasi baru tersebut. Karena anda pertama kali membuat aplikasi dalam proyek, symfony membuat file yang dinamakan `index.php` daripada `myapp.php` (jika anda menambahkan aplikasi baru dengan nama `mynewapp`, front controller produksi yang baru akan dinamakan `mynewapp.php`). Untuk menjalankan aplikasi anda pada lingkungan pengembangan, panggil front controller `myapp_dev.php`. Anda akan belajar lebih tentang lingkungan-lingkungan ini pada Bab 5. 
     212 
     213Konfigurasi Server Web 
     214---------------------- 
     215 
     216Skrip-skrip pada direktori `web/` adalah jalan masuk ke aplikasi. Untuk dapat mengaksesnya dari Internet, server web harus dikonfigurasi. Pada server pengembangan anda, sebagaimana solusi hosting profesional, anda kemungkinan memiliki hak akses pada konfigurasi Apache dan anda dapat membuat sebuah host virtual. Pada server shared-host, anda kemungkinan memiliki akses hanya pada file `.htaccess`. 
     217 
     218### Setup Host Virtual 
     219 
     220Listing 3-1 adalah contoh konfigurasi Apache, dimana sebuah host virtual baru dutambahkan ke file `httpd.conf`. 
     221 
     222Listing 3-1 - Konfigurasi Contoh Apache, pada `apache/conf/httpd.conf` 
     223 
     224    <VirtualHost *:80> 
     225      ServerName myapp.example.com 
     226      DocumentRoot "/home/steve/myproject/web" 
     227      DirectoryIndex index.php 
     228      Alias /sf /$sf_symfony_data_dir/web/sf 
     229      <Directory "/$sf_symfony_data_dir/web/sf"> 
     230        AllowOverride All 
     231        Allow from All 
     232      </Directory> 
     233      <Directory "/home/steve/myproject/web"> 
     234        AllowOverride All 
     235        Allow from All 
     236      </Directory> 
     237    </VirtualHost> 
     238 
     239Konfigurasi pada Listing 3-1, placeholder `$sf_symfony_data_dir` harus disesuaikan dengan path sesungguhnya. Sebagai contoh, untuk instalasi PEAR pada *nix, anda seharusnya mengetik seperti ini: 
     240 
     241        Alias /sf /usr/local/lib/php/data/symfony/web/sf 
     242 
     243>**CATATAN** 
     244>Alias ke direktori `web/sf/` bukan keharusan. Alias ini membantu Apache mencari gambar-gambar, stylesheet, dan file-file JavaScript untuk toolbar web debug, admin generator, halaman-halaman default symfony, dan dukungan Ajax. Sebagai alternatif alias ini adalah membuat symbolic link (symlink) atau copy direktori `/path/to/symfony/data/web/sf/` ke `myproject/web/sf/`. 
     245 
     246Restart Apache, dan lihatlah. Aplikasi yang baru saja anda buat sekarang dapat dipanggil dan dilihat melalui web browser standar melalui URL berikut ini: 
     247 
     248    http://localhost/myapp_dev.php/ 
     249 
     250Anda seharusnya melihat halaman ucapan selamat sama seperti yang ditunjukkan sebelumnya pada Figur 3-1. 
     251 
     252>**SIDEBAR** 
     253>URL Rewriting 
     254> 
     255>Symfony menggunakan URL rewriting untuk menampilkan "URL-URL pintar"--lokasi yang berarti dan baik ditampilkan pada mesin-mesin pencari dan menyembunyikan data teknis dari pemakai. Anda akan belajar lebih tentang fitur ini, yang dinamakan routing, pada Bab 9. 
     256> 
     257>Jika versi Apache anda tidak dikompilasi dengan modul `mod_rewrite`, pastikan anda memiliki Dynamic Shared Object (DSO) `mod_rewrite` terpasang dan baris-baris berikut pada `httpd.conf` anda: 
     258> 
     259> 
     260>    AddModule mod_rewrite.c 
     261>    LoadModule rewrite_module modules/mod_rewrite.so 
     262> 
     263> 
     264>Untuk Internet Information Services (IIS), anda memerlukan `isapi/rewrite` terpasang dan berjalan. Periksa dokumentasi online symfony untuk petunjuk instalasi IIS yang lebih detail. 
     265 
     266### Konfigurasi Server Shared-Host 
     267 
     268Setup aplikasi pada shared host sedikit perlu trik-trik kecil, karena host biasanya memiliki layout direktori khusus yang tidak dapat anda ubah. 
     269 
     270>**PERHATIAN** 
     271>Melakukan pengujian dan pengembangan langsung pada shared host bukan praktik yang bagus. Salah satu alasan karena membuat aplikasi tampak bahkan sebelum selesai, menunjukkan internal aplikasi dan membuka banyak lubang keamanan. Alasan lainnya yaitu performa shared host terkadang tidak cukup untuk melayani aplikasi dengan peralatan debug aktif secara efisien. Jadi anda tidak seharusnya mengawali pengembangan dengan instalasi shared-host, tetapi lebih membangun aplikasi di lokal dan men-deploy-nya ke shared host setelah selesai. Bab 16 akan memberikan penjelasan lebih mengenai teknik-teknik dan peralatan pen-deploy-an. 
     272 
     273Coba bayangkan shared host anda mengharuskan folder web dinamakan `www/` daripada `web/`, dan anda tidak diberikan akses ke file `httpd.conf` file, tetapi hanya pada file `.htaccess` pada folder web. 
     274 
     275Dalam proyek symfony, setiap path ke direktori dapat dikonfigurasi. Bab 19 akan menerangkan lebih jauh tentang ini, tetapi sementara waktu, anda dapat merubah direktori `web` ke`www` dan membuat aplikasi mengerjakannya dengan merubah konfigurasi, seperti ditunjukkan pada Listing 3-2. Baris-baris ini ditambahkan pada akhir file `config.php` aplikasi. 
     276 
     277Listing 3-2 - Merubah Pengaturan Struktur Direktori Default, pada `apps/myapp/config/config.php` 
     278 
     279    [php] 
     280    $sf_root_dir = sfConfig::get('sf_root_dir'); 
     281    sfConfig::add(array( 
     282      'sf_web_dir_name' => $sf_web_dir_name = 'www', 
     283      'sf_web_dir'      => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name, 
     284      'sf_upload_dir'   => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name.DIRECTORY_SEPARATOR.sfConfig::get('sf_upload_dir_name'), 
     285    )); 
     286 
     287Root web proyek berisi file .htaccess secara default. Seperti ditunjukkan pada Listing 3-3. Modifikasi seperlunya untuk menyesuikan dengan persyaratan shared host anda. 
     288 
     289Listing 3-3 - Konfigurasi `.htaccess` Default, Ada pada `myproject/www/.htaccess` 
     290 
     291    Options +FollowSymLinks +ExecCGI 
     292 
     293    <IfModule mod_rewrite.c> 
     294      RewriteEngine On 
     295 
     296      # we skip all files with .something 
     297      RewriteCond %{REQUEST_URI} \..+$ 
     298      RewriteCond %{REQUEST_URI} !\.html$ 
     299      RewriteRule .* - [L] 
     300 
     301      # we check if the .html version is here (caching) 
     302      RewriteRule ^$ index.html [QSA] 
     303      RewriteRule ^([^.]+)$ $1.html [QSA] 
     304      RewriteCond %{REQUEST_FILENAME} !-f 
     305 
     306      # no, so we redirect to our front web controller 
     307      RewriteRule ^(.*)$ index.php [QSA,L] 
     308    </IfModule> 
     309 
     310    # big crash from our front web controller 
     311    ErrorDocument 500 "<h2>Application error</h2>symfony applicationfailed to start properly" 
     312 
     313You should now be ready to browse your application. Check the congratulation page by requesting this URL: 
     314 
     315    http://www.example.com/myapp_dev.php/ 
     316 
     317>**SIDEBAR** 
     318>Konfigurasi Server Lainnya 
     319> 
     320>Symfony sangat kompatibel dengan konfigurasi-konfigurasi server lainnya. Anda dapat, sebagai contoh, mengakses aplikasi symfony menggunakan alias daripada sebuah host virtual. Anda juga dapat menjalankan aplikasi symfony dengan server IIS. Banyak sekali teknik-teknik sebagimana konfigurasi-konfgiurasi, dan di buku ini tidak akan dijelaskan semuanya. 
     321> 
     322>Untuk mencari petunjuk konfigurasi server khusus, referensi ke wiki symfony ([http://trac.symfony-project.org/](http://trac.symfony-project.org/)), yang berisi banyak tutorial langkah-demi-langkah. 
     323 
     324Troubleshooting 
     325--------------- 
     326 
     327Jika anda menjumpai masalah-msalah selama proses instalasi, coba simak kesalahan-kesalahan atau eksepsi-eksepsi yang diberikan oleh shell atau oleh browser. Sering sekali pesan-pesan tersebut sudah-dijelaskan dan bahkan berisi link ke sumber daya khusus di Web tentang permasalahan anda. 
     328 
     329### Kesalahan Umum 
     330 
     331Jika anda masih mendapat masalah untuk membuat symfony berjalan, periksa berikut ini: 
     332 
     333  * Beberapa instalasi PHP menyertakan perintah PHP 4 dan PHP 5 sekaligus. Dalam kasus ini, baris perintah kemungkinan `php5` daripada `php`, jadi coba panggil perintah `php5 symfony` daripada `symfony`. Anda mungkin juga perlu menambahkan `SetEnv PHP_VER 5` pada konfigurasi `.htaccess`, atau ubah skrip-skrip pada direktori `web/` dari `.php` ke `.php5`. Kesalahan yang ditampilkan oleh baris perintah PHP 4 yang mencoba mengakses symfony tampak seperti ini: 
     334 
     335        Parse error, unexpected ',', expecting '(' in .../symfony.php on line 19. 
     336 
     337  * Batas memori, yang ditentukan pada `php.ini`, harus diset sekurang-kurangnya `16M`. Gejala umum dari masalah ini adalah pesan kesalahan ketika meng-install symfony via PEAR atau ketika menggunakan baris perintah. 
     338 
     339        Allowed memory size of 8388608 bytes exhausted 
     340 
     341  * Setting `zend.ze1_compatibility_mode` harus di-set `off` pada `php.ini`. Jika tidak, usaha untuk membuka sebuah skrip web akan menghasilkan kesalahan "implicit cloning": 
     342 
     343        Strict Standards: Implicit cloning object of class 'sfTimer'because of 'zend.ze1_compatibility_mode' 
     344 
     345  * Direktori `log/` dan `cache/` pada proyek anda harus bisa ditulisi oleh server web. Usaha untuk membuka aplikasi symfony tanpa adanya hak akses direktori tersebut akan memberikan eksepsi: 
     346 
     347        sfCacheException [message] Unable to write cache file"/usr/myproject/cache/frontend/prod/config/config_config_handlers.yml.php" 
     348 
     349  * Include path sistem harus menyertakan path ke perintah `php`, dan include path pada `php.ini` harus berisi path ke PEAR (jika anda menggunakan PEAR). 
     350  * Kadang-kadang, ada lebih dari satu `php.ini` pada file sistem server (sebagai contoh, jika anda menggunakan paket WAMP). Panggil `phpinfo()` untuk mengetahui lokasi yang tepat dari file `php.ini` yang digunakan oleh aplikasi anda. 
     351 
     352>**CATATAN** 
     353>Meskipun bukan keharusan, sangat disarankan, untuk alasan performa, untuk menge-set pengaturan `magic_quotes_gpc` dan `register_globals` ke `off` dalam `php.ini`. 
     354 
     355### Sumber Daya Symfony 
     356 
     357Anda dapat memeriksa permasalahan anda apakah sudah dialami orang lain dan mencari solusi dari beberapa tempat: 
     358 
     359  * Forum instalasi symfony ([http://www.symfony-project.org/forum/](http://www.symfony-project.org/forum/)) penuh dengan pertanyaan-pertanyaan instalasi untuk platform, lingkungan, konfigurasi, host, dll. 
     360  * Arsip mailing-list pemakai ([http://groups.google.fr/group/symfony-users](http://groups.google.fr/group/symfony-users)) yang dapat dicari. Anda mungkin menemukan permasalahan yang mirip dengan permasalan anda di sana. 
     361  * Wiki symfony ([http://trac.symfony-project.org/#Installingsymfony](http://trac.symfony-project.org/#Installingsymfony)) berisi tutorial langkah-demi-langkah, kontribusi oleh pemakai symfony, tentang instalasi. 
     362 
     363Jika anda tidak menemukan jawaban, coba layangkan pertanyaan anda pada komunitas symfony. Anda dapat melayangkan pertanyaan anda melalui forum, mailing list, atau bahkan mampir ke chanel IRC `#symfony` untuk mendapat feedback dari anggota aktif komunitas. 
     364 
     365Source Versioning 
     366----------------- 
     367 
     368Sekali setup aplikasi telah selesai, memulai proses source versioning (atau version control) sangat direkomendasikan. Source versioning menyimpan catatan semua modifikasi-modifikasi kode, memberikan akses pada rilis sebelumnya, fasilitas patch, dan mengefisienkan kerja tim. Symfony secara alami mendukung CVS, meski Subversion ([http://subversion.tigris.org/](http://subversion.tigris.org/)) yang direkomendasikan. Contoh berikut menunjukkan perintah-perintah Subversion, dan mengasumsikan anda sudah memiliki server Subversion yang sudah terpasang dan anda diharapkan membuat repositori baru untuk proyek anda. Untuk pemakai Windows, klien Subversion yang direkomendasikan adalah TortoiseSVN ([http://tortoisesvn.tigris.org/](http://tortoisesvn.tigris.org/)). Untuk informasi lebih mengenai source versioning dan perintah-perintah yang digunakan di sini, konsultasikan dengan dokumentasi Subversion. 
     369 
     370Contoh berikut mengasumsikan `$SVNREP_DIR` didefinisikan sebagai variabel lingkungan. Jika anda tidak menentukannya, anda akan perlu menggantinya dengan lokasi aktual dari repositori sebagai pengganti `$SVNREP_DIR`. 
     371 
     372Jadi mari kita buat repositori baru untuk proyek `myproject`: 
     373 
     374    > svnadmin create $SVNREP_DIR/myproject 
     375 
     376Kemudian struktur (layout) dasar repositori dibuat dengan direktori `trunk`, `tags`, dan `branches` menggunakan perintah yang cukup panjang: 
     377 
     378    > svn mkdir -m "layout creation" file:///$SVNREP_DIR/myproject/trunk file:///$SVNREP_DIR/myproject/tags file:///$SVNREP_DIR/myproject/branches 
     379 
     380Ini akan menjadi revisi yang pertama. Sekarang anda perlu mengimpor file-file proyek kecuali cache dan file-file sementara log: 
     381 
     382    > cd ~/myproject 
     383    > rm -rf cache/* 
     384    > rm -rf log/* 
     385    > svn import -m "initial import" . file:///$SVNREP_DIR/myproject/trunk 
     386 
     387Periksa file-file yang sudah di-commit dengan mengetik berikut: 
     388 
     389    > svn ls file:///$SVNREP_DIR/myproject/trunk/ 
     390 
     391Itu kelihatannya bagus. Sekarang repositori SVN memiliki referensi versi (dan histori) terhadap semua file-file proyek. Ini berarti bahwa file-file aktual pada direktori `~/myproject/` perlu dikaitkan dengan repositori. Untuk melakukannya, pertama ubah direktori `myproject/`--anda akan menghapusnya segera begitu semua berjalan baik--dan lakukan checkout repositori pada direktori baru: 
     392 
     393    > cd ~ 
     394    > mv myproject myproject.origin 
     395    > svn co file:///$SVNREP_DIR/myproject/trunk myproject 
     396    > ls myproject 
     397 
     398Hanya itu. Sekarang anda dapat bekerja dengan file-file yang terletak di `~/myproject/` dan lakukan commit modifikasi-modifikasi anda ke repositori. Jangan lupa untuk melakukan beberapa pembersihan dan menghapus direktori `myproject.origin/`, yang sekarang tidak digunakan. 
     399 
     400Ada satu hal lagi yang perlu di setup. Jika anda melakukan commit direktori kerja anda ke repositori, anda mungkin meng-copy beberapa file-file yang tidak diinginkan, semisal file-file yang terletak di direktori `cache` dan `log` dari proyek anda. Jadi anda perlu menentukan daftar pengabaian SVN untuk proyek ini. Anda juga perlu untuk memberikan akses penuh ke direktori `cache/` dan `log/` lagi: 
     401 
     402    > cd ~/myproject 
     403    > chmod 777 cache 
     404    > chmod 777 log 
     405    > svn propedit svn:ignore log 
     406    > svn propedit svn:ignore cache 
     407 
     408Penyuntig teks default untuk SVN seharusnya terbuka. Jika tidak terjadi apa-apa, pastikan Subversion menggunakan penyunting yang anda sukai dengan mengetikkan ini: 
     409 
     410    > export SVN_EDITOR=<name of editor> 
     411    > svn propedit svn:ignore log 
     412    > svn propedit svn:ignore cache 
     413 
     414Sekarang tambahkan semua file-file dari subdirektori `myproject/` dan SVN seharusnya mengabaikan ketika proses commit: 
     415 
     416    * 
     417 
     418Simpan dan keluar. Anda sudah selesai. 
     419 
     420Kesimpulan 
     421---------- 
     422 
     423Untuk menguji dan bekerja dengan symfony pada server lokal, pilihan instalasi terbaik bagi anda tentunya sandbox, yang berisi lingkungan symfony yang sudah dikonfigurasi. 
     424 
     425Untuk pengembangan sesungguhnya atau pada server produksi, pilihannya yaitu instalasi PEAR atau checkout SVN. Proses ini akan memasang librari-librari symfony, dan anda masih perlu menginisialisasi sebuah proyek dan sebuah aplikasi. Langkah terakhir setup aplikasi adalah konfigurasi server, yang dan dikerjakan dengan berbagai cara. Symfony berkerja dengan sempurna dengan host virtual, dan ini adalah solusi yang direkomendasikan. 
     426 
     427Jika anda menjumpai masalah sewaktu instalasi, anda akan menemukan banyak tutorial dan jawaban dari pertanyaan yang sering diajukan pada website symfony. Jika perlu, anda dapat mengirimkan permasalahan anda kepada komunitas symfony, dan anda akan mendapatkan jawaban secara cepat dan efektif. 
     428 
     429Sekali proyek anda sudah diinisialisasi, adalah kebiasaan yang baik untuk memulai proses version-control. 
     430 
     431Sekarang anda siap menggunakan symfony, sekarang waktunya untuk melihat bagaimana untuk membangun aplikasi web dasar. 
     432 
     433}}}