ผมค้างบทความเรื่อง PaaS สุด Hit อีกตัวหนึ่งไว้ ดองไว้นานไม่ได้เขียนสักที PaaS ตัวนี้มีชื่ออย่างเป็นทางการว่า Zend Developer Cloud หรือในชื่อที่คุ้นหูว่า PHP Cloud ใช่ครับ Platform as a Service โดย Zend บริษัทผู้พัฒนา PHP นั่นเอง ผมได้คำเชิญจากทีมพัฒนา PHP มาได้ 2 เดือนแล้ว พอมีเวลาว่างก็ได้ลองเล่นดู พบว่าสนุกและทำงานได้ง่ายกว่า Cloud ที่เป็น PaaS ของค่ายอื่นๆ มาก PHP Cloud คงไม่ต้องบอกว่าให้บริการ Platform ใด หลักๆ ก็เป็น PHP บน Zend Server มีเครื่องมือครบ ได้แก่ Zend Platform, Zend Optomizer, Zend Gard, MySQL, PHPMyAdmin เป็นต้น ในส่วนการเชื่อมต่อกับนักพัฒนามีได้หลายช่องทาง ไม่ว่าจะเป็น Zend Studio, Eclipse, Git และ SFTP ในส่วน Platform ยังมี App เพื่อรองรับการพัฒนาแบบสำเร็จรูปยังมี Zend Framework, Drupal, Joomla, WordPress, Magento, PHPBB ให้ด้วย สำหรับนักพัฒนาที่พัฒนา Mobule หรือใช้ App เหล่านี้ในการพัฒนาซอฟต์แวร์ต่อยอด

ในขณะที่เขียนบทความนี้ PHP Cloud ยังอยู่ในช่วงของ Technology Preview ซึ่งผู้ที่จะได้ใช้งานต้องได้รับการ Invite จาก Zend สำหรับท่านที่สนใจก็สามารถไปกรอกข้อมูลเอาไว้ก่อนได้เช่นกัน ลงทะเบียนได้ที่ http://www.phpcloud.com จากนั้นก็รอจดหมายตอบรับจาก Zend เมื่อได้จดหมายตอบรับแล้วจะมี Link ที่มี Invitation Key ให้ เมื่อคลิกแล้วก็จะกระโดดมาที่หน้า Login ของ Zend

กรอก Username และ Password ที่ได้ลงทะเบียนไว้ ก็จะเข้าสู่หน้าจอแนะนำ PHP Cloud การใช้งานและการเชื่อมต่อกับเครื่องมือพัฒนาซอฟต์แวร์ต่างๆ

PHP Cloud จะให้เราสร้าง Application Container สำหรับรองรับ App ต่างๆ ที่เราจะพัฒนา ใน Container จะมี Zend Server และ Git มาให้ มาสร้าง Container กันก่อน

เมื่อสร้างเสร็จจะพบว่ามี App Default มาให้ 1 ตัว เอาไว้ทดสอบพร้อม Public URL ผมสร้าง Application Container ชื่อ redlinesoft ก็จะมี Public URL เป็น http://redlinesoft.my.phpcloud.com

หากเพิ่ม App ลงไปก็จะเป็นชื่อ App URL ต่อท้าย เช่น WordPress ก็จะเป็น http://redlinesoft.my.phpcloud.com/wordpress เป็นต้น สำหรับวิธีการเอาไฟล์ขึ้นลงก็ใช้ผ่าน Zend Studio หรือไม่ก็ใช้ Git สำหรับ IDE ตัวอื่นๆ อย่าง Eclipse ก็ใช้ผ่าน Git Plugin สำหรับการทำงานผ่าน Git ก็ง่ายๆ ครับ ตรงปุ่ม Git Access จะมี Git URL ให้เอา Git URL มาใช้

ตัวอย่างเช่น ผมมี App ชื่อ I am Petdo – Jquery Feed อยู่ ก็ใช้ Git Clone เพื่อดึงโค้ดลงมา

