Displaying articles with tag php

Prado + Zend Framework

Posted by PunNeng, Wed Feb 21 16:47:00 UTC 2007

AMp เขียนครับ

บทความนี้ อธิบายเกี่ยวกับการใช้ prado framework ใน zend framework ซึ่งเป็นเหมือนกับการสร้าง webapp ด้วย component ของทั้ง zend และ prado (ทำแบบนี้ถึงจะดูน่าสนใจ แต่คิดว่าน่าจะกระทบกับ performance เอาเรื่องเหมือนกัน)

ว่าไป ผมก็เพิ่งรู้ว่ามี zend framework ด้วย เท่าที่ลองสำรวจเว็บคร่าวๆ รู้สึกว่า zend ทำงานเป็นมืออาชีพจริงๆ ลองไปดูใน Developer Community ก็จะเห็นว่า แค่เรื่อง proposal ของ component ก็ต้องมีการ review กันเป็นขั้นเป็นตอน ดูแล้วน่าจะเป็น framework ที่มีการ support ที่แข็งกว่า framework ตัวอื่นแน่ๆ

อีกสิ่งหนึ่งที่เห็นก็คือ zend framework น่าจะเน้น component เช่นเดียวกับ prado แต่ตัวมันเองทำงานแบบ mvc ซึ่ง component ใน zend มีค่อนข้างเยอะ แต่ที่น่าสนใจจริงๆ อยู่ที่ proposal ครับ ผมเห็น proposal หลายตัวที่เน้นทำงานกับ webservice ของเว็บดังๆ อย่าง technorati, youtube, gg earth แล้วก็มี service ที่เกี่ยวกับ payment กับ currency อยู่ด้วย

ไปๆ มาๆ ผมว่าน่าจะขโมย component จาก zend framework มาใช้ใน prado มากกว่านะ เพราะเท่าที่ดูคร่าวๆ แล้ว component ของ zend ยังไม่มี dependencies กับ component อื่นมากนัก (โดยเฉพาะพวก webservice component)

1 comment | Filed Under: General | Tags: php

Prado Framework

Posted by PunNeng, Tue Feb 20 23:38:00 UTC 2007

AMp เขียนครับ

...และแล้ว เฟรมเวิร์กตัวนี้ก็เสร็จผมจนได้ เหอๆ คราวที่แล้วติดใจกับ CodeIgniter ที่น่าสนใจตรงที่ ใช้งานง่ายมาก เหมาะสำหรับเซียน php ที่ถนัดเขียนโค้ดเองเป็นอย่างยิ่ง

