composer开发自定义包(基于git)-(方式一)
Posted Json2011315
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了composer开发自定义包(基于git)-(方式一)相关的知识,希望对你有一定的参考价值。
项目中基本都会用到一些公共的组件,比如推送、短信、搜索、队列以及数据库模型等。要是每个项目都单独写一套,那么后期维护就显得力不从心了,所以采用服务组件化形式,多个项目直接引用。
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 访问执行
以上是关于composer开发自定义包(基于git)-(方式一)的主要内容,如果未能解决你的问题,请参考以下文章