Senin, 07 November 2016

Kursus Symfony

Kursus Symfony Di LP2M ARAY


Pendahuluan

Apa yang bisa lebih berguna daripada sebuah aplikasi yang dikembangkan oleh pengguna untuk kebutuhan mereka sendiri? Ini adalah kisah asal-usul Symfony - lahir dari imajinasi web desainer di SensioLabs, web developer dalam dirinya sendiri. Symfony dibuat tersedia untuk semua orang di bawah lisensi Open Source. Ini menguntungkan pengembang lain, yang juga memiliki kemampuan untuk memperbaikinya dengan menambahkan modul mereka sendiri. Semua ini dilakukan dalam lingkungan Praktik Terbaik, standarisasi dan interoperabilitas aplikasi.

Kelebihan:
  • Dukungan terhadap AJAX, ORM.
  • Kompatibel dengan berbagai macam database.
  • Banyak library dan fungsi symfony yang sudah tersedia. Bahkan hampir mendekati CMS. Sehingga ada yang mengatakan ”Symphony is a CMS with a heart of a framework.” ini menjadi kelebihan sekaligus kekurangan.

Kekurangan:
  • Tidak mendukung PHP4.
  • Relatif butuh waktu lama untuk mengerti framework ini.
  • Instalasi dan konfigurasinya cukup rumit.

LP2M ARAY
Sejarah Lp2m Aray
LP2M atau Lembaga Peduli Pendidikan Masyarakat Aray (LP2M) adalah suatu lembaga yang bergerak di bidang jasa, dimana badan lembaga yang berada dibawah naungan CV Matahari Indoraya ini memberikan layanan berupa pemberian kursus komputer yang materi - materinya sangat diperlukan sekarang ini didalam bisnis globalisasi yang di mana segala - galanya dilakukan secara terkomputerisasi.
Lembaga LP2M aray ini juga telah terdaftar sejak tahun 2003 di Departemen Dinas Pendidikandan juga Departemen Tenaga Kerja ,sehingga ketika seorang siswa telah lulus atau selesai belajar akan mendapatkan sertifikat dengan  adanya SK (Surat Keterangan) dari dua departemen tersebut. SK tersebut antara lain adalah:
  1. SK. DIKMENTI No.254 / DAF / PLSM /IX/ JS / 2003
  2. SK No. 549 / A CV /LIKM / 2003

LP2M Aray yang berdomisili di Jalan Material No 17A Rt.004 Rw.01 Kelurahan Serengsengsawah Kecamatan Jagakarsa Jakarta Selatan 12640. juga merupakan salah satu UKM yang mungkin sudah banyak didengar oleh mahasiswa. Lembaga LP2M Aray ini berdiri pada tahun 2001, tepatnya pada 30 Agustus 2001.
Kegiatan yang utama dari lembaga ini adalah memberikan kursus komputer, namun dalam pelaksanaannya lembaga LP2M Aray melakukan kegiatan sampingan yakni menyediakan jual - beli komputer dengan kondisi baru atau second. Selain itu juga lembaga ini menyediakan service komputer dan konsultasi tentang komputer.
Didalam pelaksanaannya, lembaga LP2M Aray ini menyediakan tiga jenis kelas dengan biaya kursus yang berbeda - beda. Tiga jenis kelas tersebut adalah:

1. Reguler :
Dimana akan dijalankan sebuah kelas jika sudah terkumpul kuota 3 atau 4 orang yang telah mengisi formulir pendaftaran, sedangkan untuk waktu dan kurikulum ditentukan oleh lembaga LP2M Aray.

2. Privat :
Dimana akan dijalankan sebuah kelas jika, orang tersebut butuh waktu cepat untuk menguasai materi kursus dan mampu membayar minimum untuk menjalankan kelas (untuk masalah biaya privat dapat dilihat berdasarkan lampiran pada bagian kelas privat). Kelebihan kelas ini adalah bahwa waktu dan kurikulum dapat ditentukan oleh siswa.

3. Kelompok :
Dimana akan dijalankan sebuah kelas jika ada suatu kelompok yang minimal tediri 3 atau 4 orang yang ingin mengikuti kursus, dan waktunya bisa ditentukan oleh siswa, sedangkan untuk kurikulum ditentukan oleh lembaga LP2M Aray.

