0% menganggap dokumen ini bermanfaat (0 suara)
249 tayangan17 halaman

Yii 2

Yii2 memudahkan pengembangan aplikasi dengan fitur generator kode (Gii) yang dapat digunakan untuk membuat model, CRUD, dan komponen lain secara otomatis. Gii tersedia di backend aplikasi.

Diunggah oleh

Panyahuti Matondang
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
249 tayangan17 halaman

Yii 2

Yii2 memudahkan pengembangan aplikasi dengan fitur generator kode (Gii) yang dapat digunakan untuk membuat model, CRUD, dan komponen lain secara otomatis. Gii tersedia di backend aplikasi.

Diunggah oleh

Panyahuti Matondang
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Yii2: Pengaturan Dasar Yii Framework Versi 2

Author: Hafid Mukhlasin Category: PHP, Yii Framework 24 Jun 14

Ternyata benar kata temen2 di group yii Indonesia, semakin kesini Alhamdulillah saya merasakan bahwa Yii2 lebih
mudah dibanding Yii1, Yii2 lebih mirip boilerplate atau web yang udah jadi, so kita tinggal cutomize aja.. Artikel ini
merupakan lanjutan dari artikel sebelumnya Instalasi Yii via Composer (baca dulu jika belum). Pada artikel ini saya
akan membahas tentang pengaturan dasar yang sebaiknya kita lakukan setelah instalasi Yii (baca disini).
Disini, kita masih akan berhubungan dengan command prompt, dan composer. Dua tools aneh yang sepertinya
kuno sekali hehe.. Oke tanpa perlu berpanjang kata.. silahkan disimak.

Check Requirement
Sebelum semuanya membuat Anda bingung, pastikan Anda mengecek kebutuhan minimum server untuk bisa
menjalankan Yii. Yii telah menyediakan tools bagi Anda untuk melakukan checking secara otomatis. Caranya via
command prompt:

php.exe ../htdocs/advanced/requirements.php

Maka akan muncul resume beserta penjelasan (berikut pada pc saya)

Yup ada 1 error, 4 warning, Anda bisa baca apakah signifikan? jika
iya maka silahkan di fix dulu (googling yah.. hehe)

Memahami Directory Aplikasi Yii


Ketika kita install yii dengan advanced application template, maka kita akan menjumpai 6 folder utama dan
beberapa file, berikut ini kira2 penjelasannya mengenai fungsi masing2 folder itu:
The root directory contains the following subdirectories:
o

backend - backend web application.

common - files common to all applications.

console - console application.

environments - environment configs.

frontend - frontend web application.

Root directory contains a set of files.


o

.gitignore contains a list of directories ignored by git version system. If you need something never get to
your source code repository, add it there.

composer.json - Composer config described in detail below.

init - initialization script described in Composer config described in detail below.

init.bat - same for Windows.

LICENSE.md - license info. Put your project license there. Especially when opensourcing.

README.md - basic info about installing template. Consider replacing it with information about your project
and its installation.

requirements.php - Yii requirements checker.

yii - console application bootstrap.

yii.bat - same for Windows.

Intinya, ada 3 aplikasi yaitu frontend, backend dan console.


o

Frontend adalah aplikasi web yang akan ditampilkan untuk end user.

Backend adalah aplikasi web yang berfungsi untuk administrator dalam mengelola aplikasi frontend.

Console adalah aplikasi yang digunakan untuk cron jobs and low-level server management. dan
juga digunakan selama deployment aplikasi dan menghandle migrations dan assets.

Ada juga folder common yang berisi file2 yang digunakan oleh lebih dari satu aplikasi, sebagai contoh global
configuration seperti pengaturan koneksi database, atau general model seperti model user.
Yii2 sudah memperhitungkan pengembangan aplikasi enterprise, dimana sangat support untuk pengembangan
aplikasi secara team menggunakan git. Kalo kita lihat pada Yii2 ini, ada beberapa file yang berakhiran -local yaitu
main-local.php dan param-local.php, itu adalah file-file yang hanya untuk penggunaan local sehingga dikecualikan
untuk diupload ke repository git, silahkan cek file .gitignore.
Terkait dengan parameter dan configuration pada Yii2, berikut ini urutannya yii membacanya:

