composer开发自定义包(基于git)-(方式一)

本文介绍如何通过GitHub和Composer实现服务组件化,以提高项目开发效率和维护性。涵盖组件创建、自动化加载配置、业务文件组织及测试流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中基本都会用到一些公共的组件,比如推送、短信、搜索、队列以及数据库模型等。要是每个项目都单独写一套,那么后期维护就显得力不从心了,所以采用服务组件化形式,多个项目直接引用。

1.首先登录你的github账号,如果没有注册,那么先去注册了吧。然后新建一个项目,项目名字可以任意取也可以或者pack-test

2.把github上的pack-test拉取到本地,如下图

在这里插入图片描述
3.因为是基于自动加载机制,接下来就是composer配置了,首先切换到pack-test目录,然后命令行运行composer init 这个是在当前目录配置composer的意思,然后命令行中会要求输入一些基本配置信息,包括报名、作者、版本等,如果不是很明白这些配置,请移步composer教程,填写完成之后,就直接运行composer install安装即可,环境基本搭建完成:
在这里插入图片描述
安装之后的文件目录:

Administrator@DESKTOP-UI8EDNS MINGW64 /d/laravel_www/pack-test (master)
$ ll
total 3
-rw-r--r-- 1 Administrator 197121 356 6月  18 16:43 composer.json
-rw-r--r-- 1 Administrator 197121  13 6月  18 11:28 README.md
drwxr-xr-x 1 Administrator 197121   0 6月  18 11:35 vendor/

3.1 composer init 的结果解释:

说明地址:https://docs.phpcomposer.com/04-schema.html

命令解释案例
name项目名称pack/test
description项目描述(不要中文)this is pack test
type安装类型默认为 library (4种类型:library,project,metapackage,composer-plugin)
license许可协议MIT
authors作者{ “name”: “json”,“email”: “json_yin@fionacos.com” }
minimum-stability版本dev、alpha、beta、RC、stable

4.添加src目录(存放业务文件目录),创建业务文件

Administrator@DESKTOP-UI8EDNS MINGW64 /d/laravel_www/pack-test (master)
$ ls
composer.json  README.md  src/   vendor/

src目录下创建Service.php (创建业务执行代码)

<?php
#命名空间
namespace Pack\Test;

class Service
{
    public function __construct()
    {
    }

    public function hello()
    {
        return 'hello world!!';
    }
}
?>

截图:
在这里插入图片描述

5 修改composer.json

{
    "name": "pack/test",
    "description": "pack test",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "json",
            "email": "json_yin@fionacos.com"
        }
    ],
	"minimum-stability": "dev",
    "require": {},
    "autoload":{
        "psr-4":{
            "Pack\\Test\\":"src/"
        }
    }
}

6.修改完composer.json,需要执行composer dump-autoload

D:\laravel_www\pack-test>composer dump-autoload
Generating autoload files
Generated autoload files

7 创建test.php测试

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Pack\Test\Service;

$obj = new Service();

$msg = $obj->hello();
var_dump($msg);

截图:
在这里插入图片描述
php-cli方式执行测试:

D:\laravel_www\pack-test>php test.php
D:\laravel_www\pack-test\test.php:9:
string(13) "hello world!!"

在这里插入图片描述

8.执行git推送命令,代码推送到远程git仓库

8.1修改git忽略文件.gitignore(把改文件提交到远程仓库)【vendor文件可以不提交到远程仓库,获取代码没有vendor可以执行composer dump-autoload】

 #/vendor/

在这里插入图片描述

8.2推送文件到远程仓库
在这里插入图片描述

9.使用laravel为例子 composer引入pack/test的服务组件包(dev-master指的master分支)

9.1 编辑laravel根目录的composer.json文件

包含要引入的包

   "require": {
        "php": "^7.2",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "^6.2",
        "laravel/tinker": "^2.0",
        "predis/predis": "^1.1",
        "pack/test": "dev-master"
    },

在这里插入图片描述

指定自定义包的引入地址,添加中国镜像地址

  "repositories": {
	        "0": {
	            "type": "git",
	            "url": "git@github.com:Yinjinshui/pack-test.git"
	        },
	        "packagist": {
	            "type": "composer",
	            "url": "https://packagist.phpcomposer.com"
	        }
 }

在这里插入图片描述

9.2 更新指定的包,即更新测试包
在这里插入图片描述查看引入的包文件:
在这里插入图片描述

9.3 添加laravel路由文件,执行引入包文件,执行

路径:routes/web.php
//=======调用自定义composer组件
Route::any('zidicomposer',function(){
    $obj=new \Pack\Test\Service();
    $msg=$obj->hello();
    return $msg;
});

9.4 访问执行
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值