Tag Archives: php

把 PHP 升級到 7.1

把 blog 這台機器的 PHP 升級到 7.1 了。 據說會再快一些,像是「PHP 7.1 vs. 7.0 performance benchmarks with Symfony」這邊提到的: 看起來沒有 PHP 5.6 升級到 PHP 7.0 那麼大,不過還是有一直在改善。

Posted in Blog, Computer, Murmuring, Network, Programming, Software | Tagged , , , , | Leave a comment

PHP 的 Unquoted Strings 將在 PHP 8 被移除

Twitter 上看到 PHP 的 unquoted string 被視為字串的功能將被移除:「PHP RFC: Deprecate and Remove Bareword (Unquoted) Strings」。 常見的情境是 $_GET[bar] 這樣的用法被視為與 $_GET["bar"] 相同... 超奇怪的功能,而現在這個功能已經投票通過,將會在 7.2 被列為 deprecated,到 8 就會拿掉。 這個功能本來是標示 E_NOTICE,但比較特別的是,雖然是列為 deprecated,PHP 7.2 預定會標示為 E_WARNING 而不是 E_DEPRECATED。主要是這次的兩個目標互相衝突 (可以參考原文),取比較有效的那個 (因為 PHP 8 就不會有這個問題了,所以 PHP 7.2 … Continue reading

Posted in Computer, Murmuring, Programming, Security | Tagged , , , , , , , | Leave a comment

PHP 的 BotMan

看到「PHP BotMan」這個專案 (A framework agnostic PHP library to build chat bots),把各家 IM 工具都串起來讓你直接接上去用,在 initialize 完後,就可以這樣寫: $botman->hears('keyword', function(BotMan $bot) { // do something to respond to message $bot->reply('You used a keyword!'); }); 或是: $botman->fallback(function(BotMan $bot) { return $bot->reply('Sorry I do not … Continue reading

Posted in Computer, Murmuring, Network, Programming, Software | Tagged , , , , , | Leave a comment

Tumber 的 PHP 7

Tumblr 發表了一篇在導入 PHP 7 後的感想:「PHP 7 at Tumblr」。從這兩張圖就可以看得很明白了,Yahoo! 的工程師很滿意結果: 又多了一個推薦的評價...

Posted in Computer, Murmuring, Network, Programming, Social, Software, WWW | Tagged , , , , | Leave a comment

Nginx + FastCGI + Trac

先前試著逼自己用 Phabricator,用了一個多月後發現設計的邏輯還是跟 Trac 差了不少,算是為了 Facebook 特化的產品吧。在這一個月查資料的過程也發現當初 Wikimedia 要採用的時候也花了不少力氣送 patch 回官方,然後針對不少地方客製化調整。 另外比較痛的地方是 plugin 的支援能力還沒有很好,變成很多東西都要改主體... 而且效能也不太好 (不支援 PHP 7.0 還蠻痛的),在比較低階的 VPS 上跑特別明顯。 這幾天花了點時間把 Trac 給架起來,之前都是用 FreeBSD ports 架,但已經愈來愈沒有再接觸 FreeBSD 了,所以這次在 Ubuntu 上用 pyenv 裝起來再用 pip 裝起來。 另外一個跟之前不同的,是先前都用 Apache 接 mod_wsgi,在低階的 VPS 上則是要找省資源的方案,這次則是用 … Continue reading

Posted in Computer, Murmuring, Network, Software, WWW | Tagged , , , , , , , , , , , , , , , , , | 1 Comment

PHP 的 JIT 翻修計畫

在「JIT for PHP project」這邊看到 PHP 新的翻修計畫: I'm glad to say that we have started a new JIT for PHP project and hope to deliver some useful results for the next PHP version (probably 8.0). We are very early in the … Continue reading

Posted in Computer, Murmuring, Programming, Software | Tagged , , , , | Leave a comment

舊 bug 新名字:httpoxy

依照慣例,security issue 都會取個名字,這次叫做 httpoxy:「A CGI application vulnerability for PHP, Go, Python and others」。 事情發生在兩個命名變數上的衝突: RFC 3875 (The Common Gateway Interface (CGI) Version 1.1) 定義了 CGI 環境會把 Header 裡的 Proxy 欄位放到環境變數裡的 HTTP_PROXY。 而很多程式會拿環境變數裡的 HTTP_PROXY 當作 proxy 設定。 這件事情 2001 年在 libwww-perl … Continue reading

Posted in Computer, Murmuring, Network, Security, Software, WWW | Tagged , , , , , , , , , , , , , | Leave a comment

離 PHP 5.5 官方中止支援不到兩個禮拜了...

在 PHP 網站上的「Supported Versions」可以看到 PHP 5.5 將要停止支援了: PHP 5.6 因為是 PHP 5 的最後一個版本,有特殊待遇,時間會拉的比較長 (功能性更新多四個月,安全性更新多一年): As it is the final PHP 5 release, support for PHP 5.6 has been extended: active support will run for an additional four months, and the … Continue reading

Posted in Computer, Murmuring, Programming, Software | Tagged , , , , , , , , | Leave a comment

用乾淨的環境跑 Composer

Composer 包太多 module 進去跑會變慢不少 (像是把 xdebug 包進去時),所以自己寫了個小 script 只包必要的東西進去: #!/bin/sh exec php \ -n \ -d 'extension=curl.so' \ -d 'extension=filter.so' \ -d 'extension=hash.so' \ -d 'extension=iconv.so' \ -d 'extension=json.so' \ -d 'extension=openssl.so' \ -d 'extension=phar.so' \ -d 'extension=posix.so' \ -d … Continue reading

Posted in Computer, Murmuring, Network, Programming, Software | Tagged , , | Leave a comment

用 AspectMock 來替換 PHP function...

前幾天下班前同事說小鐵 jaceju 介紹了 Codeception/AspectMock 這個把 PHP function 抽換掉的套件,不需要靠 PECL 另外裝,不過缺點是只能抽換 namespace 裡面的 function... 不過這樣對於補 code coverage 也很夠了 :o 測了一下,寫了個小程式: <?php namespace myscript; require __DIR__ . '/vendor/autoload.php'; \AspectMock\Kernel::getInstance()->init(); use AspectMock\Test; echo time(), "\n"; Test::func(__NAMESPACE__, 'time', 'now'); echo time(), "\n"; 然後跑出來變成: 1466612797 … Continue reading

Posted in Computer, Murmuring, Programming, Software | Tagged , , , , , , , | Leave a comment