Predefined path aliases


o

@yii framework directory.

@app base path of currently running application.

@common common directory.

@frontend frontend web application directory.

@backend backend web application directory.

@console console directory.

@runtime runtime directory of currently running web application.

@vendor Composer vendor directory.

@web base URL of currently running web application.

@webroot web root directory of currently running web application.

Setting Database & Migrate

Yii2 udah nyiapin template database (tabel). Dan kerennya kodenya pun dah dibikinin mulai dari mekanisme login,
logout, register dan lupa password, so kita tinggal nonton doang :).
1.

Buatlah database baru, pada tutorial ini saya membuat database mysql dengan nama: yii2advanced

2.

Hubungkan projek yii Anda dengan database yang baru dibikin tadi, caranya buka file main-local.php yang
terletak di directory common/config/main-local.php pada bagian component.db
1 'dsn' => 'mysql:host=localhost;dbname=yii2advanced',

3.

Jika sudah, maka langkah selanjutnya adalah migrate, gunanya adalah menggenerate tabel yang
diperlukan untuk aplikasi kita. Caranya, masih via command prompt
1 php.exe ../htdocs/advanced/yii migrate

4.
5.

Yup, si migrate tool ini menggenerate table user.


Selesai deh..

Sekarang kita bisa cobain..


1.

Silahkan buka frontend di http://localhost/advanced/frontend/web/

2.

Silahkan register atau signup, pake data dummy aja

3.

Dan.. eng ing eng.. habis register otomatis login.

4.

Ok dengan Yii2 kita sudah nggak perlu puyeng lagi dengan login signup user via database.. bahkan ada
fitur lupa password

Anda bisa juga mencoba untuk aplikasi backend-nya

Setting Virtual Host di XAMPP


Kalo kita perhatikan, url menuju aplikasi frontend maupun backend terlalu panjang, nah kita bisa sederhanakan,
o

http://localhost/advanced/frontend/web/ menjadi http://front.end/

http://localhost/advanced/backend/web/ menjadi http://back.end/

Kalo kita pake XAMPP kita bisa atur menggunakan virtual host.. caranya
1.

Buka file konfigurasi untuk virtual host, C:\xampp\apache\conf\extra\httpd-vhosts.conf

2.

Tambahkan kode seperti berikut ini

1
2
3
4
5
6
7
8
3.

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/advanced/frontend/web/"
ServerName front.end
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/advanced/backend/web/"
ServerName back.end
</VirtualHost>

Kemudian edit juga file hosts (local dns windows) yang terletak di C:\Windows\System32\drivers\etc,
tambahkan kode berikut
1 127.0.0.1 back.end
2 127.0.0.1 front.end

4.

Restart Apache,

5.

Done

Setting URL SEO Friendly


Sebagai mana Yii1, Yii2 juga menyediakan setting untuk url atau permalink yang cantik atau istilah kerennya.. SEO
Friendly.. Gimana caranya? gampang kaka

1.

Gunakan htaccess sebagaimana yang direkomendasikan Yii.. checkout di http://www.yiiframework.com/doc2.0/guide-installation.html, yaitu buat file dengan nama .htaccess yang berisi

1
2
3
4
5
6
7
2.

RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php

Letakkan file ini di directory /frontend/web/ dan /backend/web/.


Triknya jika di windows, gunakan notepad untuk membuat file htaccess ini, lalu pada saat save gunakan tanda
petik dua pada filenamenya untuk mengghindari error .htaccess

3.

Kemudian edit file main-local.php yang terletak di directory common/config/main-local.php , tambahkan


kode berikut:

1
2
3
4
5
6
7
8
9
10
4.