git clone https://redlinesoft@redlinesoft.my.phpcloud.com/git/iampetdo.git iampetdo-jqfeed

โดยไดเรคทอรีที่ได้จะเป็น iampetdo-jqfeed มีไดเรคทอรี public อยู่ข้างใน หากต้องการเพิ่มไฟล์ใหม่ก็สั่ง

git add ชื่อไฟล์ที่ต้องการเพิ่ม

และ git commit เพื่อกำหนดว่า commit อะไร เขียน log ในการ commit แต่ละครั้งด้วย เช่น

git commit -m "fix feed via jqfeed plugin"

จากนั้นก็เอาไฟล์ขึ้น โดยสั่ง git push

git push

เป็นอันจบขั้นตอนการเอาไฟล์ขึ้นไปที่ Container สำหรับการทดสอบก็เข้าผ่าน Public URL ของ App แต่ละตัว สำหรับการเพิ่ม App เข้าไปยัง Container ก็กด Link add/remove more apps จะเข้าสู่หน้า App Catalog ดังนี้

อยากได้ตัวไหนก็กดเลยครับ ยกตัวอย่างเป็น WordPress นะครับ เมื่อกดปุ่ม Deploy Application ก็จะเข้าไปยังหน้าตั้งค่าดังนี้

ใส่ข้อมูลให้เรียบร้อยคุณก็จะได้ App WordPress มาอยู่ที่หน้า App Container ดังนี้

จากนั้นก็ทดสอบผ่านทาง Public URL ได้เลย

ในหน้า App Container คุณยังสามารถทำ Snapshot ของ Container ได้สามารถนำเอา Snapshot ไป Deploy ยัง Container ใหม่ได้เล่นกัน เหมาะกับการทำ HA ได้ง่ายๆ สำหรับการย้าย App จาก Container ไปยัง AWS EC2 และ Cloud Provider อื่นๆ ทาง Zend ยังไม่ได้มีการเปิดให้ทดสอบ ถ้าได้มีโอกาสได้ทดสอบก้อจะเอามาเล่าให้ฟังกันอีกรอบครับ สำหรับช่วง Technology Preview นี้ยังไม่มีค่าใช้จ่าย สร้าง App Container ได้เรื่อยๆ หลังจากนี้อาจได้แค่ 1 Container และซื้อเพิ่ม คงต้องรอข่าวจาก Zend กันอีกรอบครับ สำหรับท่านที่ได้ Invite แล้วก็อยากให้ลองเล่นลองทดสอบดูครับ อย่างน้อยก็ได้สัมผัส Zend Cloud ในรูปแบบ PaaS ซึ่งหาใช้กันไม่ได้ง่ายๆ

PHP เพิ่มคุณสมบัติพิเศษจากการพัฒนาร่วมกับภาษาอื่นๆ อย่าง Java Bridge มาแล้ว และคราวนี้คงถึงเวลาที่ PHP จะมี Bridge เชื่อมโยงกับ .NET แล้วล่ะครับ ทีม Developer and Platform Evangelism Interoperability ของ Microsoft ประกาศการพัฒนา PHP Toolkit for ADO .NET Data Services ซึ่งจะทำให้ PHP สามารถเรียกใช้ Microsoft .NET Framework ได้ ซึ่ง toolkit ตัวนี้พัฒนาอยู่บนเว็บไซต์ชุมชนโอเพนซอร์สของ Microsoft เองชื่อ Codeplex อาจใช้ REST เป็นโครงสร้างสำหรับการสื่อสารระหว่างกัน ซึ่งทำให้นักพัฒนาที่ใช้ภาษา PHP สามารถใช้ metadata ที่ใช้ใน ADO.NET Data Services ตัวใหม่ได้เลย ตัว toolkit ยังสามารถสร้าง proxy class ในรูปแบบ XSLT ได้อีกด้วย และแน่นอนสนับสนุน RESTful :)

ที่มา – H-Online, ClodePlex

