首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PEAR 入門指南:標準化 PHP 代碼、復用套件、框架基類 (PEAR.php、PEAR_Error)

     編輯:PHP 相關知識

什麼是 PEAR

**PHP Extension and Application Repository** — PHP 官方套件庫,類比 Perl CPAN。提供:

  • 分類管理的套件庫 (DB, HTML, Cache, XML, Mail…)。
  • 統一編碼標準 (縮排、命名、註釋、檔案結構)。
  • 兩個核心基類:`PEAR` (通用基類)、`PEAR_Error` (錯誤處理)。

為何使用 PEAR

  1. **代碼復用**:標準化介面,直接 `require_once 'Package/Name.php'` 使用社區成熟套件。
  2. **團隊協作**:統一風格減少認知負擔,Code Review 專注邏輯而非格式。
  3. **框架基礎**:`PEAR` 類模擬解構函數 (`register_shutdown_function`)、錯誤堆疊、靜態屬性單例模式,早期框架 (如早期 Symfony、Zend Framework 1) 均以此為基石。

核心編碼規範 (摘要)

項目規範
縮排4 空格,禁 Tab
控制結構`if (` `for (` 關鍵字後一空格,大括號獨立行,`else if` 寫 `elseif`
函數呼叫`func($a, $b, $c)` 無空格貼緊括號,參數間 `, ` 一空格
函數定義`function foo($a, $b = null) {` 左大括號換行 (One True Brace)
註釋類/方法用 PHPDoc (`/** */`),行內用 `//` 或 `/* */`,禁 `#`
引入檔案無條件 `require_once`,條件 `include_once` (共用同一引入表)
PHP 標籤全程 ``,禁短標籤 ``
檔案頭版權、授權、作者、CVS `$Id$`、Vim modeline
常數命名全大寫底線分隔,前綴套件名 `PACKAGE_CONSTANT`

快速上手:建立符合 PEAR 規範的類

<?php
// File: Net/MyService.php
require_once 'PEAR.php';

class Net_MyService extends PEAR {
    public function __construct($options = []) {
        parent::__construct(); // 註冊 shutdown 解構
        $this->_options = $options;
    }

    public function callApi($endpoint, $data) {
        // 邏輯...
        if ($error) {
            return $this->raiseError('API call failed', 500); // 回傳 PEAR_Error
        }
        return $result;
    }

    // 解構函數模擬 (PHP 4/5 早期無 __destruct)
    public function _Net_MyService() {
        // 清理資源
    }
}

// 使用
$svc = new Net_MyService(['timeout'=>10]);
$result = $svc->callApi('/users', ['id'=>1]);
if (PEAR::isError($result)) {
    die($result->getMessage());
}

PEAR 套件管理器 (安裝/更新/依賴)

# 安裝 pear 套件管理器 (通常隨 PHP 安裝)
# Linux: apt install php-pear / yum install php-pear
# Windows: go-pear.phar

# 安裝套件
pear install DB
pear install HTML_QuickForm2

# 列出已安裝
pear list

# 更新通道
pear channel-update pear.php.net

現代替代方案

  • Composer + Packagist:已成主流,支援語義化版本、自動載入、依賴解析,**強烈建議新專案使用**。
  • PEAR 套件多已遷移至 Packagist (如 `pear/DB` → `pear/db`)。
  • 維護舊專案時仍需了解 PEAR 規範與 `PEAR_Error` 錯誤處理模式。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved