|
1
เมื่อ: พฤศจิกายน 14, 2008, 02:17:47 PM
|
||
| เริ่มโดย เก่ง - กระทู้ล่าสุด โดย นายชัชวาล ถึงรัตน์ | ||
|
เก่งช่วยตอบด้วย
|
||
|
2
เมื่อ: ตุลาคม 09, 2008, 01:25:05 PM
|
||
| เริ่มโดย enjoyman - กระทู้ล่าสุด โดย enjoyman | ||
|
สอบถามปัญหาต่างๆเกี่ยวกับสินค้า หรือการทำธุรกิจ สามารถโพสต์ได้ที่ห้องนี้
แต่หากท่านยังไม่ทราบถึงข้อมูลสินค้า หรือเรื่องข้อมูลการทำธุรกิจ สามารถอ่านได้ที่นี่ครับ http://product.keng-d.com |
||
|
3
เมื่อ: ตุลาคม 09, 2008, 01:23:57 PM
|
||
| เริ่มโดย enjoyman - กระทู้ล่าสุด โดย enjoyman | ||
|
มีความประสงค์ซื้อสินค้าหรือทำธุรกิจ สามารถแจ้งความประสงค์ได้ที่นี่เลยครับ
แต่หากท่านยังไม่ได้ทราบถึงรายละเอียดสินค้า หรือข้อมูลทางธุรกิจ สามารถอ่านรายละเอียดได้ที่นี่ครับ http://product.keng-d.com |
||
|
4
เมื่อ: กันยายน 22, 2008, 02:41:24 PM
|
||
| เริ่มโดย keng - กระทู้ล่าสุด โดย keng | ||
|
CMS คืออะไร?
ความหมายของ Content Management System (CMS) CMS ย่อมาจาก Content Management System เป็นระบบการจัดการเนื้อหาของเว็บไซตอย่างอัตโนมัติ ที่ถูกคิดคนขึ้นมาเพื่อช่วยลดทรัพยากรและลดขั้นตอนในการพัฒนา(Development) และบริหาร(Management)จัดการเว็บไซตต่างๆ เพื่อความสะดวกในการบริหารจัดการเว็บไซต์ ลดค่าใช้จ่าย ระยะเวลา และลดกำลังคนไปอย่างมาก โดยปกติภาษาที่นำมาใช้ในการพัฒนา CMS นี้จะมีอยู่หลายภาษา ส่วนใหญ่จะเป็นภาษาที่เป็นสคริปท์(Script languages) อย่างเช่น PHP, Perl, ASP, Python โดยพัฒนามาด้วยการออกแบบระบบมาอย่างดี มีการทำงานควบคู่กับระบบจัดการฐานข้อมูล(Database Manamgement System : DBMS) ทำงานบนโปรแกรมที่ทำหน้าที่เป็นเว็บเซิร์ฟเวอร์(Web Server) อย่างเช่น Apache เป็นต้น โดยปกติจะมีระบบแอดมิน เพื่อรองรับการจัดการเนื้อหาอย่างเป็นระเบียบเรียบร้อยและรวดเร็วมากยิ่งขึ้น CMS โดยปกติจะเน้นที่เนื้อหาเป็นหลัก แต่ก็มีอยู่หลายๆ CMS ที่สามารถติดตั้ง extension เสริมเข้ามาในระบบได้ อย่างเช่น mambo และ joomla เป็นต้น และ ตัวอย่าง extension ส่วนใหญ่ที่ติดตั้งเข้ามาในระบบ CMS ก็คือ รายงานสภาพดินฟาอากาศ(Weather) , ขอมูลขาวสารที่นาสนใจ(Popular), หองสนทนา(Chat), กระดานขาว(Forums), การจัดการไฟลในสวนดาวนโหลด (Downloads), แบบสอบถาม(Polls), ขอมูลสถิติตางๆ(Statistics) และสวนอื่นๆอีกมากมาย ที่สามารถเพิ่มเติม ดัดแปลง แกไขแลวประยุกตนํามาใชงานใหเหมาะสมตามแตรูปแบบและประเภทของเว็บไซตนั้นๆ |
||
|
5
เมื่อ: กันยายน 14, 2008, 02:52:13 PM
|
||
| เริ่มโดย keng - กระทู้ล่าสุด โดย keng | ||
|
การสร้าง View ใน CodeIgniter นั้นง่ายมาก เพราะจะมองว่า view นั้นก็คือ webpage ย่อยๆอันหนึ่ง โดยปกติแล้ว view จะสามารถทำเป็น view ย่อยๆได้อีก ก็คือฝังอยู่ใน view อีกอันหนึ่ง และอีกอันหนึ่งไปเรื่อยเป็นลำดับชั้นไป ตรงจุดนี้ทำให้เราแบ่งส่วนของการแสดงผลเป็นส่วนย่อยๆได้
view ใน CodeIgniter นั้นจะถูกเรียกมาจาก Controller อีกที จะไม่สามารถทำงานด้วยตัวเองได้โดยตรง โปรแกรมที่พัฒนามาด้วย Framework ส่วนใหญ่จะใช้ controller ควบคุมกระบวนการต่างๆแบบนี้ทั้งหมด ใน controller เมื่อเราต้องการจะเรียกส่วนของ view มาแสดงผล จะใช้บันทัดคำสั่งตามโค้ดด้านล่างนี้ โค๊ด: $this->load->view('name'); // แบบไม่กำหนดข้อมูล 'name' นั้นจะเป็นชื่อไฟล์ของ view ไม่จำเป็นจะต้องใส่นามสกุลก็ได้ นอกเสียจากว่าไฟล์นั้นมีนามสกุลเป็นแบบอื่น$data = array( 'title' => 'My Title', 'heading' => 'My Heading', 'message' => 'My Message' ); $this->load->view('name',$data);// แบบกำหนดข้อมูล เพราะฉะนั้นในการเรียก view ของเรา เราจะแก้ไข controller ของเราให้เป็นแบบด้านล่างนี้ โค๊ด: <?php class Hello extends Controller { function index() { $data = array('message'=>'Hello World!'); $this->load->view('helloview',$data); } function thaiHello($a,$b,$c) { $data = array('message'=>'สวัสดีครับชาวโลก! '.$a.','.$b.' และ '.$c); $this->load->view('helloview',$data); } function _remap($method) { if ($method == 'thai') { $this->thaiHello('somchai', 'sommai', 'sompong'); }else{ $this->index(); } } } ?> การสร้างไฟล์ view เพื่อนำข้อมูลไปแสดงผลp การสร้าง view เริ่มแรกเลยนะครับ ให้เราสร้างไฟล์ชื่อ helloview.php กันก่อน แล้วนำไปเก็บไว้ที่ system/application/views/helloview.php หลังจากนั้นให้เปิดไฟล์ด้วย editor ที่เรามีครับ แล้วเอาโค้ดด้านล่างนี้ใส่เข้าไป หลังจากนั้นให้กด save โค๊ด: <html> หลังจากนั้นให้ลองรันโปรแกรมลองเราด้วย URL<head> <title><?php echo $message;?></title> </head> <body> <h1><?php echo $message;?></h1> </body> </html> http://localhost/code/index.php/hello http://localhost/code/index.php/hello/thai และ http://localhost/code/index.php/hello/thaihello/somchai/sommai/sompong เราจะได้ผลลัพธ์เหมือนกับใน Workshop 1 |
||
|
6
เมื่อ: กันยายน 13, 2008, 10:34:55 PM
|
||
| เริ่มโดย keng - กระทู้ล่าสุด โดย keng | ||
|
การสร้าง Controller ใน CodeIgniter นั้นปกติไฟล์ controller ของเรานั้นจะเก็บอยู่ที่ system/application/controllers/controllerName.php ครับ ในที่นี้จะขอยกตัวอย่างการสร้าง controller Hello World กัน(ตาม step โปรแกรมเริ่มต้นทั่วๆไป)
1.ให้เราสร้างไฟล์ชื่อ hello.php แล้ว save ไว้ที่ system/application/controllers/hello.php 2.เปิดไฟล์ขึ้นมา แล้วนำโค้ดด้านล่างนี้ไปแปะใส่ หลังจากนั้นให้ save ไฟล์ โค๊ด: <?php จะสังเกตุเห็นว่า ชื่อ controller นั้นจะต้องขึ้นด้วยอักษรตัวพิมพ์ใหญ่เสมอ ถ้าใช้ตัวพิมพ์เล็กจะไม่ถูกต้อง และคลาสจะต้อง extends คลาส Controller เสมอ ซึ่งเป็นคลาสแม่ของ controller ทุกชนิดclass Hello extends Controller { function index() { echo 'Hello World!'; } } ?> 3.หลังจากนั้นให้เปิดโปรแกรม hello world ของเราด้วย browser โดยพิมพ์ URL http://localhost/code/index.php/hello/ โดยปกติแล้ว ฟังก์ชั่น index() จะเป็นฟังก์ชั่นที่จะถูกเรียกโดย default ถ้าเราไม่ได้ระบุไวว่าจะให้เรียกฟังก์ชั่นอะไรมาทำงาน ดังนั้นผลลัพธ์จากการรันโปรแกรมของเราจะต้องได้ "Hello World" ถ้าถูกต้อง 4.การระบุฟังก์ชั่นในการทำงานของ controller ให้ต่อท้าย URL เบื้องต้นด้วยชื่อฟังก์ชั่น สมมติว่าเราเขียนฟังก์ชั่นเพิ่ม เราจะได้คลาสแบบนี้ โค๊ด: <?php ลองรันโปรแกรมด้วย browser โดยเปิดไปที่ URL http://localhost/code/index.php/hello/thaihello/ ถ้าเห็นผลลัพธ์ว่า "สวัสดีชาวโลก!" ล่ะก็แสดงว่าถูกต้องclass Hello extends Controller { function index() { echo 'Hello World!'; } function thaiHello() { echo 'สวัสดีครับชาวโลก!'; } } ?> 5.ถ้าเรามีการส่งค่าข้าม page มา ให้เรารับค่าตัวแปล โดยการทำเป็น paramer ของฟังก์ชั่น ตัวอย่าง โค๊ด: <?php ให้เราลองรันโปรกรมผ่าน browser ด้วย URL http://localhost/code/index.php/hello/thaihello/somchai/sommai/sompong ถ้าได้ผลลัพธ์ "สวัสดีครับชาวโลก! somchai,sommai และ sompong" แสดงว่าถูกต้องclass Hello extends Controller { function index() { echo 'Hello World!'; } function thaiHello($a,$b,$c) { echo 'สวัสดีครับชาวโลก! '.$a.','.$b.' และ '.$b; } } ?> 6.เรารู้มาแล้วว่าถ้าเราไม่ป้อนชื่อฟังก์ชั่นการทำงาน ฟังก์ชั่น index() จะถูกเรียกใช้เป็น default ตัว controller เองก็มี controller เหมือนกัน ถ้าเราไม่ป้อน controller ก็ให้ controller ที่เป็น default มาทำงาน เราสามารถทำได้โดยการเปิดไฟล์ application/config/routes.php และแก้ไขที่ตัวแปล $route['default_controller'] โดยต้องกำหนดให้มีค่าเป็น controller ที่เราต้องการจะให้เป็น default ในที่นี้ให้กำหนดเป็น $route['default_controller'] = 'hello'; แล้วบันทึก หลังจากนั้นให้ลองรันด้วย URL http://localhost/code/ หรือ http://localhost/code/index.php ถ้าผลลัพธ์ออกมาว่า "Hello World" แสดงว่าถูกต้อง 7.ชื่อฟังก์ชั่นในคลาส ไม่จำเป็นที่จะต้องตรงกับชื่อฟังก์ชั่นการทำงานที่ส่งมาเสมอไป ถ้าเราต้องการใช้ชื่ออื่นที่ไม่เหมือนกัน เราจะต้องทำการ implement ฟังก์ชั่น _remap() ซะก่อน ตัวอย่าง โค๊ด: <?php ลองรันโปรแกรมด้วย URL http://localhost/code/index.php/hello/thai ถ้าผลลัพธ์ได้ "สวัสดีครับชาวโลก! somchai,sommai และ sompong" แสดงว่าถูกต้องแล้วclass Hello extends Controller { function index() { echo 'Hello World!'; } function thaiHello($a,$b,$c) { echo 'สวัสดีครับชาวโลก! '.$a.','.$b.' และ '.$c; } function _remap($method) { if ($method == 'thai') { $this->thaiHello('somchai', 'sommai', 'sompong'); }else{ $this->index(); } } } ?> และถ้าลองรันโปรแกราด้วย URL http://localhost/code/index.php/hello/english กรณีนี้หาฟังก์ชั่น english() ไม่เจอควรจะเรียก default ฟังก์ชั่นคือ index() ถ้าผลลัพธ์ออกมาว่า "Hello World!" แสดงว่าถูกต้องแล้วครับ 8.จะมีฟังก์ชั่นพิเศษอยู่ฟังก์ชั่นหนึ่งชื่อ _output() หน้าตาเป็นดังตัวอย่าง โค๊ด: function _output($output) { ถ้า controller ใดมีการ implement ฟังก์ชั่นนี้ จะหมายความว่า ฟังก์ชั่นนี้จะถูกโดยคลาส ที่เป็น Output Class เสมอ ซึ่งจะต้องมีการ implement ด้วย และจะทำงานประสานกัน ในการส่งค่าการแสดงผล ซึ่งตรงนี้ผมจะไม่ขออธิบายนะครับ ไว้จะอธิบายเรื่อง Output Class ในโอกาสต่อไปนะครับecho $output; } 8.สำหรับฟังก์ชั่นที่เป็น private (มีเครื่องหมาย under score(_) นำหน้า) จะไม่สามารถเรียกผ่าน URL ได้โดยตรง จะต้องเรียกผ่านฟังก์ชั่นที่เป็น public อีกที 9.ถ้า controller ใดมีการ implement ฟังก์ชั่น constructor จะต้องมีการเรียก constructor ของคลาสแม่เสมอๆ ซึ่งจะต้องมีโค้ดนี้ โค๊ด: parent::Controller(); อยู่ใน constructor ที่สร้างขึ้นมาเองเสมอ ตัวอย่างโค๊ด: <?php class Blog extends Controller { function Blog() { parent::Controller(); } } ?> สำหรับ PHP 5 โค๊ด: <?php class Blog extends Controller { function __construct() { parent::Controller(); } } ?> ครั้งหน้าผมจะมาอธิบายเรื่อง view นะครับ |
||
|
7
เมื่อ: กันยายน 13, 2008, 02:41:41 PM
|
||
| เริ่มโดย keng - กระทู้ล่าสุด โดย keng | ||
MVC คืออะไรMVC เป็น concept การพัฒนาโปรแกรมเรื่อง Design Pattern ซึ่งรูปแบบการพัฒนาโปรแกรมลักษณะนี้จะแบ่งการทำงานออกเป็นสามส่วนหลักๆ ก็คือ M(Model) V(View) C(Controller) ส่วนประกอบทั้งสามส่วนนี้จะทำงานร่วมกันโดยการทำงานหลักนั้นจะอยู่ที่ Controller เมื่อผู้ใช้ request เข้ามาผ่านทาง web browser ส่วนของ Controller จะมีหน้าที่คอยตรวจสอบว่าผู้ใช้ต้องการอะไร และทำงานตามความต้องการนั้น ถ้าความต้องการนั้นมีการติดต่อกับฐานข้อมูล ก็จะทำการติดต่อโดยผ่านทาง Model อีกที หลังจากได้ข้อมูลเรียบร้อยแล้ว จะส่งข้อมูลไปแสดงผลต่อในส่วนของ View ซึ่งสามารถอธิบายได้ด้วยภาพด้านล่างนี้ ![]() 1.Model โดยปกติ Model จะนำ concept เรื่อง ORM มาจับ โดย Model จะเป็นตัวนะท้อนกับตารางที่อยู่ในฐานข้อมูล ซึ่งเราจะมองว่า Class ของโมเดลคือตารางในฐานข้อมูล ฟิลด์แต่ละฟิลด์ในตารางฐานข้อมูลจะมองว่าเป็น attribute(ตัวแปรภายในคลาสที่ใช้ร่วมกันในแต่ละฟังก์ชั่น) ของคลาส และ record แต่ละ row นั้นจะถูกมองว่าเป็น Object ซึ่งเป็น instance ของคลาส ส่วนฟังก์ชั่นภายในคลาสนั้นจะเป็นของแถม ซึ่งจะเป็น action การทำงานต่างๆของ Object ที่จะเกิดขึ้นได้ โดยหลักๆ อาทิเช่น Create Read Update Delete(CRUD) 2.View เป็นส่วนของการนำข้อมูลที่ได้จาก Model มาแสดงผลให้ผู้ใช้ได้ทราบข้อมูลผ่านทางส่วนติดต่อกับผู้ใช้งาน (User Interface) 3.Controller เป็นส่วนที่ใช้ควบคุมกระบวนการของ process ซึ่งจะตอบรับและโต้ตอบกับการทำงานของผู้ใช้ที่ร้องขอ(Client) จะเป็นตัวเรียก Model เพื่อติดต่อกับฐานข้อมูล และเป็นตัวเรียก View เพื่อนำข้อมูลที่ได้จาก Model ส่งไปแสดงผล นอกจากนั้นยังเป็นตัวดำเนินการควบคุมอื่นๆอีก ถึงแม้ว่าจะไม่มีการเรียกใช้ Model และ View ก็ตาม แต่ Controller ก็ต้องทำงาน ขึ้นอยู่กับ action ที่ต้องทำ |
||
|
8
เมื่อ: กันยายน 13, 2008, 01:38:18 PM
|
||
| เริ่มโดย keng - กระทู้ล่าสุด โดย keng | ||
|
เมื่อเราติดตั้ง และ ตั้งค่าเสร็จสรรพเรียบร้อยแล้ว สมมติว่าเราตั้งชื่อโฟลเดอร์ของ CodeIgniter ว่า code และนำไปเก็บไว้ที่ /www/code/ ของเรา หลังจากนั้นให้เราเปิดโปรแกรม CodeIgniter ของเราด้วย browser เปิดด้วย url http://localhost/code จะได้ผลลัพธ์มาดังรูปที่แนบ ซึ่งสามารถอธิบายได้ดังนี้
เริ่มต้น CodeIgniter จะทำงานตัว controller ที่เป็น default controller ซึ่งโดยแรกเริ่มเลย codeigniter ได้ตั้ง default ไว้ที่ controller ที่ชื่อว่า welcome เราสามารถปรับเปลี่ยนได้โดยเข้าไปแก้ที่ system/application/config/routes.php ในเมื่อเรารู้แล้วว่า controller ชื่อ welcome จะถูกเรียกเป็น default ดังนั้นให้เราตามไปดู controller ที่ชื่อว่า welcome กัน ให้เราเปิดไฟล์ที่ชื่อว่า system/application/controllers/ เราจะพบโค้ดดังต่อไปนี้ โค๊ด: <?php สามารถอธิบายได้ดังนี้class Welcome extends Controller { function Welcome() { parent::Controller(); } function index() { $this->load->view('welcome_message'); } } /* End of file welcome.php */ /* Location: ./system/application/controllers/welcome.php */ ในการเขียน controller จะต้องมีการ extends มาจากคลาสแม่ที่ชื่อว่า Controller อีกที จึงจะเป็น controller ที่สมบูรณ์ ฟังก์ชั่นที่จะทำงาน ณ เริ่มแรกนั้นก็คือฟังก์ชั่นที่ทำหน้าที่เป็น constructor เราจะเห็นว่าในฟังก์ชั่นนี้มีการเรียกใช้ฟังก์ชั่น constructor ของคลาสแม่(parent::Controller();) ตรงนี้สำคัญมากนะครับ เพราะถ้าไม่มี โปรแกรมจะ error ไม่สามารถทำงานต่อได้ครับ เพราะ CodeIgniter จะทำการสร้าง object จากการเรียกใช้ฟังก์ชั่นนี้ การทำงานหลังจากนั้นก็จะตามมาด้วย ฟังก์ชั่น index() อีกที จะเห็นว่าในฟังก์ชั่น index() จะมีการเรียกใช้ view แสดงผล จากโค้ดนี้ครับ โค๊ด: $this->load->view('welcome_message'); ซึ่งตรงนี้หมายความว่าเราจะเรียกไฟล์ที่ชื่อว่า welcome_message.php มาทำงานในส่วนของการแสดงผล ซึ่งไฟล์นี้จะเก็บอยู่ที่ system/application/views/welcome_message.php เราสามารถปรับเปลี่ยนแก้ไขได้ตามต้องการ |
||
|
9
เมื่อ: กันยายน 13, 2008, 12:42:55 PM
|
||
| เริ่มโดย keng - กระทู้ล่าสุด โดย keng | ||
|
หลังจากที่เรา Download Package เวอร์ชั่นล่าสุดของ CodeIgniter จาก http://codeigniter.com มาแล้ว ขั้นตอนการติดตั้งนั้นคุณสามารถทำได้ดังนี
1. แตกไฟล์ package ถูกบีบอัดมาด้วย zip 2. อัพโหลดโฟลเดอร์ CodeIgniter และไฟล์ไปยังเว็บเซิร์ฟเวอร์ของคุณ โดยปกติแล้วไฟล์ index.php จะอยู่ที่ root ของคุณ 3. เปิดไฟล์ application/config/config.php ด้วย text editor และตั้งค่า URL พื้นฐานของ CodeIgniter ที่คุณต้องการติดตั้ง ถ้าคุณต้องการที่จะใช้การเข้ารหัสต่าง encryption หรือใช้ sessions ให้ตั้งค่า key encryption ของคุณ 4. ถ้าคุณต้องการใช้ฐานข้อมูล ให้เปิดไฟล์ application/config/database.php ด้วย text editor และตั้งค่า database ของคุณ ถ้าคุณหวังที่จะเพิ่มความปลอดภัยโดยการซ่อนตำแหน่งที่อยู่ของไฟล์ CodeIgniter ของคุณ ก็ให้เปลี่ยนชื่อโฟลเดอร์ system ไปเป็นชื่ออื่นได้ ถ้าเกิดว่าคุณเปลี่ยนชื่อโฟลเดอร์นี้ คุณจะต้องเปิดไฟล์ index.php ตัวหลักและตั้งค่าตัวแปร $system_folder ที่อยู่ตรงส่วนบนของหน้าไปเป็นชื่อใหม่ที่คุณได้ตั้งไว้ (แปลมาจากขั้นตอนการติดตั้งของ CodeIgniter ) มาถึงตรงนี้ เราก็พร้อมที่จะใช้งาน CodeIgniter กันแล้วนะครับ ถ้าคุณต้องการจะสร้างส่วนของการแสดงผลหรือ View[/] ให้สร้างไว้ที่ system/application/views/VIEWFILENAME.php แต่ถ้าหากต้องการจะสร้างส่วนของการควบคุม หรือ Controller ให้สร้างไว้ที่ system/application/controllers/CONTROLLERFILENAME.php และในทำนองเดียวกันถ้าต้องการจะสร้าง Model เพื่อติดต่อกับฐานข้อมูลให้สร้างไว้ที่ system/application/models/MODELFILENAME.php |
||
|
10
เมื่อ: กันยายน 13, 2008, 12:32:46 PM
|
||
| เริ่มโดย keng - กระทู้ล่าสุด โดย keng | ||
|
CodeIgniter คือ PHP Framework ชนิดหนึ่ง ซึ่งได้รวบรวมเอาความสามารถต่างๆเข้าด้วยกัน อาทิเช่น ระบบความปลอดภัย ระบบแคชเพื่อให้เว็บเร็วขึ้น การจัดการอัพโหลดไฟล์ การส่งเมล การจัดการเรื่องฟอร์ม การจัดการไฟล์ การจัดการข้อผิดพลาด(error) การจัดการกับไฟล์ XML และอื่นๆอีกมาก ซึ่งเราไม่ต้องเขียนเองทั้งหมด สามารถเรียกใช้ได้อย่างสะดวกสบาย ไม่ต้องปวดหัวคิดถึง algorithm ซ้ำๆน่าเบื่อ อีกต่อไป
เหตุผลที่เราควรใช้ CodeIgniter- เราสามารถใช้ Framework ที่มีขนาดเล็ก - เราต้องการใช้ Framework ที่ทำให้โปรแกรมของเรามีประสิทธิภาพ - เราต้องการ Framework ที่สามารถเข้าได้กับ Server ที่ตั้งค่า PHP ไว้หลากหลาย - เราต้องการ Framework ที่มีการตั้งค่าน้อยที่สุด - เราต้องการ Framework ที่ไม่ต้องการให้คุณใช้คำสั่งต่างๆบน command line - เราต้องการ Framework ที่ไม่ต้องยึดติดกับข้อจำกัดหรือกฎอะไรมากมาย - คุณไม่ได้สนใจที่จะใช้ไลบรารี่ที่ใหญ่มากๆอย่าง PEAR - คุณไม่ได้ต้องการที่จะเรียนรู้อะไรมากมายเกี่ยวกับแม่แบบของภาษา - คุณไม่ชอบความซับซ้อน ชอบวิธีการแก้ปัญหาที่ง่ายๆ - คุณต้องการเอกสารประกอบการใช้งานที่อธิบายได้รู้เรื่อง (ตรงนี้แปลมาจาก http://codeigniter.com นะครับ) |
||