Welcome to

Mr.Xiong

Home / Composer / THINKPHP Composer扩展包开发

THINKPHP Composer扩展包开发

一、在vendor下创建包的目录

例如我的包结构是:

vendor

|─ oceanos

|── ocean-addons

|─── src

|──── helper.php

|──── common.php

|─── composer.json

|─── README.md

二、composer.json

{
   "name": "oceanos/ocean",
  "description": "ocean test",
  "license": "Apache-2.0",
  "minimum-stability": "dev",
  "version": "0.1",
  "authors": [
    {
      "name": "ocean",
      "email": "hi@xiongweiyang.com"
    }
  ],
  "require": {
   "php": ">=7.2.0",
  },
  "autoload": {
   "psr-4": {
      "Oeacn\\": "src/"//代码库的路径,前面为命名空间,src为代码存放的路径
    },
    "files": [
      "src/common.php"//这个文件会单独引入,如果有一些需要直接执行的可以再通过files里面的文件去执行
   ]
  }
}

三、实现功能类库

在 src 下写我们需要实现功能的类库,例如我们写一个类脚 helper.php(P函数),那么目录结构应该是:

|─── src

|──── helper.php

namespace Ocean;
class Helper{
   private $name = "I am Mr.Xiong";

   public function getName(){
      return $this->name;
   }
}

以上代码就实现了我们第一个基于 composer 的类库。

四、修改项目下的composer.json

"autoload": {
   "psr-4": {
      "app\\": "application",
      "Ocean\\": "vendor/oceanos/ocean-addons/src/"//本地开发测试这样导入
    },
    "files": [
      "vendor/oceanos/ocean-addons/src/common.php"//本地开发测试这样导入
   ]
},

五、执行命令更新自动加载文件

composer dump-autoload

六、进行类库功能测试

如果在其他地方或 TP 框架中要用的话直接使用,例如在控制器当中使用。

<?php
namespace app\index\controller;
use Ocean\Helper;
class Index
{
   public function index()
   {
      $ocean = new Ocean();
      echo $ocean->getName();
   }
}

这样当我们访问 index 模块里面的 index 控制器,看到输出 “I am Mr.Xiong” 说明我们成功了~恭喜你呀。

Finally,谢谢大家的阅读!祝每天开心~
版权声明:本文为博主原创文章,未经博主允许不得转载。

赞赏

微信赞赏支付宝赞赏

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

雄心勃勃但谦卑温逊!

>> <<