(转)PHP Pear & Pecl & Perl CPAN
时间:2011-07-12
来源:互联网
原文链接:http://c9s.blogspot.com/2011/07/php-pear-pecl-perl-cpan.html
雖然說 PHP 有類似 Perl 的 CPAN 的 Pear 以及 Pecl 套件庫可用。
但不管是 Pear 或是 Pecl 套件數目都不多,有許多套件都是 Alpha 或是 Beta 的狀態,許多套件也未含詳細文件。
Pecl 的套件數: 265
Pear 的套件數: 569
所以我好奇去查了一下 Perl CPAN 的模組數:
69899 Uploads
22954 Distributions
96895 Modules
9060 Uploaders
這個數字比起來實在是相差太多。
我想原因有幾個,大多 PHP Programmer 少有上傳套件的習慣,也沒有這樣的需求。
50% 以上的 PHP Programmer 都是將 PHP 跟 HTML 合併在一起寫死,頂多也只會用到 MySQL ,所以更不可能作成模組上傳,就算整理出來作成套件,更沒有上傳到 Pear 的習慣。
Pear 以及 Pecl 其實並沒有提供一個很好的文件平台,也沒有制式化的文件檢查
Pear 以及 Pecl 的上傳其實沒有 Unit Test 的程序,所有上傳上去的東西,並不會在不同的平台上測試,所以沒有人可以保證你的套件在不同平台上是不是可以運行。 題外話: 其實 PHPUnit 很不錯,文件很完整、詳細,但是不知為何沒有人想要把它整合至 Pear 或是 Pecl 。
此外,Pear, Pecl 的製作門檻,對大多 PHP Programmer 的程度來說也許算高 (?) ,不得而知。
我想 Pear 或是 Pecl 的平台也許是類似 vim.org 遇到的情況 - 急就章的方式,寫了許多相當 unsafe, dirty 的網站程式,也就更不可能整理程式碼開放出來讓大家改進,也因為夠 dirty 夠 unsafe,所以就更不想去動他,所以就造成了僵持不下的狀況 (?) 。 (不得而知)
之前上 Pear 註冊帳號,發現 Pear 對於使用者註冊帳號這檔事情相當嚴格(也許是 PHP Programmer 濫竽充數的關係 ? ),Pear 以及 Pecl 需要經過人工審核,確實你真的有套件要上傳、有 Bug 要 Report,經過 2 分鐘至幾天的審核通過最後才可以上傳套件。
(也就是你如果不是認真的,就別來亂之類的意思 XD )
CPAN
Perl 的 CPAN 文化很不一樣,帳號註冊相對的比較自由,模組上傳也很自由,你要為模組取什麼名字都可以,你要上傳什麼樣無釐頭的模組都可以 (Acme:: 開頭模組 )。
在 CPAN 上頭,每一天都有人發展新的模組,每一天都有好幾百個模組被上傳、更新,舊的模組若不適用,就會被新的模組取而代之。 在 Twitter 上有 cpan_new 帳號,會自動將所有剛上傳的模組發佈出來,各式各樣的 Service 都有可能會寫出模組可呼應 (Net:: 開頭或是 WWW:: 開頭的模組) 。
模組的相關資訊也容易被整合至 CPAN:

在上頭你可以看到每個 Release 的狀況,可回溯到每個版本,或是查看測試報表,版本控制相關資訊 、Rating、 Review 等等資訊。
雖然 CPAN 上有些模組是壞的、沒有維護,但是只要作者有撰寫測試,就可以直接在 cpan.org 上看到測試報告,並且如果模組在平台上測試時如果沒有通過測試,就不會安裝到系統上,可以保證你系統的穩定度。
CPAN 上的 Smoke Test 也會將你的模組於不同平台、不同的 Perl 版本來測試並產生報表,以 Data::Flow 模組來說:

如果對於該模組的相依模組穩定度感到不安心,你也可以透過 Dependency 頁面去查看所有相依模組的穩定度 ( 譬如像 Ruby 常有相依模組壞掉的狀況 ):

此外 CPAN 也透過 POD 的文件格式來製作模組文件,在文件中各種的 Refer 都可以正確的被導向到正確的頁面,且由於 POD 結構中包含許多格式,也因此文件的架構就會比較清楚、容易閱讀。

除此之外,也有較完整的 Bug Tracker ,是由 Best Practical 所開發的 RT (Request Tracker) 系統 (以 Moose 的 RT 頁面為例):

