เมื่อ Laravel Framework 4 กับ Zend Framework 2 อยู่ร่วมกัน

ตัว Laravel Framework 4 เป็น Framework ที่ดีตัวหนึ่งในตลาด PHP Framework แต่ Zend Framework 2 ก็มี components ที่น่าสนใจช่วยให้เราทำงานได้สะดวกมากขึ้น การเอาทั้งสองตัวมาทำงานร่วมกันจึงเป็นเรื่องที่ดี

ขั้นแรกก็สร้าง project ของ Laravel Framework ด้วยคำสั่งของ composer เสียก่อน (อ้างอิง version 4)

composer create-project laravel/laravel

แก้ไขไฟล์ composer.json ของ Laravel Framework เพื่อเพิ่ม Zend Framework 2 จาก Packagist ลงใน project ของเรา (zendframework/zendframework – Packagist)

โดยเพิ่ม

"zendframework/zendframework": "2.3.*@dev"

ลงในส่วน

require

หน้าตาจะประมาณ

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"require": {
"laravel/framework": "4.0.<em>",
"zendframework/zendframework": "2.3.</em>@dev"
},

เสร็จแล้วก็สั่ง composer update

รอจนจบแล้วเขียน autoload use ทดสอบ component ตัว Zend Version มาแสดงผลดูตามด้านล่าง ซึ่งจะได้ตัวเลข version ของ Zend Framework ประมาณ 2.2.2 (ณ วันที่เขียนบทความ)

<?php

use Zend\Version\Version;

class HomeController extends BaseController {
    public function getIndex()
    {
        echo Version::getLatest();
    }
}

 

แก้ไข “call_user_func_array() expects parameter 1 to be a valid callback, non-static method XXX:init() should not be called statically” ใน plugin “Jetpack for WordPress”

จากปัญหา

The following errors were reported: call_user_func_array() expects parameter 1 to be a valid callback, non-static method xxx::init() should not be called statically

ใน plugin “Jetpack for WordPress” ซึ่งเกิดจากการเขียนโค้ดไม่ตรงกับ Strict standards ใน PHP ที่อยู่ๆ ก็มีการเขียนไป call ตัว static method ใน method ที่ไม่ใช่ static ทำให้เกิดข้อผิดพลาดดังกล่าว

ปัญหานี้จะเกิดกับ Class ของ module ใน plugins “Jetpack for WordPress” ทั้งหมด 4 ตัว (ณ ตอนนี้ที่ไล่หาดู) โดยมี Class ดังต่อไปนี้

  • Jetpack_Notifications
  • Jetpack_Post_By_Email
  • Jetpack_Subscriptions
  • Jetpack_Likes

การแก้ไขก็ง่ายๆ ไม่มีอะไรซับซ้อน (ถ้าเข้าใจ)

โดยเพิ่ม “public static” ไปหน้า function &init() ให้เป็น public static function &init() ในไฟล์ subscriptions.php, post-by-email.php, notes.php และ likes.php ซึ่งอยู่ใน wp-content/plugins/jetpack/modules

เพียงแค่นี้ก็จบปัญหาครับ

 

มีอะไรใหม่บ้างใน Drupal 8

จากบทความDrupal 8 is Coming เขียนโดย Alex Rayu

ผมขอสรุปสั้นๆ ว่า Drupal 8 ปรับเปลี่ยนอะไรบ้าง

  • Core CMS จะใช้การพัฒนาบน Symfony framework
  • Theme engine ใช้ Twig PHP template engine
  • รองรับ Mobile ตั้งแต่การติดตั้งเลย (HTML 5 and CSS 3) โดยไม่ต้องลง mobile mobule
  • รองรับไฟล์ media ต่างๆ โดยไม่ต้องลง media mobule
  • มีระบบ Internationalization ที่ดีกว่าเดิม ทำให้สนับสนุน multilingual ได้ดีขึ้น
  • ย้ายการตั้งค่าต่างๆ ไปใช้ CMI

ส่วนอื่นๆ คงตามได้จาก Drupal 8 Updates and How to Help ต่อไปครับ

 