คราวนี้ก็ได้มาลองเล่น Prado Framework (http://www.pradosoft.com) ซึ่งตอนนี้พัฒนามาถึง v3 แล้ว concept หลักของ prado จะไม่ใช่ mvc แล้วครับ (ถึงแม้ว่าจะสามารถมองเป็น mvc ได้ก็ตาม) prado เป็น component-based framework ครับ ใครที่นึกภาพไม่ออก ก็ลองนึกถึง .NET หรือพวก JAVA ครับ เหมือนกันเลย การพัฒนาระบบ prado นั้นจะเน้นที่การสร้าง component แล้วเอามาประกอบกันเป็นระบบใหญ่ๆ ซึ่งการพัฒนาแอพลิเคชั่นที่ซับซ้อนเนี่ย การพัฒนาแบบ component-based เนี่ย จะช่วยเพิ่มความยืดหยุ่น และ reusable ได้มาก ซึ่งการันตีได้จากการที่ทั้ง .NET และ JAVA เองก็ถูกนำไปพัฒนาระบบใหญ่ๆ กันมาก

เล่น prado เนี่ย ไม่ต้องมองหาระบบ automatic อย่างใน cake หรือว่า rails หรอกนะครับ ระบบแบบนี้เน้น component จริงๆ โดย prado จะมี component มาให้ใช้เพียบ ทั้ง component data, template, html ฯลฯ นึกเอาง่ายๆ ใน .net เขียนติดต่อ db ยังไง ใน prado ก็แบบนั้นน่ะแหละ

ใครที่ไม่ได้อยู่สาย m$ ล่ะก็ การเขียน prado ออกจะหนักหนาสาหัสเอาการเลยทีเดียว และข้อเสียของ prado น่าจะอยู่ที่ด้านการ learning ที่ต้องใช้เวลามาก สำหรับพวกที่ไม่คุ้นกับ style ของ .net/java

ง่วงละ สรุปง่ายๆ เลยละกัน prado มีดีอะไร:

  • เขียน even-driven ได้
  • มี state ช่วยให้ทำงานแบบ state ได้ (เว็บทั่วไปจะเป็นแบบ state-less)
  • ผสานกับ ajax ได้โดยอัตโนมัติ เพียงแค่เรียกใช้ control ให้ถูก และมันฉลาดพอที่จะรู้ว่า เราวาง control แบบไหนควรจะ process ที่ฝั่ง server หรือใช้ ajax/js
  • ยืดหยุ่นเช่นเดียวกับ .net/java
  • component/control ที่ให้มา ค่อนข้างครบครัน
  • ระบบ template ก็เป็นการเรียกใช้ component เหมือนเดิม ไม่ได้มองเป็น php scripting (แต่จะเขียนโค้ดทั้งดุ้นเองก็ได้ไม่ผิด)
  • แถม extension ของ dream มาให้ด้วย เอาไว้เวลาสร้าง template จะได้ไม่ต้องมาคอยเปิด manual มันจะมี auto complete ขึ้นให้เลย (แต่รู้สึกเหมือนจะไม่ค่อยมีประโยชน์เท่าไหร่ เพราะพาธไม่ตรง ทำไปก็ต้องไป preview ใน browser ไป)
  • เขาวางแผนจะทำ IDE สำหรับ prado กันอยู่ ยิ่งถ้าได้ใช้ใน vs ล่ะก็ มันส์ (ผมติดใจ intellisense ใน vs นี่แหละ ชอบมากๆ - แต่รู้สึกว่าเขาจะไม่สนใจ commercial IDE ซักเท่าไหร่)

proda ห่วยตรงไหน:

  • คนที่ไม่คุ้นกับ .net/java งงแน่ๆ
  • ถ้าไม่คุ้น งงกับ config แน่ เพราะโค้ดบางตัวมันใส่ได้ทั้ง config และใส่ใน code (ถ้าใครเคยเขียน .net จะรู้ว่ามันมี web.config ประมาณนี้แหละ)
  • sample น้อยมาก ต้องคลำเอาเองซะเยอะ
  • ใช้ php5
  • ระบบ automation สำหรับช่วยเหลือตอนเขียนโปรแกรม ไม่ค่อยมี (db auto mapping, etc.)
  • ไม่รู้จะถือว่าเป็นข้อเสียหรือเปล่า friendly-url ต้อง map เองแน่ๆ เพราะ prado ไม่ได้มองเป็น mvc แต่จะมองเป็นการเรียกใช้ component แทน ซึ่งมันไม่ฉลาดพอที่จะทำ friendly-url maping ให้ได้ (แต่ถ้าจะทำก็น่าจะทำได้นะ)

ตอนนี้ผมกำลังลุยเล่น prado อย่างจริงจัง ก็คงหยุดการเฟ้นหา framework โดนใจที่ prado นี่แหละครับ ถือว่าถูกใจเลยทีเดียว (จริงๆ บริษัทของผมมันสาย m$ ถ้าได้เล่น prado อย่างน้อย concept มันก็ไม่หนีกันเท่าไหร่ ประหยัดเวลาศึกษา .net ไปได้อีก - ผมยังเขียน .net ไม่เป็นเลย เหอๆ)

0 comments | Filed Under: General | Tags: php

PHP Designer 2007 v5.1.3

Posted by PunNeng, Fri Jan 19 23:54:00 UTC 2007

AMp เขียนครับ

...เมื่อก่อนผมเคยลองเฟ้นหา ide ของ php ที่น่าสนใจ สรุปได้ว่ามีอยู่ 3 ตัว คือ Rapid php 2006, PHP designer 2007 แล้วก็ Zend studio

ตอนนั้น php designer 2007 ยังเป็น v5.0 ยังไม่สนับสนุน UTF สนับสนุนแต่ Unicode แต่ใน v5.1.3 นี้ มันสนับสนุน UTF และ BOM ด้วย ฉะนั้น ไม่ต้องห่วงเลย สำหรับการทำเว็บที่ใช้ UTF8

เสริมให้นิดนึง BOM เนี่ย เป็นข้อมูล header ของไฟล์ UTF (ไม่แน่ใจว่า Unicode ด้วยหรือเปล่า) มันทำให้มีปัญหากับ browser โดยเฉพาะ IE (Firefox ไม่เป็น ลองแล้ว) คือถ้าเราเขียน php ขึ้นมา 1 ไฟล์ แล้ว include ไฟล์ utf8 เข้ามาด้วย เวลาเปิดหน้าเว็บนั้นดูใน IE มันจะเหมือนว่ามีช่องว่างแทรกออกมาที่ต้นไฟล์ (จะปรากฏที่มุมบนซ้ายของหน้าเว็บ) ทำให้ layout ของเราเพี้ยนไปเลย ไม่ชิดบนซ้ายอีกต่อไป ฉะนั้นผมจึงใช้ไฟล์แบบ UTF-8 ที่ไม่มี BOM เท่านั้น

เหตุที่แนะนำ PHP Designer 2007 ก็เพราะว่า มันรองรับการเขียนโปรแกรมได้หลายภาษามาก ไม่ได้เฉพาะแต่ php เท่านั้น เช่น PHP, SQL, HTML, XML, CSS, JavaScript, VBScript, Java, C#, Perl, Python and Ruby แถม interface ก็สวย option ก็เยอะ ใช้งานมันส์กว่า editplus เป็นไหนๆ ลองดู option ของมันได้ที่ http://www.mpsoftware.dk/phpdesigner_features.php

ข้อเสียของมันนี่คือ มันไม่ฟรีนี่ดิ ....แต่ถ้าใครอยากใช้ ใบ้ให้ ...."phazeddl" อิอิ

ป.ล. Rapid php ก็ดีนะ แต่ผมว่ามันหน่วงๆ อะ editor ก็แปลกๆ เขียนโปรแกรมได้ไม่ลื่นเท่าไหร่
ป.ล.2 zend develope environment ก็น่าใช้โคตรๆ ยิ่งเขียน oop ด้วยแล้ว ตัว zend นี่มันหามาให้เลยว่ามี method/property อะไรบ้าง เป็น auto completete ที่เจ๋งพอๆ กับ visual studio เลย

0 comments | Filed Under: General | Tags: php

Properl Framework

Posted by PunNeng, Fri Jan 19 15:45:00 UTC 2007

AMp เขียนครับ

"...ไอ่โรคจิต..."

ตั้งใจจะด่าผมแบบนี้ใช่มั้ยคับ - -"
อย่าเพิ่งด่าเลย แค่แวะมาบอกอะไรน่ารู้นิดๆ หน่อยๆ

เมื่อกี้ที่อ่าน doc ของ CI กะ Qcodo อะ เห็นคำว่า Active Record ก็สงสัยว่ามันเหมือนหรือต่างกันกับ ORM ยังไง ก็ไปค้นใน wikipedia ปรากฏว่า ..... มันก็อันเดีัยวกันนั่นแหละ - -"

แต่ทันใดนั้นเอง ก่อนที่จะปิดมันลงไป ผมเหลือบไปเห็น See also มีลิ้งค์คำว่า Propel ด้วย ผมก็เริ่มตะหงิดๆ ละ แล้วก็นึกขึ้นได้ว่า ตอนเล่น symfony มันมีการสร้าง ORM แล้วชื่อคลาสมันเนี่ย มีคำว่า propel ต่อท้ายด้วย ก็สงสัยเหมือนกัน แต่ก็ไม่ได้หาต่อ นึกว่าเปิดดิกเอาก็คงรู้

พอตามลิ้งค์ไป เท่านั้นแหละ .......... http://propel.phpdb.org .... ห่ะ ORM ยังเป็น framework อีกหรอวะ - -*

ใช่ครับ Propel is an Object Relational Mapping (ORM) framework for PHP5. มิน่าล่ะ Symfony ถึงไม่ support php4

แวะมาบอกแค่นี้ล่ะคับ - -"

0 comments | Filed Under: General | Tags: php

Qcodo Framework

Posted by PunNeng, Fri Jan 19 15:09:00 UTC 2007

AMp เขียนครับ

...พักนี้ว่างจัด ค้นเจอไอ้นู่นก็น่าเล่น ไอ้นี่ก็น่าเล่น และนี่ก็เพิ่งไปเจอ Qcodo จากฟอรั่มของ CI นั่นแหละ

เห็นในฟอรั่มมีพูดถึงกันบ่อย ก็เลยลองๆ ไปดูมั่ง งวดนี้อาจจะไม่ถือว่าเป็น review ก็ได้นะครับ เพราะผมไม่ได้ลองเล่นเลย ได้แต่ดูวิดีโอมันอย่างเดียว

Qcodo อวดว่า ถูกใช้ในงานระดับ Enterprise มาหลายปี รวมถึงมีการใช้ใน NASA ด้วย (ทำเว็บบอร์ดล่ะมั้ง - ฮา) เจ้า Qcodo นี้เหมาะมากสำหรับ app ประเภท Database driven ที่ส่วนใหญ่เน้นการทำงานกับ DB เป็นหลัก

เหตุที่เหมาะมากนี่ก็เพราะว่า มันมีตัว codegen เอาไว้สร้าง db object จาก database อารมณ์เดียวกับ phpMaker เลย คือพอ gen ออกมาแล้ว ได้ฟอร์มที่สามารถใช้งานได้ทันที ยิ่งถ้ามีการเซ็ต fk ไว้ด้วยล่ะก็ มันจะเชื่อมความสัมพันธ์แล้วสร้างฟอร์มออกมาให้เอง เรียกได้ว่า สร้าง DB เสร็จ ก็สั่ง gen ออกมาเป็นฟอร์มได้เลย สะดวกจริงๆ

สิ่งที่ผมตะหงิดๆ หลังจากดูวิดีโอพรีเซ้นต์ของมันจบแล้ว ก็คือ ผมสงสัยว่ามันรองรับงาน enterprise ได้จริงหรอวะ ในเมื่อมันเพิ่งถึงเวอร์ชั่น 0.3 เอง beta ด้วย ไม่น่าเชื่อว่าหลายปีมานี้ จะมีคนกล้าเอาไปใช้กับงาน enterprise ด้วย แล้วเท่าที่ผมดู ยังไม่เห็นฟังก์ชั่นไหนที่ช่วยในการ customize กับ db ได้เลย (คงรู้นะครับว่างาน enterprise จริงๆ เค้าเล่น DB กันหนักขนาดไหน บางทีแค่ select กันยาวๆ ก็ต้อง optimize กันแล้ว) หรือเขาต้องการแสดงให้ดูว่ามันง่าย เลยไม่ได้เอามาให้ดูก็ไม่รุ

ในวิดีโอพรีเซ้นต์อันนี้ มีการใช้ zend developer environment ด้วย ผมเห็นแล้วก็อึ้งว่ามันมี ide ที่ความสามารถใกล้เคียงกับ visual studio ด้วยหรอเนี่ย มี auto complete ในระดับ object เลย ว่า object นี้มี method หรือ property อะไรบ้าง ทำให้เขียนโค้ดได้ไหลลื่นมากๆ โอ้ว ดีแบบนี้ต้องลอง (ผมเคยลองเล่น zend มาทีนึง แต่ตอนนั้นไม่ปลื้มมันซักเท่าไหร่ เพราะมันเล่นไป overide apache เดิมของผมซะแปลกๆ ไปเลย เด๋วงวดนี้ต้องตั้งสติให้ดีๆ ide เจ๋งขนาดนี้ต้องลอง)

ดูรวมๆ แล้ว Qcodo นี่ช่วยให้ขึ้น prototype ได้เร็วขึ้นเยอะเลย พรึ่บเดียวเสร็จ ประมาณว่า เช้ารับ requirement เย็นก็เอา prototype ไปลองได้เลย แต่ก็นะ ผมยังไม่ค่อยอยากเชื่อว่ามันจะเล่นกับ DB ได้เต็มเหนี่ยวถึงระดับ query จริงๆ ใครลองแล้วก็มาบอกด้วย

ป.ล. เวลาจะเซ็ตอัพ Qcodo อะ มันต้องกำหนด include path ใน php.ini ด้วย แบบนี้คนใช้ shared host คงหมดสิทธิ และเราคงไม่ได้เห็น Qcodo ในงานระดับเว็บทั่วๆ ไปแน่
ป.ล.2 Review framework รายวันเลยวุ้ย แต่เด๋วอาทิตย์หน้าก็คงไม่ได้เล่นไรหยั่งงี้ละ

0 comments | Filed Under: General | Tags: php

codegent: we're hiring