ที่ทำงานมี process ในการพัฒนา development > test > production โดยแต่ละ server จะมี config และ database แยกออกจากกันเพื่อความปลอดภัย โดย codeigniter สามารถแยก config ได้โดยการเปลี่ยน Environments ซึ่งโดยปกติจะมี 3 สภาพแวดล้อมคือ development, production, testing และแล้วแต่ท่านจะตั้ง
การทำระบบ config สามารถทำได้โดย
- ได้โดยเปิดไฟล์ \.htaccess เพิ่ม
.htaccess 123...
SetEnv CI_ENV development
...
เข้าไป หรือเข้าไปแก้ไฟล์ \index.php แก้บรรทัด
index.php 1define(
'ENVIRONMENT'
, isset(
$_SERVER
[
'CI_ENV'
]) ?
$_SERVER
[
'CI_ENV'
] :
'development'
);
เป็น
index.php 1define(
'ENVIRONMENT'
,
'development'
);
- ไปที่ \application\config สร้าง folder ไว้เก็บ configuration ตามชื่อ Environments เช่น \application\config\development, \application\config\production, \application\config\testing
- copy config ไฟล์ มาจาก \application\config จากนั้นก็ลบข้อมูลเดิมออกแล้วใส่เฉพาะส่วนที่แตกต่างกันเช่น \application\config\development\constants.php
pplicationconfigdevelopmentconstants.php 1234<?php
defined(
'BASEPATH'
)
or
exit
(
'No direct script access allowed'
);
define(
'TITLE'
,
'development'
);
ทำแบบเดียวกันกับไฟล์อื่นๆ ถ้ามี config ที่ต่างกัน เช่น \application\config\development\database.php
- ทดสอบโดยเปิดไฟล์ \application\views\welcome_message.php แก้เป็น
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
<?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>
- เปิดหน้าแรกและสังเกตผลลัพธ์
ค่าในไฟล์ config จะถูกเพิ่มจากของเดิมโดยเลือกมาจากไฟล์ใน folder ที่ชื่อเดียวกับ environments ไม่ใช่แทนที่ของเดิมสังเกตได้จากค่า FILE_READ_MODE ที่ไม่มีในไฟล์ \application\config\development\constants.php ที่เราแยกออกมา
About the author