PHP 5.3 เจ้าตายแล้ว และได้เวลา PHP 5.4 เสียที

จาก WordPress Stats จะเป็นว่า PHP 5.2 ยังมีคนใช้อยู่อีกเยอะมาก ซึ่งถูกนำมาใช้งานร่วมกับ WordPress และขณะเดียวกับ w3techs.com ก็รายงานว่า PHP 5.3 เพิ่งจะตีขนาบจนแซง PHP 5.2 ได้ในช่วงต้นปีที่ผ่านมานี้ (PHP version 5.3 is now the most used version, just ahead of 5.2)

แต่สิ่งที่อยากบอกต่อมาก็คือ PHP 5.3 นั้นได้ปล่อยตัว released ในเดือนมิถุนายน 2009 และกว่าจะได้รับความนิยมก็เกือบจะสิ้นสุดการสนับสนุนของ PHP 5.2 พอดีในเดือนธันวาคม 2010 (end-of-life cycle) ซึ่งถือว่าทำได้ค่อนข้างโอเค แต่ในตอนนี้ PHP 5.3 ได้สิ้นสุดการสนับสนุนในเดือนมีนาคม 2013 ที่ผ่านมาไปแล้ว และหลังจากสิ้นสุดการสนับสนุนของ PHP 5.3 นั้น ตัว PHP 5.4 ในตอนนี้มีสถิติคนนำไปใช้ใน production จากการเก็บสถิติของ w3techs.com นั้นมีอยู่ประมาณ 3-4% เท่านั้น และนั้นอาจทำให้เว็บไซต์มากมายอยู่บนความเสี่ยงเรื่องความปลอดภัยจากการไม่ได้รับการสนับสนุนเรื่อง security patch ของตัวภาษา PHP จาก PHP.net อีกต่อไป

2013-04-08_032329

http://w3techs.com/technologies/details/pl-php/5/all – ข้อมูล 8/4/2013

ทางแก้ไขที่ดีที่สุดคือนำโค้ดต่างๆ ที่พัฒนามาปรับแก้ไขให้ตรงตาม Migrating from PHP 5.3.x to PHP 5.4.x ของ PHP 5.4 และ upgrade production ไปใช้ PHP 5.4 ต่อไป

 

Zend Framework 2.0 ออกตัว Stable แล้ว!

หลังจากที่ Zend Framework ออก version 1.0 ออกมาเมื่อปี 2007 ผ่านมา 5 ปี วันนี้ก็ได้เวลาของ version 2.0 เสียที จาก Zend Framework 2.0.0 STABLE Released! และ Changelog: 2.0.0 ผมสรุปสั้นๆ ตามนี้

ใน Zend Framework 2 มีทีมพัฒนาจาก Google, Microsoft, StrikeIron และ partner ต่างๆ มากมายเข้าร่วมพัฒนาเพื่อสร้าง API ติดต่อกับ Web Services ของตัวเองให้ดีมากขึ้น

การเปลี่ยนแปลงใน Zend Framework 2 นั้นมีดังต่อไปนี้

  • สนับสนุน PHP 5.3 ขึ้นไป เพราะใช้ namely namespaces, late static binding, lambda functions และ closures มาพัฒนา เพราะฉะนั้นได้เวลาเรียนรู้กันแล้วครับ (จริงๆ มันควรจะเริ่มกันนานแล้วนะ)
  • 100% Object-oriented code และ Component designed (dependencies on other component) ตอนนี้แยกเดี่ยวๆ ได้ดีมากขึ้น
  • รองรับ Pyrus, Composer, PHPUnit และ Travis CI เพื่อช่วยพัฒนาตัวเว็บ

มี Key Feature ส่วนของ Component ใหม่คือ

  • ModuleManager
    This new module system is designed with flexibility, simplicity, and re-usability in mind
  • ServiceManager
    The Service Locator is a service/object locator, tasked with retrieving other objects.
  • EventManager
    Component designed for the following use cases
    – Implementing simple subject/observer patterns.
    – Implementing Aspect-Oriented designs.
    – Implementing event-driven architectures.

ได้เวลาลองของใหม่แล้วครับพี่น้อง!!!!

Read more