php framework คืออะไร? รบกวนผู้รู้วานตอบที เคยได้ยินมานานแล้ว ที่ชื่อ zend เขาบอกกันว่ามันเป็น php framework
เจอชื่อแล้ว cakephp กับ codeigniter
Date :
2009-07-10 21:40:55
By :
mr.v
web application framework
= function และคลาสช่วยในการเขียนโปรแกรม + ระเบียบวิธีการเขียนโปรแกรม + โครงสร้างของโปรแกรมที่จะควบคุมทิศทางการไหลของโปรแกรมครับ
เนื่องจากเมื่อใช้ framework ใช้รูปแบบในการเขียนแนวทางเดียวกันครับจึงช่วยให้สามารถเขียนโปรแกรมร่วมกับผู้อื่นได้โดยไม่ต้องเสียเวลาเรียนคำสั่งและเส้นทางการไหลของโปรแกรมใหม่ๆ ที่โปรแกรมเมอร์แต่ละคนมีวิธีเขียนเฉพาะตัว
และช่วยให้การเขียนโปรแกรมนำกลับมาใช้ใหม่ได้ง่ายขึ้น และแก้ไขเปลี่ยนแปลง เพิ่มเติมคำสั่งให้กับโปรแกรมง่ายขึ้นครับ
Date :
2009-07-11 07:51:32
By :
num
ขอบคุณ คุณ num ครับ ได้ความรู้อีกละ
Date :
2009-07-13 10:34:15
By :
taobsd
เริ่มต้นก็งงแล้ว
ถามถึง zend framework หน่อยครับ
ผมขอเริ่มตั้งแต่ขั้นตอนการติดตั้งเลย ผมโหลดตัว 1.8.4 ตัวเต็มมาแล้ว อ่านใน quickstart ของเว็บมันก็ไม่เข้าใจ บอกให้รันไฟล์ .bat รันแล้วแต่ที่จะอยู่ใน root web อย่าง c:\inet pub\websites\site1
มันกลับไปอยู่ใน c:\inet pub\websites\site1\bin\quickstart\ แล้ว folder นี้ก็มีแต่ไฟล์ .zfproject.xml
ผมงงรับประทาน จะเริ่มต้นไฟล์ index.php ของเว็บได้ที่ไหน
แล้วที่เขาบอกให้ก๊อปไฟล์นั้นไฟล์นี้มาใส่ ผมจะรู้ได้ไงว่าเอาไฟล์ไหนใส่ folder ไหนบ้าง
เพราะใน quick start ของมันกับที่แตกออกมาตอนดาวน์โหลด โครงสร้างไม่มีส่วนใดตรงกันเลย
แล้วเวลาที่มันเขียนอธิบาย ก็ไม่อธิบายละเอียดด้วย ประมาณว่าผู้ใช้รู้แล้ว ทำต่อได้ แล้วผู้ใช้ใหม่อย่างผมล่ะ?ไม่ต้องใช้?
ผมอยากได้แบบ step by step น่ะครับ เพราะผมไม่รู้อะไรเลยว่าจะติดตั้งยังไง
แล้ว php.ini ก็แก้ไม่ได้บน web hosting แต่ใน quick start, install ของมันก็บอกให้แก้
ขอร้องผู้รู้ช่วยอธิบายเป็นขั้นพร้อมยกตัวอย่างให้หน่อยครับ อย่างน้อยถ้ามัน hello world ได้ผมก็คลำทางต่อได้ล่ะ (น่าจะนะ ถ้า manual ของมันไม่เขียนแบบว่าผู้ใช้เก่งแล้วล่ะก็)
Date :
2009-07-14 05:09:38
By :
mr.v
ผมทำ tutorial ขนาดเล็กๆ มาให้อ่านแล้วลองอ่านดูครับ
zendframework quickstart
zendframework
แต่ผมไม่แนะนำให้ใช้ zendframework หรอกนะครับ
ข้อดีของ zendframework คือมีความน่าเชื่อถือและทีมพัฒนามีเสถียรภาพ
แต่ข้อเสียของ zendframework ก็คือคำสั่งมันยากต่อการเรียนรู้ในระยะเวลาอันสั้น วิธีหลักที่จะเรียนรู้ก็คืออ่าน zend component ที่จำเป็นต้องใช้หลักๆ จากนั้นเมื่อต้องการใช้คำสั่งไหนก็ไล่ตามอ่านไปทีละ component แต่จำนวนคนใช้จริงๆ ผมว่าค่อนข้างน้อยกว่า framework อื่นๆ ครับ
ผมแนะนำ cakephp หรือ codeigniter ซึ่งสามารถดึงเอา zendcomponent มาใช้งานได้เช่นกันครับ :D
ในส่วนของคำสั่งใน tutorial รู้สึกจะใช้ pdo ผมไม่แน่ใจว่าเว็บไซท์ทั่วไป support library ตัวนี้หรือยัง ดังนั้นถ้าจะใช้ต้องเลือก host ที่ support pdo ด้วยครับ
Date :
2009-07-14 10:33:11
By :
num
ถ้างั้นมีอันไหนที่คิดว่าคำสั่งมันง่ายกว่าไหมครับ
Date :
2009-07-14 15:07:18
By :
mr.v
ระหว่าง cakephp กับ codeigniter
codeigniter ทำงานเร็วกว่า และในเริ่มต้นเรียนรู้ง่ายกว่า (แต่คำสั่งเยอะจำไม่ค่อยไหว เอิกๆ)
แต่ถ้าพูดถึงความเป็น oop และผู้ใช้เยอะที่สุดในประเทศต้องยกให้ cakephp ครับ
Date :
2009-07-14 21:59:32
By :
num
ใช้เค้กละ อยากถามว่าตัวนี้เนี่ย เขียนไฟล์เดียว config path ต่างๆได้มั้ยครับ
ผมหาตัวอย่างแบบนี้ไม่ได้เลย
สมมุติ webroot อยู่ที่ c:\inetpub\web\
cake จะต่อจาก web อีกที
ที่ /index.php
Code (PHP)
<?php
if (!defined('ROOT')) {
define('ROOT', dirname(__FILE__).'\cake');
}
/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
define('APP_DIR', basename('app'));
}
/**
* The absolute path to the "cake" directory, WITHOUT a trailing DS.
*
*/
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', ROOT);
}
?>
สามารถระบุได้แล้วว่าให้มันอยู่นอก /cake/
ก็รันได้ แต่ทีนี้ถ้าผมทำหน้าใหม่ๆขึ้นมา อย่างเช่นสมัครสมาชิก
/register.php ผมก็ต้องมากำหนดใหม่อีก แต่ถ้าผมจะใช้ include, require ผมงงว่าจะใช้ยังไงในเมื่อไฟล์ index.php ต้นแบบมันไม่มี include อะไรเลย?
หรือ
ผมต้องสร้างทุกอย่างอยู่ในโครงสร้าง /cake พวก /app/models /app/controllers /app/views
ทั้งหมดเลยหรือครับ?
ผมไม่อยากถูกดูดเข้าไปอยู่รวมกับของที่เค้าทำมาน่ะ
มีวิธีบ้างมั้ยครับที่จะสร้างไฟล์ขึ้นมาเองภายนอก /cake แล้วดึงคำสั่งมาใช้
Date :
2009-07-15 06:43:30
By :
mr.v
cakephp ต่างกับ zendframework ตรงที่เป็น mvc เต็มขั้นครับ
โครงสร้างถูกวางเอาไว้แล้ว ถ้าแยกเป็นรูปแบบเฉพาะตัวจะทำให้เสียคุณสมบัติของ mvc (ที่สามารถนำกลับมาใช้ได้ใหม่และอ่านเข้าใจได้ง่าย) ถึงแม้ว่าจำทำได้ยากแต่เนื่องจากมันอยู่ในรูปแบบที่เป็น oop เราก็สามารถ include และประกาศ object ได้เหมือน class ปกติเช่นกันครับ แต่ก็ต้องดูก่อนครับว่าต้องการ include คำสั่งอะไรมาใช้ เพราะ class บางคลาสก็ยึดติดกับ class พวก mvc เยอะเอามาใช้ลำบากครับ
ช่วงนี้ผมไม่ค่อยสะดวกตอบอะไรยากๆ ถ้ายังไงไปถามที่ http://www.cakephp.in.th ก่อนละกันครับ แหะๆ
Date :
2009-07-15 09:11:16
By :
num
ไม่มีใครสนใจ rails บ้างเหรอคับ
อยากจะใช้อยู่เหมือนกัน เฟรมเวอร์คเนี่ย
ตามเรพ 9 แนะนำได้ดีคับ การใช้เฟรมเวอร์ค มันต้องเปลี่ยนแนวการเขียนเป็นแนวเดียวกัน ดังนั้น คุณจะต้องเรียนรู้วิธีการเขียนของแต่ละเฟรมเวิร์ค ซึ่งอาจต่างกัน
ส่วนเรื่องพาร์ท ผมว่า เอาไว้ที่เดียวกับโปรเจกต์เลยคับ จะได้ไม่สับสน
แนะนำให้อ่านเอกสาร ก่อนใช้งานคับ เพราะมันจะสอนอยู่แล้ว
Date :
2009-07-15 09:36:48
By :
pjgunner
cake.in.th สมัครสมาชิกยังไม่ได้เลยครับ
ใน manual ของมันมีตัวอย่างการแยกตำแหน่ง app webroot และ core ผมก็สามารถทำได้แล้ว
โดยเอา webroot มาอยู่ข้างนอกแทนข้างใน cake/app/webroot
แต่ถ้ามันยึดติดกันแบบนี้ กลายเป็นว่าความยืดหยุ่นที่หลายคนพูดก็เป็นเรื่องไม่จริง
แถมยังยากกว่าเก่า เพราะมันกระจายอยู่ใน controller & model
แล้วจากที่ลองเขียนผ่าน blog tutorial ของมันที่มีให้ ก็ดูเหมือนต้องเรียนรู้ชุดคำสั่งใหม่ซะอีก
อย่างเช่น
Code (PHP)
<?php
var $validate = array(
'title' => array(
'rule' => 'notEmpty'
),
'body' => array(
'rule' => 'notEmpty'
)
);
?>
ถ้าผมไม่เปิดอ่าน manual ก็ไม่มีทางรู้ว่า rule คืออะไร แล้วมีอะไรบ้างนอกจาก notempty
กลายเป็นว่า if ($inputbody != empty) { ง่ายกว่า
ถอยทัพกลับไปเขียนเองพร้อมใช้ smarty เหมือนเดิมดีมั้ยเนี่ย
Date :
2009-07-15 14:17:43
By :
mr.v
มันปรับได้ครับ ที่ว่ายืดหยุ่น ก็คล้ายกับที่เราต้อง include ไฟล์ของเราเอง
อย่าพึ่งเข้าใจผิดว่า framework มันจะเหมือนกับไลบรารี่ มันก็คล้ายกับเรามีหุ่นยนต์หนึ่งตัว และมีคำสั่งพื้นฐานให้หุ่นยนต์นั้นขยับแขนขาได้ เพียงแค่เราอิมพลีเมนต์เข้าไปมันก็จะสามารถขยับได้อย่างที่เราต้องการ
Date :
2009-07-15 14:36:26
By :
pjgunner
แล้วมีใครรู้บ้างมั้ยครับว่าพวก complete script ที่แจกฟรี มีตัวไหนใช้ cake บ้าง?
ผมอยากเอามาดูเพื่อดัดแปลงเปรียบเทียบการทำงาน
Date :
2009-07-15 15:36:47
By :
mr.v
ผมไม่รู้หรอกนะครับ แต่เฟรมเวิร์คที่คุณใช้คงจะใช้ MVC เป็นหลัก โดยคุณต้องเข้าใจ OOP ขั้นพื้นฐานและหลักการของ MVC ถึงจะเข้าใจได้ว่ามันทำงานยังไงนะครับ ผมเองก็ไม่เคยใช้กับเว็บหรอกคับ เคยแต่ใช้ใน javax.swing มาก่อนเลยเข้าใจว่ามันแยกกันเป็นส่วนๆ ซึ่งทำให้เว็บของเราสารถแยก วิว กะ คอนโทรลเลอร์ได้
Date :
2009-07-15 19:27:45
By :
pjgunner
oop ผมพอจะเข้าใจครับเพราะใช้บ่อยไม่ว่าจะ smarty template, calendar, อื่นๆ แต่ว่า mvc ไม่เคยแตะมาก่อนเลยน่ะ
การเปลี่ยนจากโครงสร้างแบบเดิมๆที่มีคำสั่งเป็นหน้าๆ มีชื่อไฟล์ที่เห็นแล้วเข้าใจเลย มี folder class, admin, template, functions อะไรต่างๆแบบนี้
ไปเป็นการทำงานแบบ mvc เป็นอะไรที่ไม่คุ้นเคยมากๆ เพราะต้องเปลี่ยนความคิดเดิมใหม่หมดเลย
จากที่มีไฟล์ที่เข้าใจง่ายๆ เช่น /index.php ไปเป็นแบบ mvc ผมก็ไปไม่เป็นเลยนอกจากทำตามตัวอย่างที่มี
แต่ตัวอย่างที่มันมีให้ ก็ไม่มีการดัดแปลงเป็นอย่างอื่นๆให้ดู
ยกตัวอย่างไฟล์ index.php ของเค้ก ผมก็ยังมองไม่ออกว่าจะทำยังไง เช่นจะใส่ random image เข้าไปจะทำยังไง เริ่มที่ไฟล์ไหน เพราะลองทำหลายทางแล้วไม่เป็นผลแถม error
ซึ่งถ้าใช้วิธีเก่าๆผมก็บรรเลงลง /index.php ไปเลย หรือไม่ก็สร้างไฟล์ function ขึ้นมาแล้วเรียกใช้เอา
เหอะๆ
เหวอๆๆ
Date :
2009-07-15 20:46:05
By :
mr.v
จากโค้ดข้างบนต้องเปลี่ยน layout ด้วยครับต้องเป็น layout ว่างๆ ครับ
Date :
2009-07-16 09:19:45
By :
num
ไฟล์ layout
app/views/layouts/image.ctp
<?php echo $content_for_layout ?>
ที่ controller
function view(){
$this->layout = 'image';
}
Date :
2009-07-16 09:30:28
By :
num
ขอบคุณคับ
Date :
2009-07-16 22:06:03
By :
mr.v
Load balance : Server 01