การติดตั้งและใช้งาน Bower Package ใน Yii Framework 2

คู่มือการเรียนรู้ Yii Framework 2 (Yii2)

บทเรียนดีๆ สำหรับผู้ที่ต้องการแบ่งปัน บทเรียนของคุณอาจมีค่าสำหรับอีกหลายๆ คน

beta version

การติดตั้งและใช้งาน Bower Package ใน Yii Framework 2

มานพ กองอุ่น yii bower package install 989

Bower เป็นแหล่งรวบรวม Package เช่น JavaScript, CSS Package ตัวอย่าง Bootstrap, Highcharts เป็นต้น ในที่นี้เราจะติดตั้ง Highcharts และทดลองใช้งานใน Yii Framework 2

การติดตั้ง

ก่อนอื่น เรามาเตรียมตัวก่อนการใช้งานโดยต้องติดตั้ง Node.js และ ทำการ install bower ให้เรียบร้อยโดยใช้คำสั่ง

npm install -g bower

จากนั้นเข้าไปที่ Project ของ Yii Framework 2 แล้วทดลองติดตั้ง Higcharts โดยพิมพ์คำสั่ง 

bower install highcharts

เมื่อติดตั้งเสร็จจะได้ดังนี้

เมื่อเปิดดูใน vendor จะมี bower/highcharts เกิดขึ้น (vendor/bower/highcharts)

การสร้าง Asset ใน Yii2

ใน Yii Framework 2 ให้สร้าง Asset เพื่อ Register Asset ใน bower โดยสร้างไฟล์ที่ frontend/assets/HighchartsAsset.php แล้วเขียนโปรแกรมดังนี้

<?php
namespace frontend\assets;

use yii\web\AssetBundle;

class HighchartsAsset extends AssetBundle
{
	public $sourcePath = '@bower/highcharts';
	public $css = [];
	public $js = [
		'highcharts.js',
		'highcharts-more.js',
	];
	
	public $depends = [
		'yii\web\JqueryAsset'
	];
}

สร้าง Controller เพื่อทดสอบ

สร้าง Controller เพื่อทดสอบเรียกใช้งานโดยสร้าง frontend/controllers/HighchartsController.php

<?php
namespace frontend\controllers;

use yii\web\Controller;

class HighchartsController extends Controller
{
	public function actionIndex()
	{
		return $this->render('index');
	}
}

สร้าง View 

ทำการสร้าง View เพื่อลงทะเบียน Asset และ เรียกใช้งาน Higcharts โดย View จะอยู่ที่ views/highcharts/index.php

<?php
use frontend\assets\HighchartsAsset;

HighchartsAsset::register($this);
$this->title = 'Highcharts Test';
?>

<div id="my-chart" style="min-width: 310px; height: 400px; margin: 0 auto"></div>


<?php $this->registerJs("
$(function () {
    $('#my-chart').highcharts({
        title: {
            text: 'Monthly Average Temperature',
            x: -20 //center
        },
        subtitle: {
            text: 'Source: WorldClimate.com',
            x: -20
        },
        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },
        yAxis: {
            title: {
                text: 'Temperature (°C)'
            },
            plotLines: [{
                value: 0,
                width: 1,
                color: '#808080'
            }]
        },
        tooltip: {
            valueSuffix: '°C'
        },
        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'middle',
            borderWidth: 0
        },
        series: [{
            name: 'Tokyo',
            data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
        }, {
            name: 'New York',
            data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]
        }, {
            name: 'Berlin',
            data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]
        }, {
            name: 'London',
            data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
        }]
    });
});		
")?>

สามารถดูตัวอย่าง Chart จาก Demo ได้ที่ 

http://www.highcharts.com/demo

เมื่อเรียก Url เพื่อทดสอบการแสดงผลจะได้ดังนี้

http://localhost/yii2-tutorial/frontend/web/index.php?r=highcharts/index

หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com
กลับขึ้นบน