zoukankan      html  css  js  c++  java
  • composer实践总结

    composer

    composer 概述
    • FIG 最初由几位知名 PHP 框架开发者发起,在吸纳了许多优秀的大脑和强健的体魄后,提出了 PSR-0 到 PSR-4 五套 PHP 非官方规范:
    1. PSR-0 (Autoloading Standard) 自动加载标准
    2. PSR-1 (Basic Coding Standard) 基础编码标准
    3. PSR-2 (Coding Style Guide) 编码风格向导
    4. PSR-3 (Logger Interface) 日志接口
    5. PSR-4 (Improved Autoloading) 自动加载优化标准
    • 之后,在此标准之上,Composer 横空出世!Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统。
    常用命令
    • composer list 列出所有可用的命令
    • composer init 初始化composer.json文件(就不劳我们自己费力创建啦),会要求输入一些信息来描述我们当前的项目,还会要求输入依赖包
    • composer install 读取composer.json内容,解析依赖关系,安装依赖包到vendor目录下
    • composer update 更新最新的依赖关系到compsoer.lock文件,解析最新的依赖关系并且写入composer.lock文件
    • composer search packagename 搜索包,packagename替换为你想查找的包名称
    • composer require packagename 添加对packagename的依赖,packagename可修改为你想要的包名称
    • composer show 查看有哪些包
    • composer self-update 更新 composer.phar文件自身
    • composer dump-autoload --optimize 优化一下自动加载
    • composer command --help 以上所有命令都可以添加 --help选项查看帮助信息
    • composer remove monolog/monolog 移除某个包
    composer init 说明
    yzm@Alert MINGW64 /i/phpstudy/WWW/uploadfile
    $ composer init
    
    
      Welcome to the Composer config generator
    
    
    
    This command will guide you through creating your composer.json config.
    
    // 1. 输入项目命名空间
    // 注意<vendor>/<name> 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+
    Package name (<vendor>/<name>) [dell/htdocs]: yourname/projectname
    
    // 2. 项目描述
    Description []: 这是一个测试
    
    // 3. 输入作者信息,可以直接回车
    Author [guanguans <53222411@qq.com>, n to skip]:
    
    // 4. 输入最低稳定版本,stable, RC, beta, alpha, dev
    Minimum Stability []: dev
    
    // 5. 输入项目类型,
    Package Type (e.g. library, project, metapackage, composer-plugin) []: library
    
    // 6. 输入授权类型
    License []:
    > Define your dependencies.
    
    // 7. 输入依赖信息
    Would you like to define your dependencies (require) interactively [yes]?
    
    // 如果需要依赖,则输入要安装的依赖
    Search for a package: php
    
    // 输入版本号
    Enter the version constraint to require (or leave blank to use the latest version): >=5.4.0
    
    // 如需多个,则重复以上两个步骤
    
    // 8. 是否需要require-dev,
    Would you like to define your dev dependencies (require-dev) interactively [yes]?
    
    // 操作同上
    {
        "name": "guanguans/uploadfile",
        "description": "一个通用文件上传包",
        "type": "library",
        "require": {
            "php": ">=5.4"
        },
        "require-dev": {
            "php": ">=5.4"
        },
        "license": "MIT",
        "authors": [
            {
                "name": "guanguans",
                "email": "yzmguanguan@gmail.com"
            }
        ],
        "minimum-stability": "dev"
    }
    
    // 9. 是否生成composer.json
    Do you confirm generation [yes]? yes
    
    自动加载
    1. 以淘宝sdk为例
    • 检查是否有引入vendor文件夹下的autoload.php文件
    • 找到composer.json文件打开,在里面autoload 下classmap下面加入类库路径.
    • 运行命令:composer dump-autoload --optimize 优化一下自动加载
        public function getshipping(Request $request){
            $req = new LogisticsOfflineSendRequest();  //调用了淘宝sdk
            return response('Hello World', 200)
                ->header('Content-Type', 'json');
        }
    
    2. 引入全局函数
    • 在app下建一个Common文件夹 在Common下建一个function.php放入公共函数
    • function.php文件中自定义test()函数
    • 在项目目录下composer.json中加入
    "autoload": {
        "files":[
            "app/Common/function.php"
        ]
    }
    
    • 运行命令:composer dump-autoload --optimize 优化一下自动加载
    • 然后就可以全局调用
  • 相关阅读:
    spring的@Transactional注解详细用法
    C#中对string与string[]的初步操作
    响应式下的雪碧图解决方案 - 活用background-size / background-position
    background-position 详解
    sass学习笔记
    微信小程序实操-image height:auto问题,url地址报错,“不在以下合法域名列表中”问题等
    如何开发一个微信小程序
    括号生成 回溯算法 递归 深度优先遍历 剪枝
    前K个高频元素 数字型 Hash表解决
    寻找重复的数 hash表
  • 原文地址:https://www.cnblogs.com/frankltf/p/10149047.html
Copyright © 2011-2022 走看看