起步 學習php擴充套件開發的背景

2021-09-17 00:03:42 字數 1143 閱讀 9609

php是解釋性語言,不需要編譯。對於用php寫的產品,如果需要直接原始碼安裝到客戶的執行環境中,則存在很大的安全隱患。客戶甚至可以把你的產品直接做二次部署或者銷售。目前我們公司就遇到這個問題。

1. 利用zend guard2.開發php擴充套件

php是用c語言實現的,php流行的很大乙個原因也是因為有大量開發者通過擴充套件實現大量通用的功能供廣大社群開發者使用。php擴充套件開發的意義和好處,鳥哥也在其部落格中有過闡述:用c/c++擴充套件你的php

3、公司產品的分析

進行php擴充套件開發,首先需要有不錯的c/c++基礎,同時也需要熟悉php擴充套件api。有一定的技術門檻,同樣對於乙個以php為主要技術棧的初創性公司來說,需要考慮技術和時間成本。

php擴充套件化的優勢:

php擴充套件化的劣勢:

通過討論和分析我們目前產品的情況,如圖所示:

思路:我們首要目標是保證產品系統的私隱性,即我們會在擴充套件中對使用者的一些資訊和許可權進行校驗。同時,為了保證使用者不能繞過我們的校驗,則需要擴充套件中的功能是系統必須的,使用者如果需要重寫,需要很大的成本。

a、起初,討論過程中,大家的意見都是建議盡量少的**改動,把入口進行擴充套件化。但是我們目前系統是基於yii開發的,如果更改yii框架中的入口內容,這樣做無法解決問題:1、對於熟悉yii框架的開發人員來說,他可以輕易繞過你的擴充套件內容。2、不利用後續yii框架的公升級。

b、第二種方案配置檔案擴充套件化,第一反應,把配置檔案放在擴充套件中,如果去掉擴充套件,系統就無法正常執行。但是,仔細思考後,就發現,無論配置資訊本地加密,還是通過擴充套件遠端獲取,最終通過除錯,都能在程式中獲得配置的具體資訊,這樣就能直接繞過我們的擴充套件,即我們的校驗就無效了。

c、最後我們決定,將基礎服務部分的內容進行擴充套件化。這樣既能不影響容易變更的業務邏輯的開發效率,同時也增加了系統的私隱性和基礎服務的效率。擴充套件化的服務越多,使用者需要破解和覆蓋的功能越多,使用者的開發成本就越大。

php擴充套件開發

php擴充套件 pecl 跟php引擎一樣都是使用c語言開發。php核心開發組成員鳥哥laruence使用的是vim進行php開發。書籍 案例 php src ext pecl開發郵件組 盡量編寫一些phpt測試用例,php src tests下有很多參考.測試時用 enable debug編譯ph...

php擴充套件開發

二 php擴充套件開發 擴充套件開發流程 生成開發骨架 修改config.m4 編碼 編譯擴充套件為so 修改php.ini 1.生成開發骨架 1.1 進入擴充套件目錄 cd php 7.0.1 ext 1.2 用.ext skel生成骨架 ext skel extname module 1.3 修...

PHP擴充套件開發

php function say hello len spprintf strg,0,hello s n arg return stringl strg,len,0 1.引數接收 這裡接收函式的引數需要通過zend parse parameter函式解析,第乙個引數指定使用者傳入say hello函...