return [
'components' => [
...
...,
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
],
],
];

Done.. liat bedanya

Yaitu script index.php dihilangkan dari URL Address, controller URL jadi enak dilihat,

dari :
http://front.end/index.php?r=site%2Fabout menjadi http://front.end/site/about

Setting Composer
Bagian terakhir, adalah setting composer, file composer.json berisi konfigurasi dari projek kita ini, silahkan di edit file
ini yang terletak di root directory dari projek kita yaitu C:\xampp\htdocs\advanced\composer.json
Update informasi dasar yaitu name, description, keywords, homepage and support sesuaikan dengan
project kita.
Bagian menarik disini adalah kita bisa menambahkan package atau library external yang diperlukan untuk aplikasi
kita pada bagian require . Syaratnya, lirary external tersebut harus ada di packagist.org (gak harus sih.. untuk
level advanced :)).
Setelah update composer.json maka untuk mengupdatenya buka kembali command prompt, ketik:
o

Masuk ke directory root projek kita


1 cd c:\xampp\htdocs\advanced

Update composer
1 C:\xampp\php\php.exe

C:\xampp\php\composer.phar update --prefer-dist

Tunggu sebentar karena mereka lagi install n update buat kita

done

Oke saya kira cukup itu dulu (capek nulisnya

capek juga kan bacanya) mudah2an manfaat..

Requirement
Software: OS Windows, XAMPP, Yii2
Brainware: Newbie

Yii2: Generate Code Via Gii di Yii Framework Versi 2


Author: Hafid Mukhlasin Category: PHP, Yii Framework 24 Jun 14

Artikel ini adalah lanjutan dari artikel sebelunya tentang pengaturan dasar Yii Framework.
Gii adalah tool untuk menggenerate kode di YiiFramework. Inilah yang menarik di Yii, mungkin sangat sulit bagi
saya yang nyubi ini untuk membuat atau menulis kode dari nol.. Generator Yii memudahkan, mempercepat
pembuatan sebuah aplikasi, kita juga bisa belajar dari kode yang dihasilkan.
Oke langsung aja.. buka aplikasi frontend Anda http://frontend, lalu signup atau register. kemudian:
1.

Buka aplikasi backend, karena gii adanya di backend. http://backend

2.

Silahkan

login

dengan

username

dan

password

hasil

register

tadi

3.

Lalu

akses

4.

Jangan kagok.. hajar saja.. pada Yii 1 untuk membuat Crud, yang perlu kita lakukan adalah generate model
dulu,

Gii

so

dengan

cara

Klik

http://backend/gii

Model

Generator

Tadi saat migrate kan generate tabel user, oke kita pake aja
dulu..
Eits stop sebelum Preview and Generate.. jangan lupa.. model User sudah dibuatkan Yii secara otomatis
ketika tadi kita migrate.. gak percaya?? buka aja di common/models/User.php nah looo.. oke kita skip aja ya
langkah ini.. kecuali Anda mau generate tabel lain..
5.

Sekarang

waktunya

generate

CRUD,

masuk

aja

ke

Crud

Generrator

Pada Model class masukkan aja common\models\User sss


Pada

Search

Model

Class

kosongin

dulu

aja..

Lalu pada Controler nih yang harus diisi, misal Anda ingin membuat CRUD di aplikasi backed, maka ya tinggal
tulis aja backend\controllers\UserController
6.

Lalu

tinggal

7.

Selesai.. saatnya mencoba.

Preview

and

Generate

deh..

8.

Buka http://backend/user

dan..

Lalu

9.

coba

eng

klik

gambar

ing

mata

eng

atau

view

Done..

Oh maaf lupa, untuk memudahkan user mengakses CRUD User, kita bisa buatkan link pada menu utama.. caranya
gampang :), Edit file di \backend\views\layouts\main.php, tambahkan item menu

1
2
3
4

$menuItems[] = [
'label' => 'User',
'url' => ['/user'],
];

