Tag Archives: php

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

跑 WordPress 的 PHP 版本統計

在「Why We’re Still Seeing PHP 5.3 In The Wild (Or: PHP Versions, A History)」這邊看到一些有趣的統計資料,雖然是 2015 的舊文章,但因為統計資料是公開的,可以透過同樣方式抓到現在的情況。 作者在 2015 年七月 (大約是月底) 的數字是: $ curl http://api.wordpress.org/stats/php/1.0/ | jq '.' { "5.2": 13.603, "5.3": 32.849, "5.4": 40.1, "5.5": 9.909, "5.6": 3.538 } 剛剛跑的數字是: … Continue reading

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

把系統換成 PHP 7...

PHP 7.0 出兩個月了,應該是時候測試看看跑得如何... 所以剛剛把整個系統換成 PHP 7.0 了。 本來用的是「PPA for PHP 7.0 (deprecated use ppa:ondrej/php)」這個版本,經過標題的指示後改用「PPA for co-installable PHP 5.6 + 7.0」這個版本,看起來是沒什麼大問題。 跑一陣子看看吧。

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