Tag Archives: composer

用乾淨的環境跑 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

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

Composer 出現 lock file out of date 的解法

之前也有遇到,結果 Lorna Jane Mitchell 寫了一篇「Handling Composer "lock file out of date" Warning」給了不少解法。 第一種是 composer upgrade,直接全部升級。 第二種是先用 composer update --dry-run 看看是不是有人加到 composer.json 後忘記更新,如果是的話再用 composer update [package] 處理。 第三種是用 composer update nothing 閉上眼睛更新 hash 值,當作什麼都沒看到 XDDD Sometimes this is the right answer … Continue reading

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

PHP 的生命週期

從 PHP 網站上的「Supported Versions」與「Unsupported Branches」可以看到今年九月初 PHP 5.4 就已經停止維護了 (包括安全性更新也停了)。 在「PHP Versions Stats - 2015 Edition」這邊利用 Packagist 的資料分析,還是可以看到很多人用 PHP 5.3 與 PHP 5.4: 唔,很符合 PHP 社群以及各家 hosting 萬年不更新的使用習慣...?

Posted in Computer, Murmuring, Network, Programming, Security, Software, WWW | Tagged , , , , , | 2 Comments

增加一行程式碼讓 PHP Composer 效率爆增

可以直接看 GitHub 上的 commit log:「Disable GC when computing deps, refs #3482」。 */ public function run() { + gc_disable(); + if ($this->dryRun) { $this->verbose = true; $this->runScripts = false; 下面變成祭典了 XDDD 然後依照「Avoid generating duplicate conflict rules by naderman · Pull Request … Continue reading

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

Composer 的版本選擇方式

Composer 是目前 PHP 世界裡比較紅的套件管理工具,內建了一些 autoload 模組,以及 Packagist 這個巨大的 ecosystem。 在「Installing Composer Packages」這篇文章裡提到要如何在 Composer 裡指定套件的版本。在這之前,你需要先知道什麼是 Semantic Versioning,然後再來看作者的論述。 直接講結論,文章裡推薦用 ~ 的方式指定版本,這通常會是你要的結果:用 ~1.2 表示 >=1.2.0,<2.0.0;而用 ~1.2.3 則可以表示 >=1.2.3, <1.3。 在對付 compatibility 問題時還蠻常見的情況。

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

Semantic Versioning 與 Composer 的應用

在 Nomad PHP EU 上的議程:「Composer: Stability and Semantic Versioning Demystified」,講 Semantic Versioning 在 Composer 上的應用。 投影片還講到了 Composer 處理版本需求互相重疊時的情況,可能會有 conflict 的問題...

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

PHP Composer 的安全性問題

Composer 是 PHP 上新一代的套件管理軟體。 Composer 與之前各種方案不同的地方在於,後面掛了 Packagist 這個 PHP package archivist,讓使用者很方便的取得套件 (以及更新)。 其中有一個功能是 replace,表示我所開發的這個套件「宣稱」可以取代其他套件 (通常是 API compatible)。 看到這個功能的時候,以為是要讓 Packagist 能夠串起連結。畢竟偶而會發生「這個套件最新版是 2008 年了,到底有沒有後續維護啊」的情況。如果 Packagist 官方網站可以串起連結,可以節省開發者時間,而且也可以利用 Packagist 上的熱門度來決定要用哪一個後繼者。 但實際上與預期的不同,Composer 的預設值是會「自動」尋找更新並且真的使用,也就是前幾天被丟出來的議題:「Composer is wide open with a massive security vulnerability」。 攻擊者只要在 Packagist 上面上傳一堆含有惡意程式碼的套件 (並且利用 … Continue reading

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

PSR-4

剛剛看到「Composer now supports PSR-4」才發現有 PSR-4,而且出了好幾個禮拜了... PSR-4: This PSR describes a specification for autoloading classes from file paths. It is fully interoperable, and can be used in addition to any other autoloading specification, including PSR-0. This PSR also describes where to … Continue reading

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