【composer】如何在本地开发、调试Composer包

news2024/10/7 14:32:54

1、准备工作

创建两个空文件夹

|- TestProject # 用于composer引入测试
|- TestPackage # composer的自定义扩展包

1.1 初始化

TestProjectTestPackage分别执行:

composer init

一路默认或者自己按需修改引导中的参数完成composer初始化
例如:

Package name (<vendor>/<name>) [yunuo/test-project]: 
Description []: 用于composer引入测试
Author [, n to skip]: Author Name <xxxx@xxx.xxx>
Minimum Stability []: 
Package Type (e.g. library, project, metapackage, composer-plugin) []: 
License []: 
Would you like to define your dependencies (require) interactively [yes]? 
Search for a package: 
Would you like to define your dev dependencies (require-dev) interactively [yes]? 
Search for a package: 
{
    "name": "yunuo/test-project",
    "description": "用于composer引入测试",
    "authors": [
        {
            "name": "Author Name",
            "email": "xxxx@xxx.xxx"
        }
    ],
    "require": {}
}

Do you confirm generation [yes]? 

Ps: 如果还是不太清楚可以参考:https://github.com/ionepub/ionepub.github.io/issues/72

1.2 Composer Package部分

这里演示Composer Package的基础创建、示例

1.2.1 composer.json修改

TestPackage\composer.json中添加以下内容(去除注释):

"autoload": {
   "psr-4": {
   		// 命名空间指向,例如:namespace yunuo\testPackage;
   		// composer根据此处配置,去往src目录下引入相关文件
        "yunuo\\testPackage\\": "src"
    }
},
"autoload-dev": {
    "psr-4": {
    	// 同理,这是测试目录的指向
        "yunuo\\testPackage\\Test\\": "tests/"
    }
},
// 本地开发,这里设为dev
"minimum-stability": "dev",
"require": {
    // 根据实际需要,引入扩展包需要的扩展
},

本例中完整composer.json如下:

