ADOdb 是 PHP 經典的資料庫抽象層,但其龐大的檔案結構常讓部署變得繁瑣。AdodbZip 類透過 PHP Stream Wrapper 機制,實現 ADOdb 程式碼的自動下載、快取、解壓與載入,極大簡化專案初始化流程。
$zip_url,首次執行即自動完成下載解壓。init() 方法自動處理連線與字元集設定。<?php
include_once 'AdodbZip.php';
// 初始化並取得 ADOdb 連線物件
$db = AdodbZip::init(NewADOConnection('mysqli'));
// 直接使用 ADOdb API
echo $db->GetOne('SELECT NOW()');
?>
<?php
// 必填:ADOdb ZIP 下載位址
AdodbZip::$zip_url = 'https://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-520-for-php5/adodb520.zip/download';
// 選填:自訂快取目錄(預設 sys_get_temp_dir().'/adodb/')
AdodbZip::$extract_dir = '/var/www/cache/adodb/adodb5';
// 資料庫連線參數
AdodbZip::$server = 'localhost';
AdodbZip::$user = 'db_user';
AdodbZip::$pwd = 'db_pass';
AdodbZip::$db = 'my_database';
AdodbZip::$charset = 'utf8mb4';
?>
類別實作了 stream_wrapper_register('AdodbZip', 'AdodbZip'),註冊自定義協議 adodbzip://。當 require_once 'adodbzip://adodb.inc.php' 被呼叫時,stream_open() 會:
$zip_file。$extract_dir。fopen() 開啟本地檔案並回傳資源控制代碼。zip 擴展與 allow_url_fopen。$zip_file 指向本地檔案,避免首次請求超時。AdodbZip 以 Stream Wrapper 為核心,將「下載-解壓-載入」封裝為透明操作,是維護老專案或快速原型開發的利器。若專案已使用 Composer,建議直接 composer require adodb/adodb 取而代之。