当前位置: 首页 博客系统

使用satis搭建云豹框架私有composer服务

日期:2018-09-17 19:42  点击量:1749

使用satis搭建云豹框架私有composer服务

创建composer包

你可以创建一个新项目来使用Composer。我们建一个输出hello world 的类 。这是一个简单的类但是你也可以创建复杂的项目来分享给其他开发者。Composer通常以“vendor/package” (厂商/包名)的方式来命名。这里我们为项目命名”chenjie/hello”。

文件结构
hello $ tree
.
└── src
    └── SayHello.php
1 directories, 1 file
编辑hello (项目根目录) /src/SayHello.php 文件:

开始Composer
现在要在项目的根目录里创建一个composer.json的文件,我们可以手动创建,也可以在根目录里通过composer init命令来根据提示创建:

hello $ composer init
  Welcome to the Composer config generator
This command will guide you through creating your composer.json config.
Package name (/) [cl/hello]: chenjie/hello
Description []: an example of composer package.
Author [chenjie , n to skip]:
Minimum Stability []: dev
Package Type (e.g. library, project, metapackage, composer-plugin) []:
License []: MIT
Define your dependencies.
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": "chenjie/hello",
    "description": "echo hello world"",
    "license": "MIT",
    "authors": [
        {
            "name": "chenjie",
            "email": "chenjie@chenjie.info"
        }
    ],
    "minimum-stability": "dev",
    "require": {}
}
Do you confirm generation [yes]?
根目录下就生成了composer.json文件,目录结构如下:
hello $ tree
.
├── composer.json
└── src
      └── SayHello.php
1 directories, 2 files
添加自动加载
然后我们可以手动编辑生成的composer.json文件,添加php的版本要求和自动加载(使用PSR-4),使用Hello命名空间,加载src目录下的所有文件,如下:

{
    "name": "chenjie/hello",
    "description": "echo hello world",
    "license": "MIT License",
    "authors": [
        {
            "name": "chenjie",
            "email": "chenjie@chenjie.info"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {
            "Hello\": "src/"
        }
    }
}
进行测试
下面我们来简单测试下我们的类是否工作正常。我们在项目根目录执行:

hello $ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating autoload files
hello $ tree -L 2
.
├── composer.json
├── composer.lock
├── src
│   └── SayHello.php
└── vendor
    ├── autoload.php
    └── composer
3 directories, 12 files
创建测试文件
下面我们在根目录下新建一个测试文件test.php
在项目根目录下执行命令  php test.php

如果终端打印出“Hello World!”那祝贺你测试通过!

初始化推送(转化成git版本库)

上面我们在本地完成了编写和测试。那么想让更多人使用我们的包就需要把我们新建的包发送到Packagist.org。首先我们可以先将项目发布到Github。我们先去Github 创建一个公有仓库命名“hello”, 我们在项目根目录使用Git命令来完成发布。

我们先在根目录里创建.gitignore文件,把vendor目录和composer.lock文件排除git在外。

hello (master) $ cat .gitignore
vendor/*
composer.lock
推送代码
git init 
git add . 
git commit -m "First commit" 
git remote add origin git@github.com:username/hello.git 
git push origin master
先clone至本地再推送
$ git clone http://git.24cod.com/yangliuwei/open1.git
$ cd open1
克隆一个git仓库至本地后,可以在目录里进行composer init操作。之后按照上述步骤进行操作

发布稳定版本(tag)

当然我们也可以带上tag标签推送

git tag 1.0 -a  
git push --tags
如何安装

进入项目目录新建composer.json,填写以下内容

{
  "repositories": [{
    "type": "composer",
    "url": "http://composer.24cod.com"
  }]
}
如何同时安装私有和公有仓库
{
     "repositories": [
        {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        },
    {
            "type": "composer",
            "url": "http://composer.24cod.com"
        }
    ],
    "require": {
        "yangliuwei/open2": "*",
          "yangliuwei/open1": "^2.0",
          "topthink/framework": "^5.1"
    },
   
    "config": {
        "secure-http": false
    }
   
}


"小礼物走一走,感谢支持"
赞赏支持
/作者: 超级管理员    /标签: 技术文档
举报

相关文章

PhpStorm 快捷键大全 PhpStorm 常用快捷键和配置

PhpStorm 快捷键大全 PhpStorm 常用快捷键和配置......

/作者: -/标签: 技术文档 /点击量: 658 /评论量: 0 /添加时间: 1546679459
Linux定时任务Crontab详解

......

/作者: 超级管理员/标签: 技术文档 /点击量: 677 /评论量: 0 /添加时间: 1546022476
代码风格规范

云豹框架代码风格规范(基于PSR)......

/作者: 超级管理员/标签: 技术文档 /点击量: 1000 /评论量: 0 /添加时间: 1541063921
Commit message 和 Change log 编写指南

Commit message 和 Change log 编写指南......

/作者: 超级管理员/标签: 技术文档 /点击量: 897 /评论量: 0 /添加时间: 1539685292
云豹框架Git使用问题汇总

云豹框架Git使用问题汇总......

/作者: 超级管理员/标签: 技术文档 /点击量: 569 /评论量: 0 /添加时间: 1539305364
1.353852s