zoukankan      html  css  js  c++  java
  • Composer 很重要很重要 内核 原理

    话题先攒着,过来再来写

    先来一张原理图

    composer的原理和其他的包管理工具都是一样的,只是实现的细节有些不同,例如yum,例如brew,例如apt-get还有packets。

    使用自己的composer库

    1.首先我们要搞定本地,也就是图上本地的composer.json

    可以使用命令或者自己创建

    composer init #创建一个composer.json文件
    composer install #第一次从远处仓库拉去php包的时候执行
    composer update #修改本地的composer.json后执行
    composer about #查看composer的信息
    composer info
    composer self-update#composer自己更新
    composer --check#查看帮助
    composer require  #包含一个php包进来
    remove 移除一个包
    本地的必要配置如下
    
    {
        "repositories": [
            {
                "type": "vcs",
                "url": "git@github.com:baixiaoshi/composer_test.git"
            },
            {
                "packagist": false
            }
        ],
        "require": {
            "hello/hello": "dev-master"
        }
    }
    #这是一个最简短的配置,现在要拉去github上的一个名字叫做hello/hello的php包
    repositories : 就是php远端仓库的地址啦,这里我用的类型是vcs也就是版本控制github上自己的测试包
    packagist : 这里是禁用了官方的包仓库地址,
    我们可以配置官方的地址来拉去php包
    {
        "type": "composer",
        "url": "http://packagist.phpcomposer.com"
    }
    require选项包含远端php包,其中hello/hello是包的名字,所以待会我们自己创建一个包的名字也就是这个了,dev-master是版本的意思,我们经常看到这样的吧
    {
        "monolog/monolog": "~0.1" #~号表示大于的意思
    }

    2.下面就来搞定远端了,客户端的配置明显是要拉去一个名字叫做hello/hello,版本是dev-master的包,那就直接来了

    {
        "name": "hello/hello",#包的名字,客户端要找这个的啦
        "autoload": {
            "psr-4": {
                "Hello\": ""#这里设置包拉下来自动加载包里面的那些文件,是通过命令空间来自动加载的哦
            }
        },
        "require": {
            "php": ">=5.4.0"#如果有对其他的一些包的依赖还是require在这里就好了
        }
    }
    
    <?php
    namespace Hello;#这个命名空间就是上面autoload配置中的啦
    class Hello {
        public function say_hello() {
            exit('hello world');    
        }
    }

    3.回到客户端执行composer install 当然就拉下来了这个包,当然只有一个测试文件而已。

  • 相关阅读:
    学习Java的知识体系路线(详细完整版,附图加目录)
    数组的定义和使用,理解多维数组和Array类
    Java运算符使用总结(重点:自增自减、位运算和逻辑运算)
    Java常用修饰符总结
    实例/静态变量、局部变量和常量的定义及其作用域
    Nothing is impossible
    科班学习java遇到瓶颈,每天云里雾里怎么办?
    人生路漫漫,相见不如不见
    基于视频的车辆识别
    编译原理课后习题答案令A,B和C是任意正规式,证明以下关系成立(A|B)*=(A*B*)*=(A*|B*)*
  • 原文地址:https://www.cnblogs.com/datang6777/p/7003585.html
Copyright © 2011-2022 走看看