Tutorial Symfony

Hari ini kita mau belajar Symfony, beberapa hal diantaranya yang akan kita pelajari hari ini adalah:
  1. Install Fresh Symfony dengan Composer
  2. Membuat Routing dengan Annotation
Berikut Step by Step nya :

1. Install Fresh Symfony dengan Composer

Hal pertama yang harus diperhatikan adalah, pastikan computer anda sudah terinstall composer. Jika belum sobat coder bisa liat caranya disini.
Note: jika sobat coder belum install composer, tapi menggunakan sistem operasi Ubuntu 16.04, sobat bisa langsung run:
$ sudo apt-get install composer
maka composer akan terinstall secara global
Setelah composer terinstall, kita bisa langsung install symfony fresh install dengan composer dengan run command berikut di terminal. Pastikan posisi directory anda sekarang berada di root web server anda (biasanya /var/www):
$ composer create-project symfony/framework-standard-edition belajar-symfony "3.1.*"
Note: pada tahap ini, sobat akan ditanyakan beberapa parameter, tekan enter saja untuk semua parameter yang ditanyakan, karena kita belum masuk ke tahap memakai database.
Setelah composer berhasil membuat project symfony baru, sekarang kita masuk ke directory project yang tadi kita buat, dan pastikan folder var pada directory belajar-symfony writable (atau 777)
$ cd belajar-symfony
$ sudo chmod -R 777 var
$ php bin/console server:start
Buka browser sobat, lalu masuk ke alamat localhost:8000
screenshot from 2016-09-13 13-34-38
Selamat, sobat sudah berhasil install fresh symfony framework

2. Membuat Routing dengan Annotation

Pertanyaan pertama yang muncul adalah: dari mana sih tampilan home itu berasal ? nah sobat sekarang bisa buka text editor nya buka file yang berada di src/AppBundle/Controller/DefaultController.php. di file controller tersebut ada method bernama indexAction(), method ini lah yang di eksekusi ketika sobat membuka localhost:8000
Kenapa ??? Begini penjelasan singkatnya:
  1. Request localhost:8000
  2. Symfony akan mencari method pada sebuah controller yang Route nya menuju ke URI "/"
  3. Ketika Symfony menemukan URI patternnya, maka methodnya akan dijalankan