ตั้งหัวเรื่องไว้แรงไปหน่อยอาจมีคนหมั่นไส้ ที่บอกว่า Zend Studioเป็นเครื่องมือพัฒนา PHP ที่ดีที่สุดในโลกอาจจะเป็นเพราะหัวคำโฆษณาของ Zend Studio ในเว็บก็เป็นได้ เข้าเรื่องสักหน่อย ZendStudio เป็น IDE (Integrated Development Environment) ใช้พัฒนาเว็บแอพลิเคชั่นที่ใช้ภาษา PHP คุณสมบัติโดยรวมของ Zend Studio มีดังนี้

 

 

1. Editor and File Management Features

  • Syntax Coloring, Code Assist
  • Templates (PHP, PHPDoc, New File)
  • Code Folding (Classes, functions and PHPDoc)
  • Real time error detection
  • Bookmarks
  • Smart Goto Source + Hover Support
  • Automatic Insertion (brackets, braces, PHPDoc)
  • Matching Bracket
  • Comment / Uncomment PHP code
  • PHP (Project) Explorer View
  • Open resource (File / function)
  • PHP Manual Integration
  • Search PHP element
  • File / Project / PHP Inspectors (Outlines)
  • Advanced Code Formatting (indentation, braces, white spaces and blank lines)
  • Find & Replace in Files
  • Tasks
  • Project Include Path
  • Problems View
  • DnD or Open Explorer Files
  • Easy Create New File
  • Code Assist for Include Content

 

2.Editor and File Management Features
  • Getters/Setters Functions
  • Override/Implement Functions
  • New PHP Class/Interface
 

 

3.JavaScript Support
  • Syntax Coloring
  • Basic Code Assist in JavaScript Blocks
  • View JS Elements in PHP/HTML Outline
 

 

4.HTML Support
  • WYSIWYG Editing
  • Syntax Coloring
  • Code Assist
  • Code Folding
  • Drag and Drop HTML Components
  • Design and Source View
  • Properties View

 

5.Source Control
  • Local History
  • CVS
  • Subversion

 

 6.Refactoring
  • Move Files and Folders
  • Rename Files Classes, Function and Variables
  • Organize Includes
 

 

7.PHPUnit Testing Support
  • Test Case / Suite Code Generation
  • Test Results Visual Support
  • Stack Trace and Filtering
 

 

8.Debugging
  • Local Debugging
  • Web Server Debugging
  • Local Deployment
  • Text Encoding Support
  • Tunneling Support
  • Web Servers Management
  • File Content Transfer (Use Local/Server Copy)
  • SSL Communication
  • Browser Toolbar Support
  • PHP Executable Profiler
  • Web Server Profiler
  • Code Coverage

 

9.Deployment Support for Remote Systems
  • FTP
  • SFTP
 

 

10.SQL / Database Support
  • Query editor – syntax coloring, syntax code assist
  • New Connection Intuitive Wizard
  • Editable table viewer
  • Objects tree – Tables, views
  • JDBC drivers
 

 

11.Miscellaneous
  • Advanced PHP code analyzer
  • RSS Reader
  • Web Services Editor
  • Web Services support (Wizard and Inspection)
  • PHPDocumentor Support
  • BIRT Integration (Code assist, Example Project, Templates)
  • Java Bridge – Code Assist for Java Classes and Packages
 

 

12.Zend Platform Integration
  • Basic Integration (Open Platform GUI)
  • Events List View
  • Debug / Profile Events
  • Automatic Allow Debugging/Tunneling on Server (using WSDL)
  • Platform API

 

13.Zend Framework Integration
  • Code Assist
  • Framework Project
  • Code Templates
  • Example Project
  • MVC View
  • MVC Code Generation
 

 

14.Other Integration
  • Zend Code Gallery Viewer
  • Zend Code Gallery Interactive (suggest, vote)
  • Zend Guard integration