{
    "name": "yunuo/test-package",
    "description": "composer的自定义扩展包",
    "authors": [
        {
            "name": "Author Name",
            "email": "xxxx@xxx.xxx"
        }
    ],
    "autoload": {
        "psr-4": {
            "yunuo\\testPackage\\": "src"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "yunuo\\testPackage\\Test\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "require": {}
}

1.2.2 创建基本目录

创建基本依赖包目录srctests,也是比较常见的目录结构
完整目录列表如下:

|- src      # 依赖包主要code编写目录
|- tests    # 依赖包测试目录
|- composer.json

1.2.3 创建依赖包服务入口文件

创建TestPackageServiceProvider.php文件,作为依赖包服务提供入口文件
这里做个简单的示例:

<?php
namespace yunuo\testPackage;

class TestPackageServiceProvider
{
    public function demo()
    {
        echo '来之TestPackageServiceProvider的输出';
    }
}

至此,我们已经有了一个composer扩展包:yunuo/test-package

1.3 Project部分

测试扩展包执行情况及调试
Ps: 由于第一步我们已经用init命令初始化过项目了,这里就不重复演示了。

1.3.1 composer.json修改

编辑 composer.json 文件,添加以下内容(去除注释):

"require": {
   "yunuo/test-package": "dev-master"
},
"repositories": {
    "yunuo/test-package": {
        "type": "path",
        "version": "dev-master",
        // 此处填写TestPackage包所在目录的绝对路径
        // 若是win系统,注意"/"方向,例如:D:/www/TestPackage
        "url": "/www/TestPackage"
    }
}

本例中完整composer.json如下:

{
    "name": "yunuo/test-project",
    "description": "用于composer引入测试",
    "authors": [
        {
            "name": "Author Name",
            "email": "xxxx@xxx.xxx"
        }
    ],
    "require": {
        "yunuo/test-package": "dev-master"
    },
    "repositories": {
        "yunuo/test-package": {
            "type": "path",
            "version": "dev-master",
            "url": "/www/TestPackage"
        }
    }
}

Ok,至此基本上大功告成,接下来运行测试下

1.3.2 测试

TestProject目录下创建一个测试文件,例如index.php

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

$TestPackage = new \yunuo\testPackage\TestPackageServiceProvider();
$TestPackage->demo();

访问http://example/index.php就得到以下内容了:
在这里插入图片描述

Ps: 后续TestPackage更新内容后,在TestProject

composer update

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/574625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++11常用的一部分新特性

C11 统一的列表初始化&#xff5b;&#xff5d;初始化std::initializer_list 声明autodecltypenullptr STL中一些变化新容器已有容器的新接口 右值引用和移动语义左值引用和右值引用右值引用使用场景和意义右值引用引用左值及其一些更深入的使用场景分析完美转发 新的类功能默认…

【ISO14229_UDS刷写】-4-$37诊断服务RequestTransferExit理论部分

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x37 RequestTransferExit诊断服务描述 2 0x37服务请求消息 2.1 0x37服务请求消息定义…

经典 SQL 数据库笔试题及答案整理

马上又是金三银四啦&#xff0c;有蛮多小伙伴在跳槽找工作&#xff0c;但对于年限稍短的软件测试工程师&#xff0c;难免会需要进行笔试&#xff0c;而在笔试中&#xff0c;基本都会碰到一道关于数据库的大题&#xff0c;今天这篇文章呢&#xff0c;就收录了下最近学员反馈上来…

PLX31-EIP-MBTCP 以太网/IP到Modbus TCP/IP

PLX31-EIP-MBTCP ProSoft Technology的EtherNet/IP to Modbus TCP/IP通信网关允许在支持EtherNet/IP的控制器或设备与Modbus TCP/IP控制器或设备之间进行高速双向数据传输。 我们的Modbus TCP/IP驱动程序具有多种客户端和服务器功能&#xff0c;可实现更快的数据传输。此外&a…

策略路由+静态路由+ip link+healthcheck检测外网物理链路提高网络的可靠性

一、适用环境 1、外网链路有防火墙Firewall出口&#xff0c;外网也有路由器Router出口。 2、用户量大需要多条外网链路负载均衡&#xff0c;多条链路也可以互为主备。 3、有ip专线网络&#xff08;上下行对称&#xff09;与拨号光纤&#xff08;上下行非对称&#xff09;网络配…

PFEA112-65 3BSE050091R65 满足正确的机械和电气安装

力传感器的工作原理对其性能有很大影响。它还影响整个称重传感器的刚性和无振动程度&#xff0c;以及其稳健性和过载耐受性。所有这些因素都会影响卷筒纸加工机械。ABB的Pressductor传感器技术由于当称重传感器受到机械力时的电磁场。 这是一个操作起源于冶金现象的原理力改变…

AI:探究下前端组件化设计的实现方法及其重要性

文章目录 1. 什么是前端组件化设计1.1 定义前端组件1.2 什么是组件化设计 2. 组件化设计的重要性2.1 提高开发效率2.2 降低维护成本2.3 促进代码复用 3. 组件化设计的原则和模式3.1 单一职责原则3.2 可复用性原则3.3 可拆分性原则3.4 可扩展性原则3.5 微型模式3.6 组件库模式3.…

Chat-GPT 聚合平台 Poe:集成多个 AI 聊天机器人

Chat-GPT 聚合平台 Poe&#xff1a;集成多个 AI 聊天机器人 介绍 Poe 是知名问答社区 Quora 推出的 AI 平台——开放探索平台 (Platform for Open Exploration, Poe)。Poe 集成了多个基于大型语言模型的聊天机器人&#xff0c;包括 ChatGPT&#xff0c;以及 Sage、Claude、Dr…

代码随想录算法训练营15期 Day 3 | 203.移除链表元素 、707.设计链表 、206.反转链表

今日任务 链表理论基础 203.移除链表元素 707.设计链表 206.反转链表 链表理论基础 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后…

代码随想录算法训练营第五十三天 | 子序列系列2

1143.最长公共子序列 文档讲解&#xff1a;代码随想录 (programmercarl.com) 视频讲解&#xff1a;动态规划子序列问题经典题目 | LeetCode&#xff1a;1143.最长公共子序列_哔哩哔哩_bilibili 状态&#xff1a;dp定义想不到&#xff0c;看了dp定义能写出后面部分。 思路 动规…

ab压力测试工具使用

AB测试工具使用 参考网址&#xff1a; https://pdai.tech/md/devops/linux/linux-ab-test.html 推荐 java 体系学习网址 https://pdai.tech/ 安装 基于 Linux 操作系统 &#xff0c; 在 centos7 中安装 ab 测试工具 yum -y install httpd-tools测试安装是否成功&#xff1a;…

【ISO14229_UDS刷写】-1-$34诊断服务RequestDownload理论部分

总目录&#xff1a;&#xff08;单击下方链接皆可跳转至专栏总目录&#xff09; 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x34 RequestDownload诊断服务描述 2 0x34服务请求消息 2.1 0x34服务请求消息定义 2.…

11.TMS320C5509V+Win10+CCS8开发环境搭建

一、简介 众所周知&#xff0c;相较于TMS320F28335&#xff0c;TMS320C5509V属于较老的平台&#xff0c;在新版本的CCS版本上支持一直是一个问题。 最基本的问题便是&#xff0c;无法新建基础工程。各开发版厂商提供的例程无法在CCS8上使用&#xff0c;只支持CCS3.3环境&…

chatgpt赋能python:Python分词库的介绍

Python 分词库的介绍 Python 分词库是一个用于将一段自然语言文本分解为单词序列的工具。这对于自然语言处理和文本分析来说是一个重要的工具。Python 分词库可以将大量的文本数据转化成机器可读的、易于处理的数据。在 SEO 优化方面&#xff0c;Python 分词库也起到了关键的作…

华为云安装与使用

华为云安装与使用 文章目录 华为云安装与使用下载地址修改 /etc/hosts设置 AK/SK/Endpoint查看桶名查看桶内文件通过 ./obsutil config -interactive 方式设置配置文件问题 obsutil 命令行快速使用操作步骤操作桶上传文件约束与限制参数说明更多上传示例 删除下载对象 Referenc…

数据库基础——2.MySQL的卸载安装及相关环境的配置

这篇文章我们来说一下MySQL的下载、安装、相关环境配置、可能遇见的问题及其解决方案、卸载等操作。 目录 1.查看已安装的 1.1 命令提示窗口下查看 1.2 文件目录下查看 2.Mysql的卸载 2.1卸载mysql 2.2 清理其他文件 3.MySQL的下载 3.1 介绍 3.2 软件下载 3.3 软件安…

python求解一阶线性偏微分方程通解举例

python求解一阶线性偏微分方程的通解举例 Python求解偏微分方程也是其一个应用方面&#xff0c;下面举例说明。 一、问题&#xff1a; 求一阶线性偏微分方程 x ∂ f ( x , y ) ∂ x − y ∂ f ( x , y ) ∂ y y 2 f ( x , y ) y 2 x\frac{{\partial f(x,y)}}{{\partial x}…

海康线扫相机平场校正/阴影校正教程

机器视觉海康visionmaster-字符快速识别,字符缺陷检测 为什么要对线阵相机进行平场矫正(PRNUC) 线阵相机需要平场矫正(PRNUC)主要是因为获取得图像有异常,如图像边缘亮度与中心亮度不一致情况等, 对于现场使用相机获取图像数据有较大影响,故而需要对线阵相机进行平场矫…

Linux网络服务:PXE高效批量网络装机

目录 一、理论 1.PXE批量网络装机概述 2.搭建 PXE 远程安装服务器 3.实现Kickstart无人值守安装 二、实验 1.搭建PXE远程安装服务器 2.安装Kickstart无人值守安装 3.安装图形化界面 三、问题 1.please complete all spokes before continuing 提示 一、理论 1.PXE批…

【Python】列表和字典

知识目录 一、写在前面✨二、列表应用三、字典应用四、总结撒花&#x1f60a; 一、写在前面✨ 大家好&#xff01;我是初心&#xff0c;希望我们一路走来能坚守初心&#xff01; 今天跟大家分享的文章是 Python函数式编程第二弹&#xff0c;再次以两个简单的例子带大家更好的…