Wednesday, September 11, 2013

แนะนำเวป http://yiiextensionthai.zz.mu/

เคยงงไหม จะหาข้อมูลอะไรเกี่ยวกับ yii ที ต้องไปเปิดเวปแต่ละคน ที่เขาสร้างขึ้นมา แต่ถ้ามีรวมไว้แล้ว ณ ที่ๆ เดียว ก็จะสามารถทำให้ค้นหาได้อย่างอิสระ ไม่ต้องเปิดหลากหลายเวปจนเกินไป


ขอแนะนำเวปหน่อยนะครับ http://yiiextensionthai.zz.mu/ เป็นเวปที่ผมสร้างเองด้วย yii framework อาจจะไม่มีอะไรมากเท่าไหร่นัก ไม่ได้แต่งให้สวยงาม แต่จุดประสงค์การใช้งานคือการใช้ค้นหาข้อมูล จากแหล่งข้อมูลการสอน yii ที่มีอยู่ใน thai

คือไม่ได้เจ๋ง เหมือน google เท่าไหร่ แต่ซักวันมันจะต้องเจ๋งแน่นอน

http://cksc.co.th/site/ ขอแนะนำเวปกันหน่อย

ขอแนะนำเวป หน่อยนะครับ

http://cksc.co.th/site/

Monday, September 9, 2013

เจาะลึก css ของ yii และ bootstrap

ไฟล์จาก layout main.php

<div class="container" id="page" style="margin-top:50px; ">

id="page" เป็นเส้นของกรอบ
style="margin-top:50px; เดิมไม่มีแต่เขียนเพิ่มเข้าไปใหม่ แสดงว่า คุม css เดิมที่มีอยุ่ได้

Friday, September 6, 2013

แค่ใช้ gii ตัวเดียว สามารถสร้างให้เราได้อย่างรวดเร็ว

เข้าไปที่ http://localhost/yii_gii/app/index.php?r=gii


ให้สร้างตามลำดับดังนี้
1. Model Generator
2. Controller Generator
3. Crud Generator

Form Generator มันจะเป็นอันเีดยวกับ CRUD มีให้อยู่แล้ว
Module Generator ยังไม่ได้ใช้


เมื่อสร้างแล้ว จะได้ไฟล์พื้นฐานที่จำเป็นทั้งหมดดังนี้


เห็นได้ว่ามันจะสร้างสิ่งที่จำเป็นทั้งหมดให้ในทันที เราไม่ต้องทำอะไรเพิ่มเติมแล้ว นอกจาก จะไปจัดหน้า form ตามต้องการ


$this->renderPartial

$this->renderPartial เหมือนกับการ include ที่ดึงหน้ามาใช้งาน

สมมุติ เราสร้างหน้า form add และ form edit ซึ่ง ข้อมูลข้างใน จะมีความเหมือนกัน ต่างกันแค่หัวข้อ

ทางตัวอย่าง yii demos/blog ก็มีการสอนตรงนี้อยู่


1. _form.php
2. create.php เรียกใช้ _form.php
3. update.php  เรียกใช้ _form.php

การเปลี่ยน Template ใหม่ โดยเราจะไม่ใช้ File main.php แต่เป็นตัวอื่นแทน





ให้ใส่บรรทัดนี้ไว้บนสุดเลย public $layout='//layouts/admin'; จะเป็นการบอกว่าใน admincontroller จะเรียกใช้งาน layout จากไฟล์ layouts/admin.php นะ ไม่ใช่ main.php

เดิม พอไม่รุ้ ก็ต้องไปใส่ เปลี่ยน layout มันทุก action








Thursday, September 5, 2013

วัตถุประสงค์ของ CFormmodel คืออะไร?

CFormModel is used where the model data doesn't come from an active record.
That is: it doesn't have a related record in the database.
That's basically it.





CFormModel ใช้สำหรับเรียก model โดยตรง โดยไม่ได้เรียก active record
คือมันไม่เกี่ยวข้องกับ record ใน database