อ่าน feature มายืดยาวสนใจใช้ ZendStudio กันบ้างหรือยังครับ ถ้าพอจะมีตังค์ก้อซื้อหามาใช้กันได้นะครับ รับรองไม่ผิดหวังแน่นอน

 

Zend หลายคนคงคุ้นหูแต่นึกไม่ออกว่าคืออะไร หากถามว่ารู้จัก PHP มั๊ย หลายคนก้อร้องอ๋อขึ้นมาทันที Zend เป็นบริษัทที่พัฒนา Zend Platform (PHP) และผลิตภัณฑ์อื่นๆ เช่น Zend Optimizer, Zend Gard, Zend Studio เป็นต้น เอาล่ะวันนี้ผมพามาชำแหละผลิตภัณฑ์อีกตัวหนึ่งซึ่งได้รับความนิยมไม่แพ้กันและที่สำคัญเป็นจุดกำเนิดการพัฒนาเว็บแอพลิเคชั่นแบบ MVC ของ PHP เลยทีเดียว (ไม่นับ CakePHP นะ) ผลิตภัณฑ์ที่ว่าคือ Zend Framework ปัจจุบันพัฒนามาจนถึงรุ่น 1.7 แล้วครับ ขึ้นชื่อว่า Framework ก้อคงจะทราบกันดีอยู่แล้วว่าจะต้องมีส่วนขยายและคอมโพเน้นที่ไม่มีใน PHP ปกติอย่างแน่นอน เอาล่ะวันนี้เราจะมาดูกัน

ทำความรู้จักกับ Zend Framework กันก่อน Zend Framework เป็นส่วนขยายของ PHP ซึ่งพัฒนาบนพื้นฐานของ object oriented programming โดยมุ่งพัฒนาให้เกิดความปลอดภัย มีสเถียรภาพ และง่ายต่อการพัฒนาแอพลิเคชั่นในแบบ Web 2.0 และ Web Service นอกจากนี้ยังรวมเอา APIs จากบริษัทชึ้นนำอย่าง Google, Amazon, Yahoo, Flickr และ APIs สำหรับระบบแคตตาล็อกสินค้าอย่าง StrikeIron และ ProgrammableWeb เป็นต้น Zend Framework พัฒนาโดยอาศัยหลักคิดแบบเรียบง่าย เพื่อให้เว็บแอพลิเคชั่นที่พัฒนามีขนาดเล็กและเบา ไลบรารีและคอมโพเน้นไม่ขึ้นต่อกันมากนัก ซึ่งคอมโพเน้นประมาณ 4 ใน 5 ของเว็บแอพลเคชั่นจะถูกรวบรวมไว้ให้แล้วนักพัฒนาเพียงพัฒนาเพิ่มอีก 20% ก้อจะได้เว็บแอพลิเคชั่นที่คุณหรือลูกค้าต้องการ ซึ่งทำให้การพัฒนาโปรแกรมทำได้รวดเร็วยิ่งขึ้น

คุณสมบัติเด่นที่ Zend Framework มีให้ใช้พัฒนาเว็บแอพลิเคชั่น
– AJAX และสนับสนุน JSON
– Search ใช้ Lucense search engine
– Syndication สามารถส่งออกรูปแบบข้อมูลและง่ายต่อการอ่านข้อมูลที่เว็บ 2.0 กำลังเป็นที่นิยม
– Web Services สนับสนุนการพัฒนา Web Service และการให้บริการ  Web Service
– มี OO PHP5 Class และ Library ที่มีคุณภาพสูง เพื่อให้ง่ายพัฒนาแอพลิเคชั่นซึ่งสนับสนุน design pattern, unit testing

