美文网首页喜欢的文章
composer的一些简单介绍

composer的一些简单介绍

作者: 呦丶耍脾气 | 来源:发表于2017-01-14 10:59 被阅读237次

    本文转自KwongYanChan同学的笔记,地址: http://note.youdao.com/share/?id=d2f462195f51242cd70f55fda0250eed&type=note#/

    01:Comopser简介和安装-【包依赖管理】

    • 网址:getcomposer.org
    • 保存的文件夹:vendor目录
    • 安装:
    • mac:
      • 下载会获取到composer.phar这个文件
      • 移动到环境变量目录并改名:mv composer.phar /usr/local/bin/composer
      • 移动到环境变量的目录后,等于注册了全局使用,并且已经更改名字为:composer
      • 那么可以直接再终端使用 composer前缀 后面跟随命令即可

    02:package引用和版本

    • 项目下composer.json的写法, 如何引入包得写法
    {
      "require":{
        "mustache/mustache":"2.9.0",//这里就是写入包名字与具体版本号
        //前面这个是vendor目录的包得vendor name
        //然后第2个同名的就对应包的名字,一般来说是这样写法
      }
    }
    
    • 引入版本时候~号说明
      • 例子:~2.8.1,那么范围区间是2.8.1 to 2.9.0
      • 例子:~2.8,那么范围区间就变成 2.8 to 3.0
      • ~号:代表一个区间,0--9
    • 引入版本时候^号说明
      • 例子:^2.8,那么代表是,2.8 到 3.0,也就是说最大得版本号+1的点0版本,也就是2.8的2+1,.8变成.0
      • 例子:今天实践了下,^号也可以理解成为安装最新版本,下面例子就出现最新版的包了
    {
      "require":{
        "mustache/mustache":"^2.7"
      }
    }
    
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Package operations: 1 install, 0 updates, 0 removals
      - Installing mustache/mustache (v2.11.1) Loading from cache
    Writing lock file
    Generating autoload files
    
    • 可以直接再package网站进行搜索,并且直接使用包得命令在终端直接下载
      • composer require <vendorname>/<name> 这样就可以下载了,但下载的是最新版

    03:理解composer的install和update

    • composer.json对应的是composer update
    • composer.lock对应的是composer install,
    • 注意:没有lock文件composer就执行json文件

    04:composer自动加载简单分析

    • 第一步:vendor/autoload.php
    // autoload.php @generated by Composer
    
    require_once __DIR__ . '/composer/autoload_real.php';
    
    return ComposerAutoloaderInit23bbeae59271b037728c906bcb04be61::getLoader();
    
    • 第二步:查看autoload_real.php,目录:vendor/composer/autoload_real.php
      • 通过getLoader方法里的一个foreach进行注册
    $map = require __DIR__ . '/autoload_namespaces.php';
    foreach ( $map as $namespace => $path ) {
        $loader->set($namespace,$path);
    }
    
    • 第三步:查看autoload_namespaces.php,目录:vendor/composer/autoload_namespaces.php
    // autoload_namespaces.php @generated by Composer
    
    $vendorDir = dirname(dirname(__FILE__));
    $baseDir = dirname($vendorDir);
    
    return array(
        'Mustache' => array($vendorDir . '/mustache/mustache/src'),
        //src目录下就按照以上的命名空间来操作
    );
    
    • 第四步:查看依赖包目录下得composer.json文件,看它通过那个命名空间规范来加载
      • 目录:mustache/composer.json
      • 通过psr-0规范标准
    "autoload": {
            "psr-0": { "Mustache": "src/" }
        }
    
    • 整条自动加载流程:
      • 引入自动加载文件 autoload.php
      • 自动执行autoload_real.php中得方法getLoader()
      • 方法中调用了autoload_namespaces.php进行返回一个数组,到此自动加载命名空间 基本结束
      • namespaces文件执行的命名空间标准需要查看依赖包下得composer.json文件

    05:Find A Package

    • 在packagist.org进行搜索依赖包
    • 再终端可以使用命令 :composer serach <包名>
    • 显示具体信息终端命令:composer --all <包名>

    06:使用composer创建项目

    • 常见命令 :composer create-project
    • composer创建项目终端命令:composer create-project <原始名字>/<默认名字> <别名> <版本号>

    07: Understanding Require Dev

    • composer一个特点:require-dev--本地开发使用到得package
    • 如果下载一个项目,并不需要dev环境中得package可以使用:composer install --no-dev来操作
    • 所以上传自己项目时候需要包含composer.lock这个文件

    08:composer运行shell命令

    • 网址:getcomposer.org/doc/articles/scripts.md下得command events看到具体命令
    • 只需要在composer.json文件加上scipts这样的引导数组即可,下面例子参考:
    "scripts":{
        "post-install-cmd":"echo 'hello'"
    }
    

    09:发布自己的Package

    • 第一步:登陆github,创建项目
    • 第二步:终端git clone 项目地址
    • 第三步:进入项目目录,创建composer.json文件:执行命令composer init即可
    • 第四步:根据提示填写完毕穿件composer.json
      • package name <vendor>/<name>
      • description
      • author
      • minimum stability
      • package type
      • license
    • 第五步命令:git add .
    • 第六步命令:git commit -m"更改的描述"
    • 第七步命令:git push
    • 第八步:发布到packaglist.org,登陆自己的id
    • 第九步:点击右上角submit,然后粘贴github连接后,再点击check
    • 第十步:添加自动更新webhook
      • 到 github项目,点击settings
      • 点击左边导航webhooks & services
      • 点击右边的add services
      • 搜索package
      • 填写user token,token可以再packagist得profile找到
      • 粘贴token,然后addservice
      • 然后点击生成出来的package出现画面
      • 点击test service,出现ok表示成功
    • 备注:绑定完成后,当你git提交更新后就会同步到package那边了

    相关文章

      网友评论

        本文标题:composer的一些简单介绍

        本文链接:https://www.haomeiwen.com/subject/fzjebttx.html