• composer的使用以及安装


    composer是一个php类库管理工具,一听工具,那么肯定需要安装呢,所以下面我们看一下composer如何安装.

    composer的安装

    怎么样安装呢?不要着急,安装composer呢我们需要准备一些东西. 
    首先,composer的使用有一定的要求. 
    1,php的环境变量的配置,需要在cmd命令行中去调用. 
    2,php的版本要求,需要>=5.5.9,配置好环境变量,在命令行中运行php -v命令就可以查看 
    3,需要三个扩展 openssl,mbstring,pdo,怎么去开启和编译这三个扩展呢,so easy 打开我们的php目录,找到php.ini文件,在里面搜索如openssl,正常情况是:

    
    ~~~~~~~~~~~
    extension=php_mysql.dll
    extension=php_mysqli.dll
    ;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
    ;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
    ;extension=php_openssl.dll
    ;extension=php_pdo_firebird.dll
    extension=php_pdo_mysql.dll
    ;extension=php_pdo_oci.dll
    extension=php_pdo_odbc.dll
    ~~~~~~~~~

    前面有个分号,把分号去掉即可

    好了,准备工作已经准备好,下面呢我安装composer

    window下安装

    1,在线安装,不管我们安装什么东西,都需要把它的安装包,给准备好,同样的composer也是这样,我们可以直接去百度搜索composer 进入它的官网,或者国内的镜像中,可能是这样的一个东西: 
    这里写图片描述 
    直接双击它,一路next就ok了; 
    但是注意,我们这样安装可能会失败,因为在中间回去composer官网,去下载两个文件,composer.bat,composer.phar但这个网站是国外的,可能会访问失败,那下载不成怎么办呢?

    2,离线安装 
    我们可以去手动的去网上下载好这两个文件, 
    1. 按要求打开PHP的相关扩展:openssl.dll , mbstring.dll ,及PDO 
    2. 把php.exe所在目录的路径,加入环境变量,保证随处可以cmd下调用php命令. 
    3. 把这两个文件给放到 php.exe的同级目录下就ok了

    打开命令行中,运行composer -v即可,出现以下界面说明安装成功

    这里写图片描述

    但是并没有完事,因为composer官网是在国外,所以我们下载东西呢,速度会很慢 
    但是在国内有composer的镜像,我们需要修改成国内的镜像,仅仅是提高下载速度,如下:

    composer config -g repositories.packagist composer https://packagist.phpcomposer.com
    composer的使用 引入类库

    那么我们在之前呢,了解到composer是php类库管理工具,主要是为项目引入类库使用,怎么引入呢? 
    如:我在做一个blog项目,现在需要用一个smarty组件,首先,我们去http:://packagist.org上去搜索smarty的信息,然后我们需要到blog项目根目录创建一个composer.json的文件,然后把smarty组件的信息,给写入,注意是json格式,如下:

    {
        "require":{
            "smarty/smarty":"3.1.30"
        }
    }
    

    json文件写好之后,我们需要在cmd中来到项目的额根目录,运行composer install这个命令 
    会出现以下这种结果

    D:xampphtdocsmyphplog>composer install
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    - Installing smarty/smarty (v3.1.30)
    Downloading: 100%
    Writing lock file
    Generating autoload files
    

    完成之后,那么来到项目的文件夹下,多出一个vendor的目录,并且vendor目录下也有一个smarty的文件夹. 
    在这里可能会有疑问,在json文件中的写个格式是什么意思,以smarty为例,smarty/smarty前面的代表一个公司,后者是代表这个公司开发的这个类库

    {
        "require":{
            "厂商/类库名字":"版本号"
        }
    }
    添加类库

    一个项目不可能就需要一个类库,所以如何去添加类库,比如需要一个phpmailer的类库,同样的我们还是需要到http://packagist.org这个网站上,找到phpmailer这个类库的信息和版本 
    接下来到composer.json文件中去添加信息,如下:

    {
        "require":{
            "smarty/smarty":"3.1.30",
            "phpmailer/phpmailer":"5.2.16"
        }
    }
    

    然后同样的需要到项目根目录下,执行composer install可能会有以下错误

    Loading composer repositories with package information
    Installing dependencies (including require-dev) from lock file
    Warning: The lock file is not up to date with the latest changes in composer.json

    但是不要着急,我们去读,它的意思呢是json文件中的文件版本较新,而lock文件中的这个类库版本较旧,你可以去执行以下update 
    我们在次去执行 composer update我们发现回到正常的下载页面,然后在去项目文件加下的vendor目录,发现也多出一个phpmailer的文件夹,说明我们添加类库成功,那么既然有添加类库就有卸载

    卸载类库

    比如我们需要把没有用到的类库去卸载掉,怎么弄呢,如卸载phpmailer的类库

    只需要执行一条命令即可 composer remove phpmailer/phpmailer 
    成功后,查看你的json文件中的phpmailer的信息没有了,同样的vendor目录下也没有了phpmailer的文件夹,说明已经卸载成功

    不配置json文件添加类库

    如果我们需要的类库比较多,那么一个一个去composer.json文件中去添加么,不用的 
    可以执行命令composer require 厂商/类库=版本号

    如,引入phpmailer composer require phpmailer/phpmailer="5.2.16" 
    在去看我们的json文件,多出一条phpmailer的信息,并且vendor目录下,也多出一个phpmailer的文件夹

    如何加载引入类库

    我们用composer把类库给引入,但是们怎么去调用呢,难道一个个去手动引入么,是不用的,我们注意观察vendor目录下有一个autoload.php这样的一个自动加载文件 
    我只需要引入这个自动加载的文件,我就可以调用任意你引入的类库,如smarty这个类库

    require(__DIR__.'/vendor/autoload.php');
    
    print_r(new Smarty());
    
    创建项目

    我们composer是引入类库使用,那么类库供项目使用,能否用composer创建项目呢?

    我们知道的有的框架和composer使用,我们用composer创建项目,会直接把框架依赖的类库全部下载下来,省时间,怎么创建呢?以laravel为例 
    执行命令 
    composer create-project laravel/laravel=5.1.33 
    如: 
    这里写图片描述

    下载下来之后,到你的项目根目录会发现一个完整的框架,直接可以调用,这就是composer的如何去使用,谢谢大家!!!

  • 相关阅读:
    *Convert Sorted Array to Binary Search Tree
    *Count Complete Tree Nodes
    *Binary Tree Paths
    Invert Binary Tree
    *Kth Smallest Element in a BST
    **Lowest Common Ancestor of Two Nodes in a Binary Tree
    Lowest Common Ancestor of a Binary Search Tree
    *Sum root to leaf number
    subversion javahl
    mongodb从来没有说它写成功了。
  • 原文地址:https://www.cnblogs.com/kimc1112/p/7113600.html
Copyright © 2020-2023  润新知