คอมโพเน้นที่ Zend Framework มีให้
– MVC (Model-View-Controller) ได้แก่ Zend_Controller, Zend_Controller_Action, Zend_Controller_Dispatcher, Zend_Controller_Plugin, Zend_Controller_RewriteRouter, Zend_View, Zend_Http_Request, Zend_Http_Response
– Database ได้แก่ Zend_Db, Zend_Db_Table
– Internationalization (i18n) and Localization (l10n) ได้แก่ Zend_Date, Zend_Locale, Zend_Measure, Zend_Translate
– Authentication, Authorization และ Session management ได้แก่ Zend_Acl, Zend_Authentication, Zend_Session
– Web และ Web Service ได้แก่ Zend_Feed, Zend_Rest_Client, Zend_Service, Zend_XmlRpc_Client, Zend_Gdata, Zend_Http_Client, Zend_Http_Server, Zend_Rest_Server, Zend_Server_Documentor, Zend_Server_Reflection, Zend_Soap_Server, Zend_XmlRpc_Serve และ Zend_Uri
– Mail, Format และ Search ได้แก่ Zend_Json, Zend_Pdf, Zend_Mail, Zend_Mime, Zend_Search_Lucene
– Core Infrastructure ได้แก่ Zend_Cache, Zend_Config, Zend_Console_Getopt, Zend_Log, Zend_Memory, Zend_Debug, Zend_Environment, Zend_Loader, Zend_Registry, Zend_Version, Zend_Filter, Zend_Validate

ใครใช้ Zend Framework บ้าง
– Bwin Games AB
– FOX Interactive Media
– Magento
– Indianapolis Motor Speedway
– Right Media
– IBM

สถิติเกี่ยวกับ Zend Framework
– ดาวน์โหลดมากกว่า 7 ล้านครั้ง
– มี Contributor มากกว่า 500 ราย
– มีหน้าเว็บที่กล่าวถึง Zend Studio มากกว่า 1000 หน้า
– มีตัวอย่างมากกว่า 500 ตัวอย่าง
– มีจำนวน Hits มากกว่า 750 Hits ใน Technorati
– มีโครงการซอฟต์แวร์บน SourceForge ที่ใช้ Zend Framework เป็นพื้นฐานในการพัฒนา มากกว่า 60 โครงการ
– มีโครงการซอฟต์แวร์บน Google Code ที่ใช้ Zend Framework เป็นพื้นฐานในการพัฒนา มากกว่า 30 โครงการ
– มากกว่า 30000 Issues ที่ได้รับการแก้ไขในระบบ Issue Tracker

เขียนมายาวยืดมีใครใช้ Zend Framework กันบ้าง ขอเสียงหน่อยครับ เกือบลืมครับ ดาวน์โหลด Zend Framework ได้ที่ http://framework.zend.com

ข่าวจาก blognone : ผมเชื่อว่าสิ่งหนึ่งที่หลายๆ คนในเว็บนี้พยายามบอกกับคนในชุมชนคือไมโครซอฟท์กับโลกโอเพนซอร์สไม่ได้เป็น ศัตรูกันแบบความดีและความชั่ว แม้ผลิตภัณฑ์หลายๆ อย่างของทั้งสองค่ายจะทับซ้อนกัน แต่ก็ยังคงความร่วมมือกันต่อไปได้ในอีกหลายๆ ส่วน และข่าวในวันนี้ก็ตอกย้ำภาพนี้อีกครั้ง เมื่อทางไมโครซอฟท์ได้ส่งซอร์สโค้ดในส่วนของ ADOdb ซึ่งเป็นไลบรารีเชื่อมต่อระบบฐานข้อมูลในภาษา PHP ให้กับทางโครงการ

ซอร์สโค้ดที่ส่งให้นี้ใช้สัญญาอนุญาตแบบ LGPL ทำให้คนที่ต้องการใช้ซอฟต์แวร์นี้สามารถนำไปใช้งานได้โดยไม่ต้องจ่ายเงินใดๆ ให้กับไมโครซอฟท์แม้จะนำไปใช้งานในซอฟต์แวร์ปิดก็ตามที อีกทั้งในงาน OSCON ปีนี้ทางไมโครซอฟท์ยังระบุว่ายังมีแพตซ์อีกจำนวนมากที่เกี่ยวกับภาษา PHP กำลังจะตามมา