Mudah2an manfaat silahkan kalo ada pertanyaan atau masukan thx CMIIW

Yii2: Tutorial Membuat Blog Sederhana Part I


Author: Hafid Mukhlasin Category: PHP, Yii Framework 25 Jun 14

Tutorial ini merupakan lanjutan dari artikel Yii2 sebelumnya, Asumsi Anda telah mengikuti tutorial sebelumnya,
Oke setelah aplikasi Yii2 ready,maka untuk mengeksplore pemahaman kita, berikut ini saya bawakan study kasus
yaitu membuat web blog sederhana.. mengapa sederhana? ya agar saya tidak terlalu panjang nulisnya (padahal
karena saya nyubi).. silahkan di kembangkan sendiri
Pada tutorial ini, aplikasi web blog dibagai menjadi 2 yaitu frontend untuk pengunjung baca artikel dan backend
untuk admin bikin artikel.. Hem.. artikel ini akan saya buat bertahap..
Pada bagian pertama ini saya akan fokus ngoprek FRONTENDnya

1) Modify Layout
o

buka file frontend\views\layouts\main.php, lalu modifikasi

- Brand Url (line 29)

'brandLabel' => 'My Blog',

- Footer Text (line 68)

<p class="pull-left">&amp;copy; My Blog <?= date('Y') ?></p>

buka file frontend\views\views\site\index.php, , lalu modifikasi

- drop class jumbotron & edit text

1
2

<div>
<h1>Yii Tutorials!</h1>

<p class="lead">Let's Fun Learn Yii Framework Version 2.0.</p>

<p><a class="btn btn-lg btn-success" href="http://www.yiiframework.com">Are You Ready?</a><

</div>

- Buat layout dengan 2 column (9 vs 3) main (list articles) and sidebar (menus)

1
2
3

<div class="row">
<div class="col-lg-9">
<div>
<h2>Judul</h2>

<p>Content</p>

5
6
7

</div>
</div>
<div class="col-lg-3">

8
9

<h2>Category</h2>
</div>

10
</div>

11

Referensi:
http://getbootstrap.com/css
http://getbootstrap.com/examples/blog/
- untuk sidebar menu yang berisi category gunakan widget Nav bootstrap untuk membuat tampilan menu

use yii\bootstrap\Nav;

echo Nav::widget([

'items' => [

['label'=>'category 1','url'=>'#'],

['label'=>'category 2','url'=>'#'],
],

6
7

]);

agar rapi use Nav nya bisa anda letakkan bagian atas dari file ini.

2) Adjust Structure Database


Structure databasenya kira2 begini.. ada 3 tabel jadi total 4 tabel dengan tabel user yang udah tercipta saat migrate

CREATE TABLE category

id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(255) NOT NULL,

5
6
7

create_time INTEGER,
update_time INTEGER
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

8
CREATE TABLE post

10

11

id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,

12

title VARCHAR(128) NOT NULL,

13

content TEXT NOT NULL,

14
15
16

category_id INTEGER NOT NULL,


status INTEGER NOT NULL,
create_time INTEGER,
update_time INTEGER,

17
18
19
20

user_id INTEGER NOT NULL,


CONSTRAINT FK_post_category FOREIGN KEY (category_id)
REFERENCES category (id) ON DELETE CASCADE ON UPDATE RESTRICT,
CONSTRAINT FK_post_user FOREIGN KEY (user_id)

21

REFERENCES user (id) ON DELETE CASCADE ON UPDATE RESTRICT

22

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

23
24

CREATE TABLE comment

25

26

id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,

27

content TEXT NOT NULL,

28

status INTEGER NOT NULL,

29
30
31
32
33
34
35

create_time INTEGER,
author VARCHAR(128) NOT NULL,
email VARCHAR(128) NOT NULL,
url VARCHAR(128),
post_id INTEGER NOT NULL,
CONSTRAINT FK_comment_post FOREIGN KEY (post_id)
REFERENCES post (id) ON DELETE CASCADE ON UPDATE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

