composer私有仓库搭建相关说明

一、自已创建包与应用

cd /var/www/
mkdir mycdemo
在/var/www/mycdemo目录下,创建composer.json
{
    "name": "guyan/mycdemo",
    "description": "demo",
    "type": "library",
    "license": "mit",
    "authors": [
        {
            "name": "guyan0319",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev",
    "prefer-stable": "true",
    "require": {
      "php": ">=7.0"
    },
    "autoload": {
    "psr-4": {
      "User\\Client\\": "src/User/Client"
    }
  }
}
也可以通过 composer init 初始化扩展包,然后修改composer.json增加自动加载规范(命名空间和目录映射关系)和环境要求。
创建类文件 Client.php
mkdir -P src/User/Client
在 /var/www/mycdemo/src/User/Client下,创建Client.php
<?php
namespace User\Client;
class Client
{
    public function index ()
    {
        echo "this is client";
    }

}
 
运行
composer  install
查看 vendor/composer/autoload_psr4.php 中生成命名空间和目录的映射关系 略
中间上传到库中略
测试自己的开发包
创建目录
cd  /var/www
mkdir demo
composer require guyan/mycdemo dev-master
在 /var/www/demo 创建 index.php
<?php
 
require_once './vendor/autoload.php';

use User\Client\Client;
$Client = new Client();
echo $Client->index();

运行 index.php
php index.php
注:src可以放到 vendor结构更美好

 二、换镜像  注:如果报错,看PHP扩展是否安装完成

composer运行太慢?配置composer中国全量镜像

查看源,可以使阿里的源参考:https://developer.aliyun.com/mirror/

composer config -g -l repo.packagist 

更换:composer config -g repo.packagist composer https://packagist.phpcomposer.com

三、私有仓库 安装satis包

cd /home/wwwroot/
composer create-project composer/satis --stability=dev --keep-vcs
添加配置文件
cd satic
vim satis.json添加类似如下内容
{
    "name": "My Repository",
    "homepage": "http://59.110.107.59",
    "repositories": [
        {"type": "vcs", "url": "https://github.com/bambooleaf/reps_demo.git"},
        {"type": "vcs", "url": "https://github.com/isunshines/hello-world.git"}
    ],
    "require":{
        "reps_demo/helloworld":"*",
        "isunshines/hellow-world":"*"
    },
    "archive":{
        "directory":"dist",
        "format":"tar",
        "prefix-url":"http://59.110.107.59/",
        "skip-dev":true
    }
}
配置文件详解
name:仓库名字
homepage:主页地址
repositories:包所在地址
require:指定获取哪些包及对应的版本,获取所有包使用"require-all": true,与包中composer.json中的名称相同,不同会出现问题
directory: 必需要的,表示生成的压缩包存放的目录,会在build时的目录中
format: 压缩包格式, zip(默认)和tar
prefix-url: 下载链接的前缀的Url,默认会从homepage中取
skip-dev: 默认为假,是否跳过开发分支
absolute-directory: 绝对目录
whitelist: 白名单,只下载哪些
blacklist: 黑名单,不下载哪些
checksum: 可选,是否验证sha1
生成站点
bin/satis build satis.json ./public
服务配置
PHP服务器设置

php -S 127.0.0.1:8080 -t ./public
Nginx服务配置类似如下内容

server {
    listen  80;
    server_name 192.168.0.249;
    index index.html index.php;
    root /home/wwwroot/satis/public;
    
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    access_log  /home/wwwlogs/192.168.0.249-access.log  default_access;
    error_log /home/wwwlogs/192.168.0.249-error.log  error;
}
查看私有仓库是否可以访问
浏览器输入类似地址:http://192.168.0.249/
查看结果如下


composer配置
composer config -g secure-http false
使用私有仓库包
在自己项目中的composer.json中添加类似如下内容
{
        "repositories": [{
                "type": "composer",
                "url": "http://192.168.0.249:8080"
        }],
        "config": {
                "secure-http": false
        },
        "require": {
                "ab/cd": "dev-master"
        }
}

创建项目

composer create-project 项目名称 --repository=http://192.168.0.249 --no-secure-http  注,这种方式要在git里面发布正式的版本


 

猜你喜欢

转载自blog.csdn.net/oqzuser12345678999q/article/details/107227264