คล้ายๆ กับว่า CFormModel คนใช้ ต้องมาเขียนโค้ดเอง ส่วนมากเห็น CFormModel เช่นพวก login เพราะว่ามีอิสระในการ config มากกว่า

แต่ CActiveRecord จะมี action กำหนดค่าให้เราง่ายกว่า








ที่มา http://www.yiiframework.com/forum/index.php/topic/18467-what-is-the-purpose-of-cformmodel/

การใส่ attribute ลง cgridview ใน 1 cell มากกว่า 1 attribute


Code
$this->widget('zii.widgets.grid.CGridView', array(
  'dataProvider'=>$dataProvider,
  'columns'=>array(
    array(
      'name'=>'student_name',
      'type'=>'raw',
      'value'=>'"ชื่อ ".$data->name . " นามสกุล " . $data.surname ',
    ),
  ),
));








ที่มา http://www.yii.in.th/forum/index.php?topic=52.0

รวมคำสั่งที่เกี่ยวข้องกับ label

<?php echo $form->labelEx($book, "name"); ?>

<?php echo CHtml::activeLabelEx($model, 'verifyCode')?>

CDetailView

CDetailView

$this->widget('zii.widgets.CDetailView', array(
 'data' => $model,
 'attributes' => array(
'vehicleID',
'vehicleName',
'vehicleNumber',
'make',
'model',
'color',
'wheels',
'detail',
 ),
));
 
CListView
 
$this->widget('zii.widgets.CListView', array(
 'dataProvider'=>$dataProvider,
 'itemView'=>'_view',
)); 
 
 

Tuesday, September 3, 2013

CPagination หรือคำสั่งในการแบ่งหน้า

การแบ่งหน้าเช่นมี 30 รายการ แต่อยากให้แสดงทีละ 10 รายการต่อ 1 หน้า

ทาง yii สามารถทำโดยการใช้ datagridview ก็ได้ มันจะแบ่งหน้าเองอัตโนมัติ หรือ ใช้ CPagination พ่วงกับการแสดงข้อมูลแบบปกติได้เช่นเดียวกัน


models/post.php
<?php

/**
 * This is the model class for table "post".
 *
 * The followings are the available columns in table 'post':
 * @property integer $id
 * @property string $title
 */
class Post extends CActiveRecord
{
    /**
     * @return string the associated database table name
     */
    public function tableName()
    {
        return 'post';
    }

    /**
     * @return array validation rules for model attributes.
     */
    public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('title', 'length', 'max'=>255),
            // The following rule is used by search().
            // @todo Please remove those attributes that should not be searched.
            array('id, title', 'safe', 'on'=>'search'),
        );
    }

    /**
     * @return array relational rules.
     */
    public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(
        );
    }

    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels()
    {
        return array(
            'id' => 'ID',
            'title' => 'Title',
        );
    }

    /**
     * Retrieves a list of models based on the current search/filter conditions.
     *
     * Typical usecase:
     * - Initialize the model fields with values from filter form.
     * - Execute this method to get CActiveDataProvider instance which will filter
     * models according to data in model fields.
     * - Pass data provider to CGridView, CListView or any similar widget.
     *
     * @return CActiveDataProvider the data provider that can return the models
     * based on the search/filter conditions.
     */
    public function search()
    {
        // @todo Please modify the following code to remove attributes that should not be searched.

        $criteria=new CDbCriteria;

        $criteria->compare('id',$this->id);
        $criteria->compare('title',$this->title,true);

        return new CActiveDataProvider($this, array(
            'criteria'=>$criteria,
        ));
    }

    /**
     * Returns the static model of the specified AR class.
     * Please note that you should have this exact method in all your CActiveRecord descendants!
     * @param string $className active record class name.
     * @return Post the static model class
     */
    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }
}


views/post/index.php
 <p><?php echo $sort->link('id')?></p>
<p><?php echo $sort->link('title')?></p>

<ol>
<?php foreach($models as $model):?>
<li>
    <h2><?php echo $model->id?> - <?php echo $model->title?></h2>