36
37

INSERT INTO category (name) VALUES('Uncategory');

38
39
40
41
42
43
44

INSERT INTO post (title, content, status, create_time, update_time, user_id, category_id)
system is developed using Yii. It is meant to demonstrate how to use Yii to build a comple
Complete source code may be found in the Yii releases.

Feel free to try this system by writing new posts and posting comments.',1,1230952187,12309

INSERT INTO post (title, content, status, create_time, update_time, user_id, category_id)
ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut la
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea c
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatu
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', 1

INSERT INTO comment (content, status, create_time, author, email, post_id) VALUES ('This i
1230952187, 'Tester', 'tester@example.com', 1);

Ini file sql generate 3 tabel

https://drive.google.com/file/d/0BwSv7MUYD04kWmVNeEktTE45NlU/edit?usp=sharing

3) Create Model via Gii


http://back.end/gii
Buat CRUD Model untuk semua tabel dan jangan lupa gunakan Namespace common\models, yap karena model ini
akan digunakan di semua aplikasi (front dan backend)

4). Update Site Controller Part I (Provide data to show in view)


buka file frontend\controllers\siteController.php, lalu modifikasi

public function actionIndex()

$posts = \common\models\Post::find()

->where(['status' => 1])

5
6
7
8

->orderBy('id DESC')
->limit(3)
->all();
$categories = \common\models\Category::find()
->orderBy('name ASC')

9
->all();

10
11

return $this->render('index', [
'posts' => $posts,

12

'categories' => $categories,

13

]);

14

15

5) Show Data to View Fronted


buka file frontend\views\site\index.php, lalu modifikasi
Post

o
1

<?php

foreach($posts as $post){

echo '<div>';

echo '<h2>'.$post->title.'</h2>';

echo '<p>'.substr($post->content,0,300).'...</p>';

echo '<p><small>Posted by '.$post->user->username.' at '.date('F j, Y, g:i a',$post>create_time).'</small></p>';

echo '<p><a class="btn btn-default" href="http://www.yiiframework.com/doc/">readmore &amp;

echo '</div>';

10

?>

link readmore havenot defined


o

Category

Category
1

<?php

$items=[];

foreach($categories as $category){

$items[]=['label' => $category->name , 'url' => '#'];

echo Nav::widget([

'items' => $items,

]);

?>

link category havenot defined

6). Update Site Controller Part II (Create action Category Post &
Single Post)
- Category Post

1
2
3
4

public function actionPostCategory($id)


{
$posts = \common\models\Post::find()
->where(['status' => 1, 'category_id' => $id])

->orderBy('id DESC')

->limit(5)

->all();

<p>$categories = \common\models\Category::find()

->orderBy('name ASC')

10

->all();

11

<p>return $this->render('postCategory', [

12
13
14
15

'posts' => $posts,


'categories' => $categories,
]);
}

- create file postCategory.php di folder frontend\views\site\


postCategory.php same with file index.php
- Try http://front.end/site/post-category?id=1
- edit link category in sidebar index.php and postCategory.php
- Single Post

1
2
3

public function actionPostSingle($id)


{
$post = \common\models\Post::find()

->where(['status' => 1, 'id' => $id])

->one();

<p>$categories = \common\models\Category::find()

->orderBy('name ASC')

->all();

<p>return $this->render('postSingle', [

10

'post' => $post,

11
12
13

'categories' => $categories,


]);
}

- create file postSingle.php di folder frontend\views\site\


postSingle.php identic with file index.php but for single category
- Try http://front.end/site/post-single?id=1
- edit link readmore in main index.php and postCategory.php

Jika ketinggalan (emang kereta) ini file aslinya..

https://drive.google.com/file/d/0BwSv7MUYD04kTm1OSy1TR2xjZjg/edit?usp=sharing

Anda mungkin juga menyukai