Tag Archives: php

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

MySQL 5.7 的 Pipeline 查詢加速

在「MySQL 5.7.12 – Part 2: Improving the MySQL Protocol」這邊看到介紹 MySQL 的 Asynchronous API,藉由 pipeline 加速查詢。 本來的: res_1 = conn.query("DO 1"); res_2 = conn.query("DO 2"); 會產生這樣的 flow: 而 Asynchronous API 可以這樣寫,先把兩個 SQL query 都丟出去,然後等結果: hndl_1 = conn.query_send("DO 1"); hndl_2 = conn.query_send("DO … Continue reading

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

PHP 的 Composer 推出 1.0 版

目前 PHP 上最重量級的軟體,Composer,推出 1.0 版了:「Composer goes Gold」。 然後作者女朋友想到奇怪的點子: My girlfriend had a brilliant idea, and a few days and a couple express deliveries later here we are. We made an actual Composer gold master copy of the 1.0 release, on … Continue reading

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

用 prestissimo 加速 PHP Composer 的下載速度

在「碼天狗週刊 #33」上看到的「prestissimo」這個軟體,可以平行下載 Composer 所需要的軟體而讓速度變快。作者測試 Laravel 的安裝: $ composer create-project laravel/laravel laravel1 --no-progress --profile --prefer-dist 從 288 秒變成 26 秒:(這種 benchmark 跟地點應該有關係,看作者似乎是日本人?不知道是不是在日本測的...) 感覺應該要變成 Composer 的內建功能才對?

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