</li>
<?php endforeach?>
</ol>

<?php $this->widget('CLinkPager', array(
    'pages' => $pages,
))?>

controller/PostController.php
<?php

class PostController extends Controller
{
    public function actionIndex(){
        $criteria = new CDbCriteria();
        $count = Post::model()->count($criteria);
        $pages=new CPagination($count);
       
        $pages->pageSize=5;
        $pages->applyLimit($criteria);
       
        $sort = new CSort('Post');
        $sort->attributes = array(
            'id',
            'title'
        );
        $sort->applyOrder($criteria);
       
        $models = Post::model()->findAll($criteria);
       
        $this->render('index', array(
        'models' => $models,
        'pages' =>    $pages,
        'sort' => $sort,
        ));
   

    }
}


ผลลัพธ์ที่ได้ออกมาจะเป็นแบบนี้

http://purecss.io/ pure css framework ที่น่าสนใจ สวยได้โดยมีคนช่วย

บางทีถ้าหัวเราไม่ใช่นักออกแบบแม้จะเก่ง syntax มากก็จริง ก็ไม่ได้อยู่ดี ดังนั้นแล้ว css framework จึงเป็นตัวช่วยดีเลยทีเดียวเชียววววววว






เข้าไปที่
http://purecss.io/


ในเว็บจะมีตัวอย่างประกอบอยู่แล้ว เราแค่ดึงมาใช้ (ใส่ class ตามนั้น เพราะเขาให้เรา แนบไฟล์ .css ของ pure ฉะนั้น มันก็จะถูกตกแต่งมาให้เราแล้ว

นอกจาก pure แล้ว ยังมี boostrap ตัวนี้ขึ้นชื่อมากๆ และ yiibooster ซึ่งเป็น boostrap ที่ทำมาให้รองรับกับ code yii ได้ทันที



ตำแหน่งของ Folder Yii (Path, Location)

ไม่รุ้ว่าจะมีไฟล์อะไรเยอะแยะ หัดจำไว้บ้างก็ดี แต่พอจำได้แล้ว เริ่มชิน ก็จะทำให้ไปได้อย่างไวทีเดียวเชียว


Folder : images, css, js หรืออะไรก็ตามที่เป็นสิ่งที่ อัพโหลด ขึ้นไป และอยากลิ้งให้ไฟล์นั้นๆ แสดงบนหน้า yii page ที่เราสร้างขึ้นมา (เรียกว่า View ดีกว่า เพราะว่า เราต้องแปะ ลิ้ง ที่เราต้องการใน file ที่อยู่ใน Folder View)

Yii_test/app/images
Yii_test/app/js
Yii_test/app/css 
Yii_test/app/แล้วแต่จะสร้างโฟลเดอร์อะไรก็ตามใจ

Yii_test\app\protected\models
เก็บไฟล์ class ที่ใช้ติดต่อกับ table ในฐานข้อมูล

Yii_test\app\protected\controllers
เก็บไฟล์ class ที่เอาไว้เก็บ action (function)

Yii_test\app\protected\views
เก็บไฟล์ส่วนแสดงผล คือ action จะส่งค่ามาเพื่อแสดงผล ถึงจะไม่มีค่าอะไรมาก็แค่ render เพื่อเรียกหน้า view มาแสดง (ไม่ได้เรียก view แสดงผลโดยตรง แต่ยังไงก็ตามต้องทำผ่าน controller)

Yii_test\protected\extensions
เวลาอยากได้ extension เสริม และไปหาโหลดมาจาก web yii ส่วนมากจะ นำไฟล์ที่โหลดมาใส่ใน Folder นี้

Yii_test\app\protected\data
เป็นข้อมูลที่ Yii แถมมาให้ ที่เห็นได้ชัดคือ ไฟล์ .sql ที่เป็น table user สำหรับ login ของ yii โดยเฉพาะ
นอกนั้นก็ไม่มีไรในนี้เลย

Yii_test\protected\components
อันนี้ไม่รุ้ แต่ซักวันคงได้ใช้แน่นอน

Yii_test\protected\modules
อันนี้เป็น folder ที่มาสร้างขึ้นเองต่างหาก เพราะว่ามีบาง extension จาก web yii โดยตรง ต้องสร้างไฟล์ขึ้นมาและอยู่ในหัวข้อนี้ นะ ไว้ถ้าได้มีโอกาสลอง yii-auth อะไรพวกนี้ จะเจอ

Yii_test\protected\messages
สมมุติสร้างเป็น folder เป็น 2 ภาษา หรือหลายภาษา เว็บไซด์ หนึ่งมี ภาษาไทย และอังกฤษ เราจะสร้างไฟล์ภาษาไว้ในนี้ (รายละเอียดเพิ่มเติมไว้ในภายหลัง)


Yii_test\protected\config
อันนี้เรียกได้ว่าเป็นหัวใจของ yii เลยแหละ ต้องแก้ ทุกทีเลย เวลาย้าย hosting เพราะมันคือไฟล์ ที่สำคัญ เช่นการ config user,pass , localhost


------------------------------------------------------------------------------------------------
นอกนั้น อาจจะได้ใช้ แต่ผมไม่เก่งพอที่จะรุ้ว่ามันคืออะไรกันแน่????




MVC คืออะไร มันต่างกับแบบเดิมยังไง

MVC คืออะไร มันต่างกับแบบเดิมยังไง

ขอเรียกแบบเดิมว่าการเขียนแบบ structure นะครับ โดยการเขียนแบบเดิมเนี่ยยกตัวอย่างง่ายๆ เช่นระบบซื้อขายสินค้า จะประกอบด้วยไฟล์ดังต่อไปนี้ (ยกตัวอย่างเบื้องต้น)



จะเห็นได้ว่าถ้าเขียนด้วยไฟล์ .php จำนวน หลายร้อยไฟล์ขึ้นไป จะทำให้ยากต่อการค้นหาหรือว่าแก้ไข
ยิ่งถ้าเขียน function .php ด้วย ก็ยากต่อการแก้ไข แน่นอน เพราะไม่รุ้ว่า ไฟล์.php ใน folder นอกสุด จะไปลิ้งกับ file function php ใน folder ไหน คงหากันไม่ถูกแน่นอน


ก็ทำให้หันมาเขียนเป็น Framework ด้วย Yii แทนดีกว่า เพราะโครงสร้างแบ่งออกเป็น MVC วางไฟล์ไว้เป็นสัดส่วนสุดๆ

Model = นึกง่ายว่า 1 table คือ 1 ไฟล์ (ชื่อไฟล์เหมือนชื่อ table) ทำหน้าที่ติดต่อกับ table ในฐานข้อมูล

Controller = ถ้างงก็ให้มองเป็น OOP ก่อน 1 controller = 1 class และ 1 action = 1 method หรือ function ของ php ที่เราเคยเขียนกันนั้นเอง...พยายามจับกลุ่มขึ้นมาให้ได้ก่อนว่า จะให้ controller ชื่อ นี้ มี action อะไรบ้าง เพื่อง่ายต่อการแก้ไขในภายหลัง

View = หน้าแสดงผล แสดง css แสดงตำแหน่งโชว์ผลลัพธ์ที่เราต้องการ

ถ้าถามว่าเกี่ยวกันยังไง ก็เอาแบบง่ายๆ เลย ยกตัวอย่างเช่น การ save ลงฐานข้อมูล

View = protected/view/member/add.php
model = protected/model/member.php
controller = protected/controller/memberController.php

ภายใน memberController ให้สร้าง action ที่ชื่อว่า actionadd(){ ..}

- ข้อสังเกต สร้าง controller ชื่ออะไร ใน view ควรสร้าง folder ชื่อนั้นก่อน แล้วค่อยสร้างไฟล์ ที่เป็นชื่อ action สังเกตได้จากคำว่า member

 จบแบบฮ้วนๆ 555555555555555

การสร้าง Title แต่ละ Page ด้วย yii ใน controller



จากรูป จะเห็นชื่อ Title Blogger: เริ่มต้นกับ Framework ซึ่งปกติถ้าเราทำใน Dreamweaver เราก็จะกำหนดที่ช่องว่างได้เลย (ดูรูป)


หลังจากที่พอเห็นภาพกันบ้างแล้วนั้น ต่อไปจะอธิบายการ set title ของ Yii บ้างแล้วน

class WebsiteController extends Controller{
    //put your code here

       
          function actionIndex()
        {
            //Yii::app()->user->setFlash('success', 'Everything went fine');
                $this->pageTitle = 'ทดสอบการแสดง Title';  //คำสั่งสำหรับการแสดง pagetitle
                $this->render('//website/index');               //คำสั่ง render เพื่อไปเรียก file ที่อยู่ใน {VIEW}
        }  
            
}          

คือเราสร้าง controller เพื่อ สร้าง action อีกทีหนึ่ง
ที่นี้พอเราจะใช้งานเราก็พิมพ์ลงไปว่า localhost/yii_test/index.php?r=Website/Index
พอพิมพ์แบบนี้แล้ว มันจะทำคำสั่ง render คือไปเรียกใช้งาน file ที่อยู่ใน protected/view/website/index.php ขึ้นมา

ส่วน $this->pageTitle เป็นการส่งค่าไปให้ไฟล์ที่อยู่ใน View เพื่อรับค่า



จะเห็นได้ว่าข้อความ ทดสอบการแสดง Title มันมาแล้ว


สมมุติลองเรียกค่ามันขึ้นมาแสดงภายใต้ Tag Body หล่ะ ?
พิมพ์โค้ด <?php echo $this->pageTitle?> ลงไปในไฟล์ protected/view/website/index.php



แสดงผลของการรัน จะปรากฏ ข้อความ Title บนหน้า เว็บเพจ


สรุป ตัวแปรจาก การเรียกใช้ action ใน Controller จะมีการส่งค่าตัวแปรมาให้ View ใช้ด้วยเช่นเดียวกัน (ตรงนี้ก็ไม่แม่นเท่าไหร่นะ แต่ว่า Controller ประกาศตัวแปรอะไร สามารถ ส่งให้ View เพื่อมาแสดงค่าได้)








การใช้ Flash Message

Flash Message เป็นลักษณะของข้อความแจ้งเตืน
วิธีใช้ จะใช้แบบ setFlash, getFlash คู่กันไป

ตัวอย่างดังต่อไปนี้
1. สร้างไฟล์ที่ protected/controllers/WebsiteController.php
<?php

class MemberController extends Controller{
        public function actionregis(){
            $member = new member();
           
            if(!empty($_POST)){
                $member->_attributes = $_POST["member"];
               
                    if($member->save()){
                        $this->redirect(array("Regiscom"));
                    }
            }
           
            $this->render("regis", array(
                    "member" => $member
            ));
        }
       
        public function actionRegiscom(){
                    $this->render("Regiscom");
        }
}
         
?>

2. สร้างไฟล์ที่ protected/views/website/index.php
<?php if(Yii::app()->user->hasFlash('success')):?>
<div class="flash-notic">
    <?php echo Yii::app()->user->getFlash('success')?>
</div>

<?php endif?>

<?php if(Yii::app()->user->hasFlash('error')):?>
<div class="flash-error">
    <?php echo Yii::app()->user->getFlash('error')?>
</div>

<?php endif?>

3. รันด้วย http://localhost/yii_infoweb/app/index.php?r=website/ok



4. รันด้วย http://localhost/yii_infoweb/app/index.php?r=website/bad


 เอาไว้เป็นแนวทางประยุกต์ยกตัวอย่างเช่น การเซฟลงฐานข้อมูลว่าสำเร็จหรือไม่ ถ้าไม่สำเร็จก็จะขึ้นแจ้งเตือนในหน้าเีดยกวัน

Sunday, September 1, 2013

ยกตัวอย่างการดึงข้อมูล การค้นหาข้อมูลจาก DB http://yiitutorials.net/easy/yii-getting-info-from-the-database

http://yiitutorials.net/easy/yii-getting-info-from-the-database


ยกตัวอย่างการดึงข้อมูล การค้นหาข้อมูลจาก DB

$ourfish = Fish::model()->find("name = 'seahorse'");
วิธีเรียกใช้ echo $ourfish->length;
 find เฉยๆ แบบนี้ จะคืนแค่ค่าเดียวเท่านั้น 
 
$ourfishes = Fish::model()->findAll("length > 5");
หรือ 
$ourfishes = Fish::model()->findAll(array("condition"=>"length > 5","order"=>"weight","limit"=>"5"); 

วิธีเรียกใช้ 
foreach ($ourfishes as $fish):
    echo $fish->name;
endforeach;
  
 findAll สังเกตว่าแบบนี้จะ return หลายค่า มากกว่า 1 โดยวิธีใช้จะเป็นการวนลูป ด้วย foreach เพื่อรันค่าออกมาทั้งหมด
 

03 เริ่มต้น Yii กับ Demo ที่ให้มากับไฟล์ และการติดตั้งตัวอย่างที่ชื่อว่า blog



ไฟล์ที่เราโหลดมาแล้วนั้น นอกจากจะมี Framework ให้เราเขียนโปรแกรมแล้ว ยังมี Demo ตัวอย่างของเว็บไซต์ที่สร้างด้วย Yii framework มาให้ถึง 4 ตัวอย่างด้วยกัน เราสามารถศึกษาและเลียนแบบ นำมาใช้ได้

อย่างแรก ต้องทำการติดตั้งก่อน แต่ละไฟล์จะแนบไฟล์ .sql มาให้เพื่อให้เรา setup กับ ฐานข้อมูลภายในเครื่อง และต้องปรับไฟล์ C:\xampp\htdocs\yii_test\demos\blog\protected\config\main.php  เพื่อตั้งค่าการทำงานของฐานข้อมูล เช่นการใส่ user name, password, ชื่อ database


Blog
1. หาไฟล์ ฐานข้อมูลก่อน มันอยู่ตำแหน่งไหน?
C:\xampp\htdocs\yii_test\demos\blog\protected\data


2. จากรุปจะเห็นได้ว่ามีไฟล์ dbgen.php สำหรับรันทาง localhost เพื่อให้สร้าง db ทันที หรือ schema.mysql.sql เพื่อรับ query ผ่านทาง admin ของ mysql เพื่อสร้าง db
3. เปิดไฟล์  C:\xampp\htdocs\yii_test\demos\blog\protected\config\main.php เลื่อนลงมาเรือ่ยๆ หาให้เจอเหมือนในรูป ที่มีส่วนของ 'db'=>array{





 

 แก้ให้เป็นดังนี้


 ชื่อ DB เขากำหนดให้เลยว่าชื่อว่า blog ก็เอาตามนั้นไปเลย ส่วน username, password สำหรับเข้า mysql

4.นำไฟล์ที่ชื่อว่าschema.mysql.sql นำมา query ภายใต้ dbname ที่ชื่อว่า blog จะปรากฏตารางดังรูปนี้


5. ทดลองรันเข้าสู่ระบบ จะเห็นเว็บตัวอย่าง ที่เป็นเว็บสำหรับการสร้าง blog

http://localhost/yii_test/demos/blog/
















02 อย่าลืมเช็ค requirement นะ

 เข้าตามลิ้งดังนี้
http://localhost/yii_test/requirements/

สังเกตุดูว่ามันรันได้หรือไม่ ส่วนของ MySQL ที่เราจำเป็นต้องใช้งาน


เริ่มต้นกับ primefaces

http://primefaces.org/

เริ่มก่อนย่อมได้เปรียบ พิมพ์ลิ้งเก็บไว้ก่อนค่อยเพิ่มเติมทีหลัง

bootstrap

http://getbootstrap.com/

อันนี้ก็พิมพ์ไว้ก่อนเหมือนกันกันลืม

yiibooster ไว้ทำอะไรกันนะ?

 http://yiibooster.clevertech.biz/
พิมพ์ไว้ก่อน ไว้ทีหลังค่อยมาเพิ่ม

แหล่งข้อมูล Yii จากเว็บไซต์ ทั้งประเทศไทยและต่างประเทศ

เมื่อไหร่ที่ผมเจอปัญหา ผมต้องค้นหาทาง google และผลลัพธ์ที่ได้ ก็จะเก็บสะสมไว้  มีคนทำไว้ต่างก็มีประโยชน์ไปคนละแบบ และ ผมก็จะเก็บรวบรวมๆ ชื่อเว็บไว้ เพื่อง่ายต้อการค้นหาข้อมูลเพิ่มเติมในภายหลังที่ต้องการแก้ไขปัญหา ได้อย่างทันท่วงที ถ้าไม่เก็บไว้ วันนี้คิดออก พรุ่งนี้คงลืมไปแล้ว ซึ่ง เป็นการแค่เก็บชื่อเว็บโปรแกรมเมอร์ชาวไทยที่ทำไว้เท่านั้น จะไม่ดึง ข้อมูลภายในมาโพสใส่ Blog แต่ประการใด


http://somuchthailand.com/
http://www.javathailand.com/
http://www.yiithailand.com/app/
http://yiiconnect.com/
https://www.facebook.com/yiith
https://www.facebook.com/pages/Yiiconnect/560754937286208



ขอบคุณเว็บทั้งหลายนะครับ

แนะนำเว็บ it-ebooks.info

แนะนำเว็บ E-Book ที่น่าสนใจ
http://it-ebooks.info/
สามารถโหลดไฟล์ .pdf ได้ฟรีไม่เสียเงินใดๆ โหลดได้ไม่จำกัด ไม่ต้องสมัครสมาชิก มีทั้งค่าย apress, wrox, headfirst, packetpub



01 ติดตั้ง Yii framework

1. เข้าไปที่ http://www.yiiframework.com/download/


2. คลิกตามรูป เพิ่ม download ลงเครื่อง


3. ในเครื่องตัวอย่างลง Xampp ไว้ หรือสามารถใช้งานกับ web server ตัวอื่นก็ได้เช่น Wampp, IIS, Appserv ก้ได้

 


4. สร้างโฟวเดอร์ใหม่ในตำแหน่งนี้ C:\xampp\htdocs\yii_test แล้วก๊อปปี้ไฟล์ข้างในที่เรา Download มาใส่ลงไปใน Yii_test


ภาพนี้บอกให้รู้ว่าย้ายไฟล์มาเรียบร้อยแล้ว

5. เปิด CMD
 

6. พิมพ์ cd \ คือให้มันถอยกับไป path แรกสุดคือ c:\

7. พิมพ์ cd อีกครั้ง จะได้เข้าไปใน Folder yii_test ที่เราก๊อปปี้ไฟล์ไปลงไว้



8. พิมพ์คำสั่งต่อไปนี้

php framework/yiic webapp app

 



เคยทำกับ appserv 2.5.10 แล้วไม่เป็น แต่ xampp เป็น (http://www.yiiframework.com/wiki/100/yii-and-xampp-server-on-windows)  Error ซะได้ ถ้าขึ้นงี้ ต้องไปแก โดยระบุ Path และ location ใน Environment

c:\xampp\php

 (ถ้าปรับแล้วควร restart xampp หรือ restart เครื่องเลย ถึง จะทำงานได้ตามปกติ)

หลังจากนั้นลองทำอีกครั้ง ก็สำเร็จแล้ว ทีนี้ให้กด yes ทุกอย่างถือเป็นอันจบสิ้น
ถ้าขึ้นแบบนี้คือเรียบร้อยแล้ว ปิด CMD ทิ้งไปได้เลย


เดิมไม่มี Folder app แต่ตอนนี้มีแล้ว


**ถ้าเคยทำแล้ว ไม่ต้องทำอีกก็ได้ ก๊อปปี้ของเดิมทำสำเนาเก็บไว้ แล้วเอาไปใช้ได้เลย เช่น อยากทำ project yii_1 ก็ ก๊อปปี้ yii_test ไปใช้และเปลี่ยนแค่ชื่อ Folder เอา เพราะว่า การทำแบบนี้มันจะเป็นการติดตั้ง Folder app ที่ระบบมีการซ่อนเอาไว้

เริ่มต้นก้าวสู่อาชีพโปรแกรมเมอร์ด้วย Framework

เมื่ออยากจะเป็นโปรแกรมเมอร์แต่ไม่ได้จบสายวิศวกรรมคอมพิวเตอร์ วิทยาศาสตร์คอมพิวเตอร์ หรือเรียนคอมในสถาบันดังๆ เช่น 3 พระจอม , จุฬา , หรือธรรมศาสตร์ นอกจากนั้นแล้ว ไม่ได้มีพื้นฐานความเก่งเลยซักนิด ก็ไม่ต้องห่วง เพราะว่าความพยายาม และความใฝ่รู้ ยังไงก็สามารถทำให้เราประสบความสำเร็จด้านการเขียนโปรแกรมได้อย่างแน่นอน


แต่ถ้ามาเริ่ม syntax เบื้องต้นของ php, java, c#, VB.NET คงไม่ทันใครต่อใครเขาแน่นอน
เพราะว่าเดี๋ยวนี้เขานิยม อะไรต่อมิอะไรเป็น framework ไปซะหมด (ขอไม่อธิบายแต่บอกตามความเข้าใจ คือมันเป็นชุดคำสั่งที่ช่วยให้เขียนโค้ดได้สั้นลงกว่าเดิม เขียนได้อย่างเป็นระเบียบ เอามาร่วมกันทำงานเป็นทีมได้)

Framework มันไม่ยากอย่างที่คิด แต่ควรมองให้ออกว่ามันเป็นรูปแบบ MVC หรือว่าการเก็บไฟล์ Folder เป็นแบบไหน เคยลอง MVC แล้ว ความรู้สึกไม่ต่างจากเดิม เพราะไงก็มีหลาย function อยู่ดี แต่มองออกง่ายว่า ถ้าผิดที่หน้า site/home ควรไปแก้ตรงไฟลืได้ ก็ใช้วิธีกด Ctrl+F ในไฟล์ Controller ที่ชื่อว่า site

โดยที่ฮิตๆ มันก็มีหลายตัวแต่ที่ คนเขียน Blog ชอบคือ
1. ASP.NET MVC4 (ปัจจุบันมีถึง MVC5)

 2. เรียกว่า Prime Faces ของ JAVA เป็นตัวที่มาจาก JSF แต่มาทำเฉพาะของมันเอง


3. Yii framework (PHP)
ดูแล้วเข้าใจง่ายกว่า CI นะ ส่วนข้อดี อื่นๆ ก็ไม่รุ้ แต่คนเขียนชอบตัวนี้
4. Laravel framework (PHP)
framework ตัวใหม่ของ PHP ที่น่าสนใจมากก


 ก็ไม่รุ้เหมือนกัน ว่าจุดประสงค์ตั้ง Blog นี้คืออะไร แต่คนเขียนได้รับงานที่ต้องสร้างเว็บไซต์ให้มีคุณสมบัติได้เหมือน Blogger  จึงต้องศึกษาและลองหัดเล่น Blogger ให้เคยชิน จะได้สร้างสรรค์โค้ดออกมาถูก ส่วนเนื้อหาที่จะโพส ก็ อาจจะเป็นการสอนเขียนโปรแกรมบ้าง แนะนำเรื่องทั่วไปบ้าง

Blog Archive

http://cksc.co.th/site/

Total Pageviews

Popular Posts