Tag Archive สภาพแวดล้อม

Byphunsanit

config codeigniter by environments

ที่ทำงานมี process ในการพัฒนา development > test > production โดยแต่ละ server จะมี config และ database แยกออกจากกันเพื่อความปลอดภัย โดย codeigniter สามารถแยก config ได้โดยการเปลี่ยน Environments ซึ่งโดยปกติจะมี 3 สภาพแวดล้อมคือ development, production, testing และแล้วแต่ท่านจะตั้ง

การทำระบบ config สามารถทำได้โดย

  1. ได้โดยเปิดไฟล์ \.htaccess เพิ่ม
    ...
    SetEnv CI_ENV development
    ...

    เข้าไป หรือเข้าไปแก้ไฟล์ \index.php แก้บรรทัด

    define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

    เป็น

    define('ENVIRONMENT', 'development');
  2. ไปที่ \application\config สร้าง folder ไว้เก็บ configuration ตามชื่อ Environments เช่น \application\config\development, \application\config\production, \application\config\testing
  3. copy config ไฟล์ มาจาก \application\config จากนั้นก็ลบข้อมูลเดิมออกแล้วใส่เฉพาะส่วนที่แตกต่างกันเช่น \application\config\development\constants.php
    <?php
    defined('BASEPATH') or exit('No direct script access allowed');
    
    define('TITLE', 'development');
    

    ทำแบบเดียวกันกับไฟล์อื่นๆ ถ้ามี config ที่ต่างกัน เช่น \application\config\development\database.php

  4. ทดสอบโดยเปิดไฟล์ \application\views\welcome_message.php แก้เป็น
    <?php
    defined('BASEPATH') or exit('No direct script access allowed');
    ?><!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="utf-8">
    	<title><?=TITLE;?></title>
    
    	<style type="text/css">
    
    	::selection { background-color: #E13300; color: white; }
    	::-moz-selection { background-color: #E13300; color: white; }
    
    	body {
    		background-color: #fff;
    		margin: 40px;
    		font: 13px/20px normal Helvetica, Arial, sans-serif;
    		color: #4F5155;
    	}
    
    	a {
    		color: #003399;
    		background-color: transparent;
    		font-weight: normal;
    	}
    
    	h1 {
    		color: #444;
    		background-color: transparent;
    		border-bottom: 1px solid #D0D0D0;
    		font-size: 19px;
    		font-weight: normal;
    		margin: 0 0 14px 0;
    		padding: 14px 15px 10px 15px;
    	}
    
    	code {
    		font-family: Consolas, Monaco, Courier New, Courier, monospace;
    		font-size: 12px;
    		background-color: #f9f9f9;
    		border: 1px solid #D0D0D0;
    		color: #002166;
    		display: block;
    		margin: 14px 0 14px 0;
    		padding: 12px 10px 12px 10px;
    	}
    
    	#body {
    		margin: 0 15px 0 15px;
    	}
    
    	p.footer {
    		text-align: right;
    		font-size: 11px;
    		border-top: 1px solid #D0D0D0;
    		line-height: 32px;
    		padding: 0 10px 0 10px;
    		margin: 20px 0 0 0;
    	}
    
    	#container {
    		margin: 10px;
    		border: 1px solid #D0D0D0;
    		box-shadow: 0 0 8px #D0D0D0;
    	}
    	</style>
    </head>
    <body>
    
    <div id="container">
    	<h1>Welcome to CodeIgniter!</h1>
    
    	<div id="body">
    <?php
    echo '<br>ENVIRONMENT = ' . ENVIRONMENT;
    echo '<br>FILE_READ_MODE = ' . FILE_READ_MODE;
    echo '<br>title = ' . TITLE;
    ?>
    	</div>
    
    	<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : ''; ?></p>
    </div>
    
    </body>
    </html>
  5. เปิดหน้าแรกและสังเกตผลลัพธ์

ค่าในไฟล์ config จะถูกเพิ่มจากของเดิมโดยเลือกมาจากไฟล์ใน folder ที่ชื่อเดียวกับ environments ไม่ใช่แทนที่ของเดิมสังเกตได้จากค่า FILE_READ_MODE ที่ไม่มีในไฟล์ \application\config\development\constants.php ที่เราแยกออกมา

Byphunsanit

ติดตั้ง yii 2 advance ผ่าน composer

YII เพิ่งออกเวอร์ชั่น 2 มาวันที่ 12 ตุลาคม พ ศ 2557 เลยเอามาลองของซักหน่อย ก่อนอื่นให้ลง composer สำหรับติดตั้งตามยุคสมัย (จริงๆ โหลด zip มาแตกเองง่ายกว่าด้วยซ้ำไป ถ้าไม่ต้องการใช้ composer ให้โหลด zip มาแล้วข้ามขั้นตอนที่ 1 ไปเลยครับ)

  1. ก่อนอื่น update เจ้า composer ซะก่อนตามธรรมเนียม รีสตาร์ต เพื่อป้องกันปัญหาเปิด command ออกมาพิมพ์
    composer self-update
    

    ลง composer asset plugin ทำครั้งเดียวไม่ต้องทำอีก

    composer global require "fxp/composer-asset-plugin:1.0.0"
    

    โดยปกติ จะสร้าง yii project ได้โดยคำสั่ง

    composer create-project --prefer-dist yiisoft/yii2-app-basic basic
    

    composer จะ copy ไปไว้ใน folder ชื่อ basic งานที่จะทำเหมาะกับ yii Advanced Application Template มากกกว่า ที่ต่างกันคือ

    • แยก Front- and และ back-end apps ระบบใหญ่ๆ ควรแยกไว้เพื่อความสะดวกที่สำคัญ yii สามารถใช้ configuration และ model ร่วมกันได้ ทั้ง 2 ฝั่ง
    • User model มีระบบ login, User signup and password restore เบื้องต้นติดมาด้วย

    และต้องการให้เก็บใน D:\xampp\htdocs\YiiAdvanced ให้เปลี่ยนคำสั่งเป็น

    composer create-project --prefer-dist yiisoft/yii2-app-advanced D:\xampp\htdocs\YiiAdvanced
    
  2. ปรับสภาพแวดล้อมให้ช่วยเขียน code ได้ง่ายขึ้น
    • ไปที่เราติดตั้ง php ไว้ก่อน พิมพ์
      cd c:\xampp\php
      
    • พิมพ์
      php D:\xampp\htdocs\YiiAdvanced\init
      
    • เลือก Development พิมพ์ 0 enter ขึ้นจริง 1 enter
  3. สร้าง database
    • สร้าง database เปล่าๆ ไว้ก่อน ของผมชื่อ YiiAdvanceDB
    • ไปที่ common/config/main-local.php ใน folder ที่เราสร้างไว้ เพิ่ม database connection ใน components ตามตัวอย่าง
          'components' => [
              'db' => [
                  'class' => 'yii\db\Connection',
                  'dsn' => 'mysql:host=localhost;dbname=YiiAdvanceDB',
                  'username' => 'root',
                  'password' => '',
                  'charset' => 'utf8',
              ],
      
    • Command กลับไปที่เราเก็บ project file
      d:
      cd D:\xampp\htdocs\YiiAdvanced
      
    • พิมพ์
      yii migrate

      ตอบ yes ดูในฐานข้อมูล จะมีตาราง user กับ migrate เพิ่มขึ้นมา

การเตรียมโปรเจ็คด้วยยี่สำเร็จแล้ว! หวังว่าคงเข้าใจมากกว่าในคู่มือเว็บ yii นะครับ