DIY 实现 ThinkPHP 核心框架(六)实现自己的 Composer 包

创建自己的包

可以将项目需要的功能打包以实现共享,提升效率。创建包基础目录 /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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!