พร้อมๆ กับข่าวนี้ ทางไมโครซอฟท์ก็สมัครเข้าเป็นสมาชิกของ Apache Foundation ด้วยค่าสมาชิก 100,000 ดอลลาร์ต่อปี และประกาศเข้าร่วมพัฒนาโครงการ POI ซึ่งเป็นชุดไลบรารีภาษาจาวาที่ใช้ในการเข้าถึงไฟล์ของไมโครซอฟท์ออฟฟิศ

ข่าวดีกว่าทั้งสองข่าวนั้นอีกคือไมโครซอฟท์ตกลงขยายโครงการ Microsoft Open Specification Promise ที่เปิดให้นักพัฒนาภายนอกเข้าถึงสเปคของไมโครซอฟท์ได้ฟรี โดยก่อนหน้านี้โปรโตคอลจำนวนมากต้องซื้อจากไมโครซอฟท์โดยเจรจาค่าใช้จ่าย เป็นครั้งๆ ไป เช่นเมื่อครั้งที่ทาง Samba ได้เข้าไปอ่านเอกสารของโปรโตคอล SMB

 

      เครื่องมือในการพัฒนาโปรแกรมที่เป็นโอเพนซอร์สยอดนิยมอย่าง Eclipse นั้นได้ออกเวอร์ชันล่าสุดคือ 3.4 แล้ว ภายใต้ชื่อ Ganymede (อ่านว่า แกนีมีด) ซึ่งเป็นการรวมโปรเจคย่อยต่างๆที่มีอยู่มากมายใน Eclipse เพื่อความเข้ากันได้ของโปรเจคต่างๆ

โดยฟีเจอร์ใหม่ๆที่สำคัญก็มีดังนี้

  • ปรับปรุงทางด้าย UI (User Interface) ให้ใช้สามาถใช้ง่านได้รวดเร็วยิ่งขึ้นมาก การย่อ ขยาย ซ่อนส่วนต่าง ๆ ของเครื่องมือพัฒนา ทำได้ดีกว่าเดิม เป็นผลดีสำหรับโปรเจคที่ต้องการใช้งานด้านภาพมากๆ อย่าง modeling หรือ uml
  • เปลี่ยนไปใช้ JDT compiler ซึ่งทำให้การทำงานโดยรวมเร็วขึ้น ใช้ความสามารถของ multi-core CPU ทั้งหลายได้เต็มที่
  • Alt+Shift+B หรือที่ใช้ชื่อว่า Breadcrumb เพื่อใช้ในการเลือกไฟล์ แพคเกจหรือโปรเจคที่ต้องการ โดยไม่ต้องพึ่งพาเมาส์อีกต่อไป
  • สามารถ Import/Export ตัว Launch ได้แล้ว(กรี๊ด) เหมาะสำหรับคนที่ทำงานในหลายโปรเจคและมีตัว Launch ต่างๆกันไป
  • แสดงความเร็วในการใช้ทำงานของ JUnit ในแต่ละเทสเคส
  • โปรเจคน้องใหม่ไฟแรง ECF ซึ่งเป็นการรวม IM, IRC รวมถึง Bittorrent เข้ามาในตัว IDE ด้วย โดยเราสามารถนั่งคุยกับเพื่อนร่วมโปรเจค ส่งหน้าจอ ส่งไฟล์ รวมถึงการคุยผ่านระบบอื่นๆข้างนอกอย่าง MSN, GTalk, Skype หรือแม้แต่ VOIP ได้ด้วย รูป1 รูป2 wiki

        สำหรับโปรเจค Eclipse นั้น มีกำหนดจะออกเวอร์ชันใหม่ในช่วงเดือนมิถุนายนของทุกปี โดยใช้โคดเนมเป็นชื่อของดวงจันทร์บนดาวเสาร์ คือ แกนีมีด, ยูโรปา, คัลลิสโตและไอโอ

ที่มา – Eclipse Ganymede Project