查資料的時候發現有人已經翻譯好 PSR-{0,1,2}:
想要快速了解 PSR 在定義什麼,可以直接看中文版,如果有覺得不懂的地方再去翻英文版的原文敘述。
幹壞事是進步最大的原動力
查資料的時候發現有人已經翻譯好 PSR-{0,1,2}:
想要快速了解 PSR 在定義什麼,可以直接看中文版,如果有覺得不懂的地方再去翻英文版的原文敘述。
一直都知道 HipHop 是拿 compile time 換原始的 PHP 效能,但一直都沒有去找資料,不知道成本有多高,直到剛剛在「Alternative PHP Runtimes」這邊看到...
大概有個概念... :o
本來以為 Zend Framework 1 只會出到 1.11 (以前有說過嗎?),結果剛剛發現 1.12.0rc3,這真是太驚人了 XDDD
這樣看起來 Zend Framework 1.11 與 PHP 5.4 之間的問題就有解了...
一個組織裡要導入 coding standatd & coding style 時是功夫最少的時候,除非有特殊理由,不然我一向都是建議:
不要自己發明 coding standard 與 coding style,如果社群的規範合理,就照著社群的規範走。
社群中比較完整的包括:
第一份文件主要是講 Framework 架構 (class 的命名,以及檔案要怎麼放),第二篇與第三篇則是對 coding standard 與 coding style 訂出規範。
兩份大多數的規範是相同的 (因為 community 已經有習慣了),不過現在感覺起來 PHP-FIG 比較熱鬧一點 (參與的人來自不同的專案),如果讓我推薦的話我會建議用 PSR-{0,1,2}。
Reply to「寫出好維護的 PHP 程式碼」。
前陣子看到的「PHP The Right Way.」網站。網站的開頭就先提到這並不是說明 PHP 怎麼寫才是對的,而是告訴你許多前人經驗所得到的建議:(血淚史 XD)
Disclaimer
There is no canonical way to use PHP. However, this website is a humble display of best practices, available options, and good information. It aims to introduce new PHP developers and to rethink seasoned pros with fresh ideas.
這個網站是導讀性質,告訴你現在 PHP 大約有哪些新東西需要看。
最近比較常提出來的幾個是:
先給連結,PHP 5.4 可以編的版本在這裡:github.com/gslin/php-test-helpers,clone 下來後的安裝方法是:
phpize ./configure make make install
另外自己增加 extensions.ini
:
extension=test_helpers.so
主要是 PHP 內部的資料結構有變動,本來存取的方式要改掉。發了 pull request 但不知道作者會不會收,如果有需要的人可以自己先裝。
會用到 php-test-helpers 是因為寫 test case 的時候要換掉整個 HttpRequest,而 RunKit 不能換系統的 HttpRequest,所以找了不少 extension 發現 php-test-helpers 可以用。
換法是這樣:
set_new_overload(function($name){ if ('HttpRequest' == $name) { return 'My_HttpRequest'; } return $name; });
拿掉可以直接呼叫 unset_new_overload();
整個拔乾淨...
PHP 5.4 前幾天正式釋出了:「PHP 5.4.0 released!」,新增與改變了很多東西。
有些蠻值得注意的地方:
php.ini
。array_combine(array(), array())
不再傳回 FALSE
了,總算是傳回 array()
。[]
表示 array()
了。foo()[0]
變合法語法了。(new Foo)->bar()
變合法語法了。另外記憶體使用量以及效能都有巨大的改善,尤其是對物件的 method 效能改善很多,這對 framework 是好消息。
不過應該還是等 5.4.1 之後再用吧,剛出來的這幾個版本應該有不少人會踩到地雷需要修正...
從「How big are PHP arrays (and values) really? (Hint: BIG!)」這篇看到的。文章本身值得花些時間看過了解,不過對我來說重點在最後面的 SplFixedArray。
PHP 的 Datastructures 說明目前 PHP SPL 所支援的 data structure,在記憶體用量以及效率上面都會比自己實作來的小且快。
可以看到很多都支援 Countable、Iterator,以及 ArrayAccess,代表可以用 foreach()
或是對應的方式存取... 如果自己寫 library 的時候應該要善用這些 SPL。
把 blog 搬回自己的主機上跑,好像沒有快多少...
在看到 PHPConf Taiwan 2011 的議程介紹後,看到有人在推薦 Slim Framework,一連上去就看到包含 anonymous function 的 sample code:
<?php require 'Slim/Slim.php'; $app = new Slim(); $app->get('/hello/:name', function ($name) { echo "Hello, $name!"; }); $app->run(); ?>
然後回頭去翻 PHP 的說明:「Anonymous functions」,發現是從 PHP 5.3 開始支援。
於是在 JavaScript 上常用到的技巧就也可以在 PHP 上用了:(不影響到全域變數與函數空間的方式)
// JavaScript (function(){ // ... })(); // PHP call_user_func(function(){ // ... });
接下來是繼續測試 Slim Framework 了,看起來算是一個不錯的小東西... 之後拿來配合 Heroku 這類的 PasS 快速開發應該會很好用 :o