Kaskus

Tech

indrahanungAvatar border
TS
indrahanung
Tentang PHP Framework
Tentang PHP Web Framework

Kalau anda belum pernah mendengar web framework, anda bisa googling: Apa itu Framework, karena sudah banyak yang menulis tentang web framework. emoticon-Ngakak

Sedikit tambahan saja tentang apa itu framework. Jadi, bila anda pernah bermain game-game modern, terutama game yang berat, game-game tersebut susah untuk bisa dibuat tanpa fondasi yang canggih karena membuat game bukanlah proyek yang kecil.

Maka para game-developer biasanya menggunakan Game Engine (Contoh: Unity Engine, Rage Engine, Naughty Dog Engine, CRY Engine) untuk memungkinkan pembuatan game dengan performa dan kualitas tinggi, dalam waktu yang lebih singkat, dan proses yang lebih mudah.

Nah, walaupun Web Framework berbeda dengan Game Engine emoticon-Ngakak; tetapi kegunaannya hampir sama, yaitu untuk memudahkan proses development.

Hampir semua developer tingkat menengah dan tingkat keatas menggunakan framework, atau kadang membuat frameworknya sendiri, terutama bagi website-website yang besar, seperti: Twitter, Facebook, Yahoo, Google, Mailchimp, dll.

Jadi bila anda ingin melangkah maju, dan meningkatkan skill anda, belajar menggunakan framework bisa membantu, karena banyak konsep baru yang akan anda pelajari.

Kembali ke PHP
Izinkan saya untuk mencontohkan beberapa fitur-fitur yang biasanya disediakan oleh web framework. emoticon-Cendol (S)

Note: Framework yang dicontohkan dibawah adalah Laravel:

ORM, & Active Record.

Tidak perlu khawatir tentang SQL lagi, anda dapat fokus ke spesialisasi anda. Tetapi bila spesialisasi anda adalah menulis SQL, anda tetap bebas untuk tidak menggunakan fitur ini.

Connect MySQL secara manual: emoticon-Cape d... (S)
Code:

mysql_connect($server, $username, $password);
mysql_select_db("database");
$query = mysql_query("SELECT * FROM "users" WHERE "id" = 1");
while ($row = mysql_fetch_array($query)) {[INDENT]// blablabla[/INDENT]}


Menggunakan ORM di Laravel:
Code:
User::find(1)

emoticon-Matabelo
Menggunakan Active Record di Laravel:
Code:
DB::connection("database")->table('users')->find(1)


MVC

Aplikasi lebih terstruktur, & lebih tepat, tidak perlu memikirkan struktur untuk aplikasi anda (directory, file, dll).

Memuat template tanpa menggunakan framework:
Code:
include __DIR__ . "templates/file_saya.php"


Memuat template di Laravel:
Code:
View::make('file_saya')

emoticon-Matabelo

Libraries

Tidak perlu khawatir tentang pagination, file upload, shopping cart, login form, session, cookies, dll, anda bisa langsung memakai library yang telah disediakan oleh framework yang anda pilih.

Membuat pagination di Laravel:
Code:
$pagination = DB::table('orders')->paginate(5)

emoticon-Matabelo

Unit Testing

Tidak perlu melakukan tes aplikasi secara manual setiap mengupdate aplikasi. Contoh:Mencet-mencet tombol, ngecek link, ngecek file, dll. emoticon-Cape d... (S)

Harus dihentikan! Karena memakan banyak waktu, & masih sering ada bug! Contoh: AJAX tidak berfungsi, salah database, link mati / busuk, dll... emoticon-Mad (S)

Menjalankan PHPUnit Test Suite di Laravel:
Code:
php artisan test

Note:Harus menulis tes sebelum dapat menjalankan test

Routing, Clean URL, & REST

URL lebih singkat, & rapi tanpa harus belajar apache url_rewrite.

Contoh, biasanya URL untuk menghapus sesuatu dari database terlihat seperti ini:
Code:
http://web_saya.com/file.php?id=2&action="delete"


Sama seperti diatas, tetapi menggunakan routing yang disediakan oleh framework:
Code:
http://web_saya.com/file/2

Details:Tidak perlu menambahkan GET['action'], karena biasanya sudah REST (Representational State Transfer).

Modular

Aplikasi lebih modular / terpisah, tidak bercampur jadi satu, bisa menginstall library orang lain dengan mudah, tidak perlu menulis library sendiri.

Biasanya di dalam web framework, anda bisa berbagi library buatan anda dengan orang lain, atau memakainya lagi di proyek anda selanjutnya dengan mudah, tidak perlu memulai lagi dari 0.

Menginstall laravel bundle menggunakan cmd / terminal:
Code:
php artisan bundle:install auth // Library untuk menghandle login form / authentikasi


Secure / Aman

Aman dari hack, bug, dll. Semua data telah di filter secara otomatis, tidak perlu khawatir tentang security. Contoh masalah security: SQL Injection, register_globals, magic_quotes, Cross Site Scripting / XSS, Cross Site Request Forgery / CSRF, dll

Meningkatkan Teamwork

Karena struktur framework biasanya lebih modular / terpisah, jadi setiap personil bisa fokus ke spesialisasinya masing-masing.

Contoh: Bila spesialisasi anda adalah database, anda dapat mendesain database tanpa menulis HTML, & CSS sama sekali, dan sebaliknya, bila spesialisasi anda adalah desain template, anda dapat menulis HTML tanpa menulis PHP, atau SQL, satu baris pun.

Terqualifikasi

Anda dianggap lebih terqualifikasi, karena berarti anda mengetahui konsep-konsep, seperti: Model-View-Controller, Object Oriented Programming, Modular Design, Test Driven Development, dll, dan beberapa dari framework-framework tersebut juga telah dibacking oleh komunitas yang besar.

Beberapa Framework PHP


Note: Download, lalu untuk tutorial, baca documentasinya, atau googling: "{Nama Framework} Tutorial", atau cari video di YouTube

Untuk yang belum pernah menggunakan framework, saya rekomendasikan Code Igniter, atau Laravel.

Laravel lebih singkat, fleksibel, menghasilkan code yang lebih rapi, dan mudah dibaca.

Code Igniter lebih mudah, sederhana, dan dibacking oleh komunitas yang besar (banyak tutorial-tutorialnya).

...Walaupun sebenarnya saya tidak menggunakan Laravel, maupun Code Igniter. emoticon-Ngakak

THE END

Bila kurang jelas, atau ada kesalahan, saya mohon maaf sebesar-besarnya, peace... Im just a poor boy emoticon-Berduka (S)
0
431
0
GuestAvatar border
Komentar yang asik ya
GuestAvatar border
Komentar yang asik ya
Komunitas Pilihan