另外如果你需要在離線時安裝、瀏覽模組,也有 CPANMini 可使用,可製作一份最小的 CPAN Mirror 於你的電腦上安裝使用,連線時,也可再透過 CPANMini 更新。
雖然說 PHP 有類似 Perl 的 CPAN 的 Pear 以及 Pecl 套件庫可用。
但不管是 Pear 或是 Pecl 套件數目都不多,有許多套件都是 Alpha 或是 Beta 的狀態,許多套件也未含詳細文件。
Pecl 的套件數: 265
Pear 的套件數: 569
所以我好奇去查了一下 Perl CPAN 的模組數:
69899 Uploads
22954 Distributions
96895 Modules
9060 Uploaders
這個數字比起來實在是相差太多。
我想原因有幾個,大多 PHP Programmer 少有上傳套件的習慣,也沒有這樣的需求。
50% 以上的 PHP Programmer 都是將 PHP 跟 HTML 合併在一起寫死,頂多也只會用到 MySQL ,所以更不可能作成模組上傳,就算整理出來作成套件,更沒有上傳到 Pear 的習慣。
Pear 以及 Pecl 其實並沒有提供一個很好的文件平台,也沒有制式化的文件檢查
Pear 以及 Pecl 的上傳其實沒有 Unit Test 的程序,所有上傳上去的東西,並不會在不同的平台上測試,所以沒有人可以保證你的套件在不同平台上是不是可以運行。 題外話: 其實 PHPUnit 很不錯,文件很完整、詳細,但是不知為何沒有人想要把它整合至 Pear 或是 Pecl 。
此外,Pear, Pecl 的製作門檻,對大多 PHP Programmer 的程度來說也許算高 (?) ,不得而知。
我想 Pear 或是 Pecl 的平台也許是類似 vim.org 遇到的情況 - 急就章的方式,寫了許多相當 unsafe, dirty 的網站程式,也就更不可能整理程式碼開放出來讓大家改進,也因為夠 dirty 夠 unsafe,所以就更不想去動他,所以就造成了僵持不下的狀況 (?) 。 (不得而知)
之前上 Pear 註冊帳號,發現 Pear 對於使用者註冊帳號這檔事情相當嚴格(也許是 PHP Programmer 濫竽充數的關係 ? ),Pear 以及 Pecl 需要經過人工審核,確實你真的有套件要上傳、有 Bug 要 Report,經過 2 分鐘至幾天的審核通過最後才可以上傳套件。
(也就是你如果不是認真的,就別來亂之類的意思 XD )
CPAN
Perl 的 CPAN 文化很不一樣,帳號註冊相對的比較自由,模組上傳也很自由,你要為模組取什麼名字都可以,你要上傳什麼樣無釐頭的模組都可以 (Acme:: 開頭模組 )。
在 CPAN 上頭,每一天都有人發展新的模組,每一天都有好幾百個模組被上傳、更新,舊的模組若不適用,就會被新的模組取而代之。 在 Twitter 上有 cpan_new 帳號,會自動將所有剛上傳的模組發佈出來,各式各樣的 Service 都有可能會寫出模組可呼應 (Net:: 開頭或是 WWW:: 開頭的模組) 。
模組的相關資訊也容易被整合至 CPAN:

在上頭你可以看到每個 Release 的狀況,可回溯到每個版本,或是查看測試報表,版本控制相關資訊 、Rating、 Review 等等資訊。
雖然 CPAN 上有些模組是壞的、沒有維護,但是只要作者有撰寫測試,就可以直接在 cpan.org 上看到測試報告,並且如果模組在平台上測試時如果沒有通過測試,就不會安裝到系統上,可以保證你系統的穩定度。
CPAN 上的 Smoke Test 也會將你的模組於不同平台、不同的 Perl 版本來測試並產生報表,以 Data::Flow 模組來說:

如果對於該模組的相依模組穩定度感到不安心,你也可以透過 Dependency 頁面去查看所有相依模組的穩定度 ( 譬如像 Ruby 常有相依模組壞掉的狀況 ):

此外 CPAN 也透過 POD 的文件格式來製作模組文件,在文件中各種的 Refer 都可以正確的被導向到正確的頁面,且由於 POD 結構中包含許多格式,也因此文件的架構就會比較清楚、容易閱讀。

除此之外,也有較完整的 Bug Tracker ,是由 Best Practical 所開發的 RT (Request Tracker) 系統 (以 Moose 的 RT 頁面為例):

另外如果你需要在離線時安裝、瀏覽模組,也有 CPANMini 可使用,可製作一份最小的 CPAN Mirror 於你的電腦上安裝使用,連線時,也可再透過 CPANMini 更新。
作者: iakuf 发布时间: 2011-07-12
Perl 的模块命名机制很好,或者叫 namespace? 起名字这种事最痛苦了

作者: zhlong8 发布时间: 2011-07-12
记得有人曾说,如果没有CPAN,perl或许就不会有今天的成绩
作者: 首天 发布时间: 2011-07-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28