PHP:发布一个composer包到Packagist

简介: PHP:发布一个composer包到Packagist

more-echo-php

a demo for PHP composer

一个PHP的composer包发布示例

1、初始化项目

mkdir more-echo-php
cd more-echo-php
# 初始化项目, 填写好项目的信息
$ composer init

项目目录

$ tree -I vendor
.
├── README.md
├── composer.json
└── src
    └── EchoText.php

composer.json

{
    "name": "mouday/more-echo",
    "description": "a demo for Composer",
    "type": "library",
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "Mouday\\MoreEcho\\": "src/"
        }
    },
    "authors": [
        {
            "name": "pengshiyu",
            "email": "1940607002@qq.com"
        }
    ],
    "require": {}
}

src/EchoText.php

<?php
namespace Mouday\MoreEcho;
/**
 * a demo for php composer
 * Class EchoText
 * @package Mouday\MoreEcho
 */
class EchoText
{
    public static function echoText($text)
    {
        echo $text;
    }
}

发布项目

  1. 将项目提交到github
  2. 将项目发布到packagist,点击submit输入github的项目地址

发布包地址:

使用发布的包

composer require mouday/more-echo

示例

<?php
require './vendor/autoload.php';
use  Mouday\MoreEcho\EchoText;
EchoText::echoText('Hello World!');
// Hello World!

问题

1、提示composer.json找不到


[RuntimeException]                                                                                    

 No composer.json present in the current directory (./composer.json),

 this may be the cause of the following exception.  

echo '{}' > composer.json


2、包不存在


通常我们使用的是阿里云的镜像地址,刚提交的包,可能没有及时同步,可以临时设置一下包下载地址


$ composer config repo.packagist composer https://packagist.org/

3、版本号找不到


 [InvalidArgumentException]                                                                            

 Could not find a version of package mouday/more-echo matching your minimum-stability (stable).

 Require it with an explicit version constraint allowing its desired stability.  

给项目打一个版本号的标签

git tag 1.0.0
git push --tag

参考

php composer Packagist 创建第一个自己的包

101- composer [packagist]包制作(入门篇)

相关文章
|
4月前
|
存储 安全 Linux
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
|
4月前
|
敏捷开发 数据可视化 测试技术
阿里云云效产品使用合集之怎么在php composer安装自己服务器的代码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
PHP 开发者
如何用Composer管理PHP项目的第三方扩展包
【7月更文挑战第2天】**Composer 是PHP开发的关键工具,用于管理项目依赖。安装需PHP 5.6.4+,通过官网脚本安装。在项目根目录创建 `composer.json` 文件定义依赖,使用 `composer require` 命令安装扩展包,如Guzzle。`composer.lock` 保证版本一致。`require_once &#39;vendor/autoload.php&#39;;` 实现自动加载。更新依赖用 `composer update`,管理依赖提升效率和项目维护性。深入学习可发掘更多高级功能。**
177 0
|
7月前
|
缓存 PHP 开发工具
PHP 开发者该知道的 5 个 Composer 小技巧
PHP 开发者该知道的 5 个 Composer 小技巧
|
缓存 Linux PHP
PHP快速入门14-Composer包管理安装与使用,附常见的20个使用例子
PHP Composer 是 PHP 的一个包管理工具,它被广泛用于 PHP 应用程序的依赖管理。Composer 可以自动查找和下载 PHP 应用所需要的第三方类库和组件,并将它们集成到应用程序中。
389 0
|
PHP
PHP自动加载与composer自动加载
在面向对象的程序中,大部分的情况都是需要使用命名空间的。我们先了解命名空间的知识,在后续也会结合命名空间实现自动加载 在我们使用计算机的过程,如果想在同一个路径目录下新建两个同名的文件,将会得到错误提示,当前目录下已经存在该文件名的文件。 在php程序中也是如此,我们没办法在同一个空间下声明两个一样类名的文件,否则会得到报错提示 Cannot declare class A, because the name is already in use
106 2
PHP自动加载与composer自动加载
|
缓存 PHP 开发工具
Composer 更新时报错:PHP Fatal error: composerRequireac6b4…(): Failed opening required ‘…/src/helpers.php
Composer 更新时报错:PHP Fatal error: composerRequireac6b4…(): Failed opening required ‘…/src/helpers.php
226 0
Composer 更新时报错:PHP Fatal error:  composerRequireac6b4…(): Failed opening required ‘…/src/helpers.php
|
设计模式 前端开发 PHP
PHP的Laravel与Composer部署项目时常见问题
我们在部署PHP项目时,其实大部分的PHP项目会创建环境检测与一键Install页面。 但是,有许多的项目还采用了Composer部署。
366 0
|
缓存 PHP
Composer报错: require(): Failed opening required ‘.../markbaker/matrix/.../functions/adjoint.php‘
Composer报错: require(): Failed opening required ‘.../markbaker/matrix/.../functions/adjoint.php‘
294 0
|
应用服务中间件 PHP nginx
mac环境composer新建php的symfony项目并用nginx配置
mac环境composer新建php的symfony项目并用nginx配置
206 0
mac环境composer新建php的symfony项目并用nginx配置