深入php核心二(可擴充性)

來源:互聯網
上載者:User

綜上所述,外部模組非常適合開發第三方產品,較少使用的附加的小功能或者僅僅是調試等這些用途。為了迅速開發一些附加功能,外部模組是最佳方式。但對於一些經常使用的、實現較大的,代碼較為複雜的應用,那就有些得不償失了。

第三方可能會考慮在 php.ini 檔案中使用擴充標籤來建立一個新的外部模組。這些外部模組完全同主PHP 包分離,這一點非常適合應用於一些商業環境。商業性的發行商可以僅發送這些外部模組而不必再額外建立那些並不允許綁定這些商業模組的PHP 二進位代碼。

內建模組

內建模組被直接編譯進 PHP 並存在於每一個 PHP 處理請求當中。它們的功能在指令碼開始運行時立即生效。和外部模組一樣,內建模組也有各有利弊,列表如下:

優點

缺點

無需專門手動載入,功能即時生效。

修改內建模組時需要重新編譯PHP。

無需額外的磁碟檔案,所有功能均內建在 PHP 二進位代碼當中。

PHP 二進位檔案會變大並且會消耗更多的記憶體。

Zend 引擎

當然,你也能直接在 Zend 引擎裡面進行擴充。如果你需要在語言特性方面做些改動或者是需要在語言核心內建一些特別的功能,那麼這就是一種很好的方式。但一般情況下應該儘力避免對 Zend 引擎的修改。這裡面的改動會導致和其他代碼的不相容,而且幾乎沒有人會適應打過特殊補丁的Zend 引擎。況且這些改動與主 PHP 原始碼是不可分割的,因此就有可能在下一次的官方的原始碼更新中被覆蓋掉。因此,這種方式通常被認為是“不良的習慣”。由於使用極其稀少,本章將不再對此進行贅述。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.