Agak ribet ya? oke deh kita praktek aja biar lebih mudahnya. Kita akan mencoba membuat method baru yang akan menampilkan file view yang nanti kita buat.
  1. Buat file baru dengan nama hello.html.twig (karena symfony secara default menggunakan twig template engine, maka file view harus diakhiri dengan .twig
  2. Lalu isi file tersebut dengan tulisan "Hello World"
  3. Save file tersebut di app/Resources/views/
Oke, setelah berhasil membuat view, sekarang buka DefaultController.php yang tadi tambahkan script yang di highlight pada gambar dibawah ini
screenshot from 2016-09-13 14-34-21
Penjelasan:
Line 22: Memulai Annotation
Line 23: Menambahkan Annotation Route (ini menjelaskan bahwa jika ada request ke "/hello-world", Symfony akan meng-eksekusi helloWorldAction()
Line 24: Menutup Annotation
Line 25: Membuat method helloWorldAction()
Line 27: Me-render tampilan hello.html.twig yang tadi kita buat di directory app/Resources/views/
Nah, sekarang coba sobat buka browser sobat dan arahkan ke http://localhost:8000/hello-world - See more at: https://www.codepolitan.com/tutorial/belajar-symfony-3-installasi-dan-routing-57d7afc6a02c0-12182#sthash.S5u1xeDQ.dpuf
Demikian latihan Symfony Semoga Bermanfaat

Instalasi Symfony

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 babInstalasi 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, ketiksymfony -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 padawiki 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 domainlocalhost.

Mengetes Konfigurasi baru

Restart Apache, dan cek kalau anda sekarang sudah bisa mengakses aplikasi baru Anda :
http://askeet/
Congratulations
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 file httpd.conf Anda :
AddModule mod_rewrite.c
LoadModule rewrite_module modules/mod_rewrite.so
Anda 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.
web debug toolbar
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 direktoricache 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 dariaskeet 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/


Reff : http://symfony.com/legacy/doc/askeet/1_0/id/1 

Video Tutorial

Pendahuluan Symfony

Pendahuluan

Symfony Sekilas

Kerangka PHP

Dalam rangka untuk lebih memahami apa kerangka adalah, mari kita meninggalkan dunia ilmu komputer sejenak dan membayangkan petualangan gunung. Mengembangkan aplikasi ini sangat mirip dengan memanjat dinding batu: (. Dan senang dengan pencapaian merancang sebuah aplikasi yang bekerja sempurna) Anda berada di bawah (Anda memiliki aplikasi yang akan dibuat) dan Anda perlu untuk mencapai puncak
Jika tidak ada yang pernah memanjat dinding yang bersangkutan, Anda harus mendapatkan oleh Anda sendiri: pengujian rute, kadang-kadang mundur sehingga Anda tidak terjebak di sudut, mengemudi di pitons, dll Sebaliknya, jika dinding telah ditaklukkan, mereka yang telah pergi sebelum Anda akan sudah melakukan uji coba ini dan kesalahan kerja, membuka kemungkinan jalur (frame) dan memasang alat-alat yang akan memudahkan pendakian (pekerjaan Anda).
Pada dasarnya, kerangka terdiri dari:
  • A toolbox - satu set prefabrikasi, komponen software cepat integratable. Ini berarti bahwa Anda akan harus menulis kode kurang, dengan risiko kesalahan. Ini juga berarti produktivitas yang lebih besar dan kemampuan untuk mencurahkan lebih banyak waktu untuk melakukan hal-hal yang memberikan nilai tambah yang lebih besar, seperti mengelola prinsip-prinsip, efek samping, dll
  • Metodologi - sebuah "diagram perakitan" untuk aplikasi. Pendekatan terstruktur mungkin tampak membatasi pada awalnya. Namun pada kenyataannya memungkinkan pengembang untuk bekerja secara efisien dan efektif pada aspek yang paling kompleks tugas, dan penggunaan Best Practices menjamin stabilitas, pemeliharaan dan upgradeability dari aplikasi yang Anda kembangkan.
Dan meskipun mungkin jelas, kami pikir lebih baik untuk mengatakan itu pula - Symfony adalah framework PHP, yang berarti bahwa hal itu memungkinkan aplikasi web yang akan dibangun di PHP!

Sebuah filosofi

Apa yang bisa lebih berguna daripada sebuah aplikasi yang dikembangkan oleh pengguna untuk kebutuhan mereka sendiri? Ini adalah kisah asal-usul Symfony - lahir dari imajinasi web desainer di SensioLabs, web developer dalam dirinya sendiri. Symfony dibuat tersedia untuk semua orang di bawah lisensi Open Source. Ini menguntungkan pengembang lain, yang juga memiliki kemampuan untuk memperbaikinya dengan menambahkan modul mereka sendiri. Semua ini dilakukan dalam lingkungan Praktik Terbaik, standarisasi dan interoperabilitas aplikasi.

Sebuah komunitas

Dan di belakang Symfony, ada orang-orang. Kami adalah orang-orang dari SensioLabs. Kami menciptakan Symfony untuk memecahkan masalah pengembangan web kami sendiri dan kami senang untuk mempromosikannya. Kami juga komunitas pengembang, pengguna, dan kontributor yang telah terbentuk di sekitar Symfony selama 5 tahun terakhir.
Symfony adalah seperangkat PHP Komponen, kerangka aplikasi Web, sebuah Filsafat, dan Komunitas - semua bekerja bersama secara harmonis

Kerangka symfony

Kerangka PHP terkemuka untuk membuat website dan aplikasi web. Dibangun di atas Komponen Symfony.

Komponen symfony

Satu set komponen dipisahkan dan dapat digunakan kembali yang terbaik aplikasi PHP yang dibangun, seperti Drupal, phpBB, dan EZ Publish.

symfony Community

Sebuah komunitas besar dari penggemar Symfony berkomitmen untuk mengambil PHP ke tingkat berikutnya.

symfony Filsafat

Merangkul dan mempromosikan profesionalisme, praktik terbaik, standarisasi dan interoperabilitas aplikasi.