marshung/my-composer

通过Composer学习安装GitHub项目

0.1.1 2021-04-22 17:59 UTC

This package is auto-updated.

Last update: 2024-09-23 01:14:19 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

动态徽章(poser.pugx.org)

plastic plastic plastic

静态徽章(shields.io)

练习内容

  • 建立Git仓库
  • composer包结构
  • 发布到packagist.org
  • 安装并使用
  • 编写READMD

建立Git仓库

在GitHub上建立仓库

克隆到本地

$ cd ~/work/github/
$ git clone git@github.com:marshung24/my-composer.git

初始化composer.json

$ cd ~/work/github/my-composer
$ composer init

建立README.md

推送到GitHub

$ git add ./
$ git commit -m 'init package'
$ git push origin master

最后一步需要加上origin master参数的原因是空仓库没有分支,所以我们需要强制推送本地的master到远端的master,之后可以直接使用git push命令推送而不需要加后面的参数了。

composer包结构

composer.json

  • 在包根目录建立composer.json
{
    "name": "marshung/my-composer",
    "description": "Learning Install GitHub Project By Composer",
    "homepage": "https://github.com/marshung24/my-composer",
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "Mars Hung",
            "email": "tfaredxj@gmail.com"
        }
    ],
    "autoload": {
        "psr-4": { "marshung\\": "src" }
    },
    "minimum-stability": "stable",
    "require": {}
}

建立class

$ cd ~/work/github/my-composer/
$ mkdir src
$ cd src/
$ mkdir hello
$ cd hello/
$ touch HelloWorld.php
<?php

namespace marshung\hello;

class HelloWorld
{
	private $name;
	public function __construct($name = 'World') {
		$this->name = $name;
	}
	public function getName() {
		return $this->name;
	}
	public function hello() {
		return 'Hello ' . $this->name . '!';
	}
}

提交前测试程序是否有问题

$ cd ~/work/github/my-composer/
$ composer install

建立测试文件

$ cd ~/work/github/my-composer/
$ mkdir test
$ cd test/
$ touch test.php
<?php
require_once "../vendor/autoload.php";

$obj = new \marshung\hello\HelloWorld();
echo $obj->hello();

echo "\n";
$obj = new \marshung\hello\HelloWorld('My Goddess');
echo $obj->hello();

发布到packagist.org

访问Packagist主页,确认自己已经登录,然后点击右上角的“Submit Package”,然后填入我们创建的仓库的地址,点击“Check”,如果没有问题,再点击“Submit”。

网址:https://packagist.org.cn/

设置GitHub Service Hook

安装并使用

$ cd ~/work/github/test
$ composer require marshung/my-composer

版本管理

Composer的版本管理

  • 开发版:branch
    • 如果分支名为master,版本号为dev-master
  • 正式版:tag
    • 格式: major.minor.build
      • major: [int] 当做了不兼容的修改
      • minor: [int] 当做了向下兼容的功能性新增
      • build: [int] 当做了向下兼容的问题修正

查看现在分支

$ cd ~/work/github/my-composer
$ git branch

建立新分支0.1(dev)

$ git checkout -b 0.1
$ git commit -m 'update readme, add Hello class demo'
$ git push origin 0.1

建立稳定版本(tag)

$ git tag 0.1.0
$ git push --tags

参考

记录

  • 20180414: MarsHung 建立项目
  • 20180415: MarsHung 完成初版