DIY 實現 ThinkPHP 核心框架(六)實現自己的 Composer 包

cn-five發表於2020-08-29

建立自己的包

可以將專案需要的功能打包以實現共享,提升效率。建立包基礎目錄 /home/source/str_trans ,在該目錄建立 src 目錄 和 src/Str.php 檔案實現對字串的操作。

namespace StrTrans;

class Str
{
    // 字串的長度
    public static function length($str)
    {
        return strlen($str);
    }

    // 字元首次出現的位置
    public static function postion($text, $str)
    {
        return strpos($text, $str);
    }

    // 將字串全部大寫
    public static function capitalize($str)
    {
        return strtoupper($str);
    }
}

在基礎目錄下建立 composer.json 檔案

{
  "name": "str_trans/str_trans",  // 供應商名稱和專案名稱
  "description": "The trans of string", // 包的簡要描述
  "license": "AGPL-3.0-only", // 包的許可協議
  "authors": [                // 作者
    {
      "name": "tp",
      "email": "tp@thinkphp.demo"
    }
  ],
  "minimum-stability": "alpha", // 穩定性級別
  "require": {                  // 必須的軟體包
    "php": ">=7.1.0"
  },
  "autoload": {
    "psr-4": {"StrTrans\\":  "src/"}
  }
}

在基礎目錄下執行 composer install

Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating autoload files

在基礎目錄建立檔案 demo.php 進行測試

require './vendor/autoload.php';
$str = 'hello';
$p = 'l';
var_dump(StrTrans\Str::length($str));    // 輸出:5
var_dump(StrTrans\Str::capitalize($str));    // 輸出: HELLO
var_dump(StrTrans\Str::postion($str, $p));     // 輸出:2
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章