yii2 kupas tuntas

Upload: haris-codenation

Post on 20-Feb-2018

272 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Yii2 Kupas Tuntas

    1/17

    Kupas Tuntas Yii Framework 2.0Mengupas secara tuntas high performance php framework Yii 2.0

    dalam rangka membangun aplikasi web profesional dengan cepat

    HAFID MUKHLASIN

  • 7/24/2019 Yii2 Kupas Tuntas

    2/17

    i

    DAFTAR ISI

    DAFTAR ISI .................................................................................................................. i

    BAB I Selayang Pandang ................................................................................ 1

    A. Apa itu Yii? ................................................................................................... 2

    B. Mengapa Yii? ............................................................................................... 3

    1.

    Kelebihan Yii .......................................................................................... 4

    2. Kekurangan Yii...................................................................................... 9

    C. Skill yang Diperlukan ............................................................................11

    D. Tool yang Dibutuhkan ..........................................................................11

    E. Tentang Buku Ini ....................................................................................12

    BAB II Instalasi dan Konfigurasi ................................................................14

  • 7/24/2019 Yii2 Kupas Tuntas

    3/17

  • 7/24/2019 Yii2 Kupas Tuntas

    4/17

    Kupas Tuntas Yii Framework 2.01

    BAB I

    Selayang Pandang

    Selamat datang di buku Kupas Tuntas Yii Framework 2.0. Buku ini

    akan mengajak anda untuk turut serta berpetualang di alam

    belantara Yii 2.0, beraksi dan menikmati keajaiban mengagumkan

    yang mungkin belum pernah anda lihat sebelumnya.

    Yii dengan segudang fiturnya, tidak hanya akan membantu anda

    dalam mempercepat penyelesaian proyek-proyek aplikasi Anda,

    namun lebih daripada itu, dia akan membuat Anda enjoy dan

    merasa tertantang ketika sedang merajut kode bersamanya.

    Bagaimanapun skill anda di bidang programming, maka Yii mampu

    menempatkan posisinya dengan baik. Sebagai contoh, pada kondisi

    dimana skill anda terbatas maka Yii dengan segenap keajaibannya

    akan secara cantik menutup gap antara kebutuhan aplikasi yang

    kompleks dan rumit dengan skill anda tersebut. Demikian juga

    sebaliknya, Yii tidak akan pernah habis untuk dieksplorasi sampai

    batas kemampuan kita.

    Totalitas dan profesionalisme inilah yang kemudian mampu

    merebut hati begitu banyak programmer dan developer dari

    berbagai belahan dan penjuru dunia, dan hendaknya anda waspada

    karena virus ini sebentar lagi akan menghinggapi anda!

  • 7/24/2019 Yii2 Kupas Tuntas

    5/17

    Kupas Tuntas Yii Framework 2.02

    A. Apa itu Yii?

    Tak kenal maka tak cinta, sampai pada tulisan ini anda harus

    segera memutuskan apakah masih memiliki slot hati untuk

    mencintai sebuah php framework lagi, jika tidak maka

    berhentilah membaca buku ini karena resiko ditanggung

    pembaca. Anda akan jatuh cinta selepas anda mengenalnya.

    Serius!

    Yii, dalam bahasa cina berarti simple and evolutionary,

    merupakan sebuah php framework yang memiliki performa

    mengagumkan, digunakan untuk membangun aplikasi berbasis web

    secara profesional dan elegan. Definisi tentang apa itu Yii

    sebenarnya tergantung ekspektasi anda terhadap sebuah php

    framework, intinya, apapun yang anda inginkan maka ini adalahpilihan yang tepat. Yes It Is. Untuk informasi lebih lengkap anda bisa

    kunjungi website resminya di http://www.yiiframework.com.

    Saat ini, Yii telah mencapai versi 2.0, namun meskipun demikian,

    hingga tahun 2015 ini, Yii masih akan tetap men-support varian

    versi 1.1 untuk memberikan kesempatan bagi para developer

    sebelum mereka migrasi ke versi 2.0. Hal ini dikarenakan versi 2.0

    ini memiliki perbedaan yang sangat signifikan dibandingkan dengan

    versi 1.1, baik dari sisi kode, sebagian fitur, sebagian konsep, dan

    teknologi yang diadopsi.

    Dari sisi kode, Yii 2.0 berbeda jauh dengan Yii 1.0, karena memang

    bukan pengembangan melainkan hasil tulis ulang kode dengan

  • 7/24/2019 Yii2 Kupas Tuntas

    6/17

    Kupas Tuntas Yii Framework 2.03

    konsep baru, serta mengadopsi teknologi-teknologi terbaru yang

    telah didukung oleh PHP, seperti composer, PSR, namespace, dsb.

    Jadi apakah anda sudah faham apa itu Yii? Atau bahkan anda sudahmulai tertarik dengan Yii?

    B. Mengapa Yii?

    Tidak harus, karena masih banyak framework php lain yang juga

    layak untuk anda coba dan gunakan (janganlah seperti katak dalam

    tempurung), yang mana diantara mereka ada yang lebih cepat, lebih

    efisien, mendukung versi PHP lama, dsb. Tapi Yii berbeda, unik dan

    fantastis yang tidak akan anda temui di framework-framework php

    lainnya. Apa itu? penasaran? silahkan ikuti terus petualangan dalam

    buku ini.

    Yii seperti umumnya php framework lainnya, dapat digunakan

    untuk membangun berbagai jenis aplikasi berbasis web, misalnya:

    web portal, forum, CMS, e-commerce, web service, dan masih

    banyak yang lainnya. Disamping itu, Yii juga memiliki fitur-fitur

    yang umum dimiliki oleh framework modern lainnya, diantaranya:

    MVC (model view controller), support banyak database, ORM,

    caching, RESTful, code generator, dsb.

    Sebagai mana Anda, Yii juga punya filosofi tersendiri dalam

    pengembangannya yaitu: kode seharusnya ditulis dengan

    sederhana namun dengan cara elegan, serta performayang tinggi

    selalu menjadi kunci utama dalam setiap pengembanganya.

  • 7/24/2019 Yii2 Kupas Tuntas

    7/17

    Kupas Tuntas Yii Framework 2.04

    1.

    Kelebihan Yii

    Mungkin ini bagian yang banyak dicari oleh pemula yang ingin

    belajar Yii. Yaitu tentang apa sih keunggulan dari framework inidibandingkan dengan framework lain. Bagi penulis, ini adalah topic

    yang gampang-gampang susah karena sangat-sangat relative. Pada

    intinya sih silahkan dicoba dan Anda akan menemukan satu persatu

    kelebihan itu. Namun berdasarkan pengalaman selama ini, penulis

    akan mencoba jabarkan tentang keunggulan Yii 2.0

    Fitur & Guide Lengkap

    Secara umum, menurut penulis dan rekan-rekan yang bergelut

    dengan Yii, salah satu kelebihan framework ini yaitu Yii memiliki

    fitur yang sangat lengkap, sehingga apapun yang Anda butuhkan

    dalam suatu pembangunan aplikasi berbasis web, maka semua itu

    pada umumnya sudah tercover oleh built-in Yii. Adapun jika kurang

    maka ada banyak extension diluar sana yang bisa Anda gunakan

    atau library-library PHP yang dengan mudah bisa kita integrasikan.

    Tidak cukup disitu saja, manual Yii juga sangat lengkap dan jelas,

    API Yii juga mudah dibaca karena tersusun rapi beserta

    penjelasannya, bahkan buku ini pun maupun buku-buku sejenisnya

    sebenarnya menjadi tidak perlu jika Anda mahir dalam Bahasa

    Inggris. Hal ini juga diakui oleh developer dari php framework lain.

    Menarik bukan?

    Bukan One Man Show

  • 7/24/2019 Yii2 Kupas Tuntas

    8/17

    Kupas Tuntas Yii Framework 2.05

    Yii juga bukan lagi one man show, memang pada awalnya Yii

    dibangun oleh satu orang developer saja yaitu Qiang Xue pada awal

    tahun 2008. Beliau ini juga bukan pemain baru, melainkan

    sebelumnya adalah developer salah satu php framework fenomenal

    yaitu Prado. Saat ini, pengembangan Yii dilakukan oleh tim utama,

    terdiri dari developer-developer kelas atas dunia termasuk Qiang

    sendiri, serta didukung oleh komunitas yang selalu memberikan

    kontribusi secara professional.

    Komunitas Besar dan Aktif

    Yii memiliki komunitas yang besar sehingga diharapkan ketika kita

    menghadapi masalah dalam belajar atau pengembangan aplikasi

    berbasis Yii akan banyak yang membantu.

    http://www.yiiframework.com/forum/, forum resmi Yii

    memiliki member 200 ribuan (Jan 2015)

    https://www.facebook.com/groups/yiitalk, group FB resmi

    Yii memiliki member 24 ribuan (jan 2015)

    https://www.facebook.com/groups/yii.indonesia, group Yii

    Indonesia memiliki member 19 ribuan (Jan 2015)

    dsb

    Menariknya, komunitas yang besar ini sangat aktif, tidak hanya

    pada pertanyaan atau diskusi yang ringan, namun juga pada

    pertanyaan atau diskusi dengan topic yang berat. Mari bergabung!

    dan buktikan

    Banyak Extension

  • 7/24/2019 Yii2 Kupas Tuntas

    9/17

    Kupas Tuntas Yii Framework 2.06

    Tidak semua fitur dimasukkan ke core dari Yii, jika kita

    membutuhkan fitur yang spesifik yang tidak ada dalam fitur utama

    Yii, maka jangan khawatir. Terdapat ribuan extension yang bisa kita

    gunakan.

    Kode Generator Ajaib

    Yii memiliki kode generator (Gii) yang berfungsi menggenerate

    code template model, crud, form, dsb. Sehingga akan mempercepat

    developer dalam membangun sebuah aplikasi. Menariknya, tools ini

    bisa dengan mudah dikustomisasi sesuai dengan keinginan.

    Mengadopsi Standard dan Teknologi Terbaru

    Setelah versi 2.0, Yii mengadopsi standard dan teknologi terbaru,

    sebut saja: PHP 5.4 keatas, namespace , composer, PSR, dan bower.

    Banyak best practice pada framework lain, cms, atau teknologi weblain diadopsi oleh Yii seperti Prado, Symfony, Ruby n Rails, Joomla,

    dsb. Developer Yii akan terus menyesuaikan dengan perkembangan

    teknologi web, dan membuka masukan dari berbagai pihak.

    Silahkan baca issue di github yii2.

    Peningkatan Keamanan

    Keamanan menjadi factor penting dalam dunia web programming,

    dan developer Yii menyadari akan hal itu. Yii memiliki beberapa

    fungsi keamanan built-in yang mudah digunakan, antara lain untuk

    pencegahan SQL injections, XSS attacks, CSRF attacks, cookie

    tampering, dsb.

  • 7/24/2019 Yii2 Kupas Tuntas

    10/17

    Kupas Tuntas Yii Framework 2.07

    Pada versi 2.0 ini, Yii juga telah direview oleh dua pakar keamanan

    web yaitu Tom Worster and Anthony.

    URL SEO Friendly

    Hanya dengan sedikit konfigurasi, kita bisa membuat aplikasi

    dengan URL yang SEO friendly. Fitur ini bernama pretty url, yang

    pada versi 2.0 ini telah disempurnakan.

    Mudah Integrasi dengan Library Lain

    Sejak versi 1, Yii terkenal mudah berintegrasi dengan library lain,

    apalagi setelah mendukung composer. Jadi jangan khawatir, karena

    library PHP apapun bisa digunakan di Yii 2.0.

    Built-in Twitter Bootstrap

    Siapa yang tidak kenal Twitter Bootstrap (TB), sebuah framework

    UI besutan designer Twitter yang sangat popular di dunia web

    design. Yii 2.0 by default menggunakan TB sebagai base UI-nya,

    dengan widget-widget yang memudahkan kita dalam menerapkan

    UI ala TB, seperti form, tab, modal, dsb.

    Oh mungkin Anda anti mainstream dan tidak mau menggunakan

    TB!, no problem. Yii 2.0 by default memang menggunakannya

    namun dengan sedikit konfigurasi kita bisa menggantinya dengan

    UI kesukaan kita.

    Authentication and Authorization

    Yii secara built-in mendukung fitur authentication dan

    authorization pengguna, seperti: login, logout, cookie-based dan

  • 7/24/2019 Yii2 Kupas Tuntas

    11/17

    Kupas Tuntas Yii Framework 2.08

    token-based authentication, access control filter dan role-based

    access control (RBAC). Disamping itu juga mendukung OpenID,

    OAuth1 dan OAuth2 protocols.

    Internasionalisation dan Localisation

    Dua fitur ini sudah built-in dan mudah digunakan. Disamping itu

    secara built-in, Yii juga mendukung penerjemahan pesan error

    internal ke dalam 26 bahasa dunia, termasuk Indonesia.

    Mendukung Banyak Database Populer

    Yii mendukung semua database popular, antara lain: mysql,

    postgreSQL, mariadb, ms sql, oracle, mongodb. Disamping itu untuk

    pengelolaan database, Yii juga menyediakan fitur migration, active

    record, query builder, database access object.

    Mendukung Template Engine

    Yii mendukung dua template engine popular yaitu smarty dan Twig,

    serta sangat memungkinkan bagi developer membuat sendiri

    ekstensi yang mendukung template engine lain.

    Mendukung Penuh Cache

    Yii mendukung berbagai jenis cache (APC, Memcache, files,

    databases, dsb) pada berbagai level aplikasi, baik dari sisi client

    (HTTP caching) maupun server (fragment caching, dan query

    caching).

    Kemudahan Membuat Web Service

  • 7/24/2019 Yii2 Kupas Tuntas

    12/17

    Kupas Tuntas Yii Framework 2.09

    Implementasi web service menjadi sangat mudah, karena

    mendukung penuh semua fungsi RESTful API.

    Template Aplikasi

    Yii juga menyediakan template aplikasi (basic dan advance) yang

    akan memudahkan kita dalam memulai mendevelop aplikasi. Dari

    sini akan memudahkan kita memahami best praktis dari Yii.

    Tools Testing Terintegrasi

    Secara built-in Yii juga menyediakan tools untuk testing aplikasi

    yaitu codeception dan faker.

    2. Kekurangan Yii

    Agar lebih fair maka penulis juga akan ulas beberapa kekurangan

    dari framework ini.

    Masih Terlalu Baru

    Yii 1.x pertama kali release memang sudah sejak tahun 2008,

    namun jika kita berbicara Yii 2.0 yang merupakan totally rewrite

    dari Yii 1 maka ini masih sangat premature atau belum cukup teruji

    karena release stabilnya baru pada 12 Oktober 2014.

    Tapi perlu diketahui bahwa diskusi tentang konsep Yii 2.0 telah

    dimulai sejak tahun 2012. Kemudian pada pertengahan tahun 2013,

    dirilis Yii 2.0 Public Preview, Desember 2013 alpha, April 2014 beta,

    baru kemudian 12 Oktober 2014 rilis Yii 2.0 stabil. Perjalanan yang

    panjang (3 tahun) dan terbuka (github) ini dengan begitu banyak

    masukan (10.000 commits) dan contributor (300-an), menurut

  • 7/24/2019 Yii2 Kupas Tuntas

    13/17

    Kupas Tuntas Yii Framework 2.010

    hemat penulis sudah cukup untuk menyimpulkan bahwa Yii 2.0

    cukup mature.

    Tidak Terlalu Populer

    Awalnya Yii adalah framework PHP yang sangat popular, banyak

    developer berbondong-bondong migrasi ke Yii terutama karena

    performa yang mengagumkan. Namun seiring berjalannya waktu

    dan perkembangan teknologi, Yii 1.x tidak segera mengadopsi

    standard dan teknologi baru, justru berusaha untuk tetap

    kompatibel dengan PHP versi lama, serta menjaga kompatibilitas

    dan kestabilannya. Padahal saat itu framework php lain telah mulai

    melakukannya.

    Strategi Yii dengan membagi framework menjadi 2 varian versi

    yaitu 1.x dan 2.x, serta terlalu lamanya pengembangan versi 2.0

    yang mengadopsi standard dan teknologi terbaru, membuat banyak

    developer akhirnya migrasi ke framework tetangga.

    Meskipun bukan yang paling popular namun komunitas Yii cukup

    besar.

    Terlalu Lengkap

    Bisa dibilang bahwa Yii 2.0 mengusung semua fitur yang diperlukan

    bagi developer untuk membangun berbagai jenis aplikasi. Namun

    sebagian developer tidak menyukai tools yang terlalu lengkap,

    banyak fitur yang akan mubadzir dan tentunya bisa mempengaruhi

    performa aplikasi. Namun semua kembali ke preferensi masing-

    masing.

  • 7/24/2019 Yii2 Kupas Tuntas

    14/17

    Kupas Tuntas Yii Framework 2.011

    Tidak Cepat

    Soal kecepatan Yii 2.0 berada ditengah, banyak framework php yang

    memiliki kecepatan jauh melampaui Yii 2.0.

    Namun sebagai fullstack framework dengan fitur yang sangat

    lengkap, performa Yii tergolong bagus. Apalagi jika didukung

    dengan environment yang memadai (web server ngix, PHP FPM,

    mariadb) serta penggunaan cache yang tepat dan efisien.

    C.

    Skill yang Diperlukan

    Untuk dapat mengikuti panduan yang ada dalam buku ini dengan

    baik, maka anda harus mempunyai pengetahuan yang cukup

    tentang bahasa pemrograman PHP.

    D. Tool yang Dibutuhkan

    Berikut ini tools yang diperlukan dan harus anda siapkan sebelum

    mengikuti panduan yang ada dalam buku ini.

    Web server apache atau nginx terbaru

    PHP 5.4 atau yang lebih baru

    MySQL atau Mariadb

    Untuk instalasi ketiga tools diatas, penulis menyarankan

    menggunakan paket XAMPP.

    Code editor (sublime, notepad++, dll)

  • 7/24/2019 Yii2 Kupas Tuntas

    15/17

    Kupas Tuntas Yii Framework 2.012

    Yii 2.0 requires PHP 5.4.0 or above. You can find more detailed

    requirements for individual features by running the requirement

    checker included in every Yii release.

    o Editor

    o Web Server, PHP, and Database

    E. Tentang Buku Ini

    Dalam buku ini, penulis akan membahas tentang Yii framework

    versi 2.0, sehingga segala pembahasan yang ada akan anda jumpai

    adalah tentang versi ini. Adapun sistematika materi yang disajikan

    adalah sebagai berikut:

    1. Selayang Pandang

    2. Instalasi dan Konfigurasi

    3.

    Kode Generator (Gii)

    4. MVC Tingkat Lanjut

    5. Widget dan Kustomisasi UI

    6. Authentication & Authorization

    7. Pemrosesan File & Pembuatan Report

    8. Bekerja dengan Ajax

    9. Kustomisasi Gii

    10. Topik Pilihan

    11. Publikasi

    Pembahasan pada setiap bab akan diawali dengan sedikit teori dan

    konsep, yang kemudian diikuti dengan panduan step by step. Source

    code dan berbagai bahan yang dibutuhkan pada tutorial dalam buku

  • 7/24/2019 Yii2 Kupas Tuntas

    16/17

    Kupas Tuntas Yii Framework 2.013

    ini bisa anda download di http://www.hafidmukhlasin.com/kupas-

    tuntas-yii2

  • 7/24/2019 Yii2 Kupas Tuntas

    17/17

    Kupas Tuntas Yii Framework 2 014

    BAB II Instalasi dan Konfigurasi

    Sebelum kita mulai melakukan instalasi, ada beberapa hal yang

    perlu kita fahami.

    Manual Installation (download)

    Modern Installation

    o

    Understanding Composer & Githubo

    Installation Yii2 Basic

    o

    Installation Yii2 Advanced

    First Testing

    Understanding Folder Management

    Basic Configuration

    o

    URL SEO Friendly

    o You have idea?

    3.