• 多版本PHP使用composer时安装的推荐方式


    COMPOSER是PHP的依赖管理工具,有多个版本,并且都支持PHP5.3.2+版本。

    官方网址:https://getcomposer.org/

    COMPOSER安装:

    有几种方式可以进行COMPOSER安装:

    1。下载 https://getcomposer.org/Composer-Setup.exe 安装程序,点击后开始安装。

          这种EXE的安装包,只有WINDOWS可以使用,它会安装最新版的COMPOSER

           安装时可以选择安装目录,会要求定位查找某个PHP所在目录,安装过程会使用到该版本PHP并且进行一些必要的检查。

          安装完成后会自动生成composer.batcomposer.phar文件。

    2。下载https://getcomposer.org/installer  保存为任意名称的PHP文件(通常取名为composer-set.php)。

         然后通过某版本的PHP命令行进行执行该PHP文件

      (命令如:某版本php可执行文件  composer-setup.php  。在LINUX中下载和执行还可以一步完成:curl -sS https://getcomposer.org/installer | 某版本php可执行文件 。如果已经配置了默认版本PHP的环境变量,“某版本php可执行文件" 就直接换成"php")

         安装时可以指定安装目录(通过--install-dir=  来指定其它位置,否则默认会安装在命令行定位的当前工作目录),安装过程会使用该版本的PHP,并进行一些必要的检查。

         安装完成后会自动生成composer.phar文件。

         bug:    注意如果此时要安装非最新版本(即指定了--version,但不是最新版本),可能会出现下载卡住或404出错,这是因为最新的composer-set.php文件里指定了各版本会从install.phpcomposer.com下载,除了最新版下载文件在该域名下,而旧版本文件还没有转移过去,不在该域名下,而是在getcomposer.org域名下(它还包含最新版)。

         此时可以对composer-set.php作如下修改: 

           //$this->baseUrl = $uriScheme.'://install.phpcomposer.com';
           $this->baseUrl = $uriScheme.'://getcomposer.org';

         

    3。 直接下载某版本(或各版本)的PHAR文件。

           如下载最新版的:https://getcomposer.org/composer-stable.phar

             windows命令行:   explorer https://getcomposer.org/composer-stable.phar

             linux命令行:          curl  https://getcomposer.org/composer-stable.phar

           其它版本的:

           V2.0.7: https://getcomposer.org/download/2.0.7/composer.phar

           V2.0.6: https://getcomposer.org/download/2.0.6/composer.phar

           V2.0.5: https://getcomposer.org/download/2.0.5/composer.phar

           ......

          将直接下载保存到指定的目录。这种安装不需要指定某版本的PHP,而且暂时不会进行必要的检查(通常在后期使用的时候根据出错情况再在PHP.INI配置就可以)。

    三种安装方式最终都会有composer.phar文件,这个才代表的最终的COMPOSER。

    所以推荐使用第三种直接下载的形式,它可以暂时免去必要的检查,防止前两种的安装过程中出现的错误(一旦出错就生成不了composer.phar

    PHAR文件是一种PHP的归档文件(类似于JAVA的JAR),所以是可以通过PHP直接执行的。所以我们说的使用COMPOSER,其代表的意思就是:

    通过PHP命令行执行composer.phar文件,其形式命令行代码如:   

                 某版本的php可执行文件   某版本的composer.phar   ....

                    例子:

                                (WINDOWS下  .exe可以省略)

                                 d:/wamp/php/5.4.0/bin/php  d:/composer/composer2.0.6.phar  ...   

                                 d:/wamp/php/5.5.1/bin/php  d:/composer/composer2.0.6.phar  ... 

                                 d:/wamp/php/7.0.2/bin/php  d:/composer/composer2.0.7.phar  ...

                                 (LINUX下,.sh,    .phar也可以省略)

                                 /usr/lamp/php/5.4.0/bin/php  /usr/composer/composer2.0.6  ... 

                                 /usr/lamp/php/5.5.1/bin/php  /usr/composer/composer2.0.6  ... 

                                 /usr/lamp/php/7.0.2/bin/php  /usr/composer/composer2.0.7  ...    

                    

    接下来就是如何简化上述形式了,我们可以使用批处理或SHELL脚本。

    首先,由于composer的任何版本针对PHP5.3.2或上以版本都是可行的,所以只需要使用一个版本的COMPOSER即可(推荐使用最新版本),不需要使用多版本的composer.phar。

    WINDOWS下利用bat或cmd处理命令:

     假设:  d:/composer/为composer安装(或存放)目录。目录里有composer.phar为最新版(或某个旧版)

    1)首先将composer.phar所在目录(d:/composer/)添加到环境变量。

     composer.phar同目录下创建:  composer540.bat  内容为:

                                                               @echo off

                                                               "d:/wamp/php/5.4.0/bin/php"  "d:/composer/composer.phar"  %*

     composer.phar同目录下创建:  composer551.bat  内容为:

                                                              @echo off

                                                              "d:/wamp/php/5.5.1/bin/php"  "d:/composer/composer.phar" %* 

     composer.phar同目录下创建:  composer702.bat  内容为:

                                                              @echo off

                                                              "d:/wamp/php/7.0.2/bin/php"  "d:/composer/composer.phar " %*

    多个版本就复制多份批处理,修改内容当中的PHP相应版本的路径后,保存为不同名称的BAT文件。

    使用简化后的命令:

             composer540 ...   

             composer551 ...   

             composer702 ...

    嫌名称太长的话可以更进一步,将批处理文件命名短点:  c540.bat/c551.bat/c702.bat   那命令就缩短为:

             c540 ... 

             c551 ... 

             c702 ... 

                  

    LINUX下是同理的,只不过其可执行脚本为SHELL脚本

    多版本PHP可用的COMPOSER安装的最终推荐的方式(以WINDOWS为例,LINUX类似):

    采用形式:不在项目里局部安装,不在各版本PHP目录里安装,只在独立的目录里安装

    第一步:    下载最新composer.phar: https://getcomposer.org/composer-stable.phar   保存为  f:composercomposer.phar。将所在目录添加到环境变量(将f:composer添加到环境变量)

    第二步:  在composer.phar保存的目录里新建composer.bat文件,内容编写如:

                   @echo OFF

                   "默认使用的PHP版本安装目录/bin/php"   "f:/composer/composer.phar" %*

                   如果有多个版本PHP,直接再复制composer.bat,并重新命名(如composer540.bat,有几个版本就复制几份),修改bat文件内容如:

                   @echo OFF

                  " c:/wamp/php/5.4.0/bin/php"   "f:/composer/composer.phar" %*

                   

                  

    第三步:使用命令:

                  使用默认版本:  composer ....

                  使用PHP5.4.0版本 :  composer540 ...   

                  命令出错就根据信息修改(由于采用直接下载phar文件,忽略安装过程,所以根据出错信息修改相应的php.ini。)

                  另外如果提示PHP版本过低的情况,这个跟使用COMPOSER的版本没有关系,除非你使用了PHP5.3.2以下版本。这种情况跟依赖管理的提供方有关,即提供方的类库(框架)不支持低版本PHP。

    TIPS: 

    1。不知道(或忘记)版本:

               composer -V  

    2。不知道(或忘记)COMPOSER安装在哪里:

               composer -h   

               最后的信息部分,会出现类如:

                                The help command displays help for a given command:

                                php f:composercomposer.phar help list

               就可以知道路径。

    3。更新到最新的COMPOSER版本:

              composer self-update 

              或者:下载最新composer.phar: https://getcomposer.org/composer-stable.phar  然后放到原安装目录,覆盖原来的就行(这种可以在self-update出错的情况下使用)

  • 相关阅读:
    关于FileUpload控件的二种用法,你都懂吗?
    Application全局对象 实现统计当前在线人数和总访问次数
    使用COOKIE对像实现保存用户基本信息(结合Session),ASP.Net实现用户登录全过程
    递规篇历路径之 使用正则过滤( 将符合正则的名称用另种正则格式替换掉 )某个路径下的所有文件或文件夹的完整路径
    小偷程序之网页分块筛选
    c#中的socket编程基础
    ASP.Net中的一些基础家常事
    PHP数组
    Effective C++总结
    构造函数、析构函数、虚函数可否内联,有何意义
  • 原文地址:https://www.cnblogs.com/dreamyoung/p/14026565.html
Copyright © 2020-2023  润新知