如何查看composer安装路径,全局使用composercomposer安装后怎么找不到它的文件安装路径 CentOS 7下安装Composer
安装Composer 1、将composer.phar下载到项目中 使用curl -sS下载Composer 的二进制文件 , 是一个 PHAR
包(PHP 的归档) 2、可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径)
composer安装后怎么找不到它的文件安装路径composer安装后怎么找不到它的文件安装路径
CentOS 7下安装Composer
安装Composer
1、将composer.phar下载到项目中
使用curl -sS下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)
2、可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):curl -sS
3、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar 。在类Unix系统中,你甚至可以在使用时不加 php 前缀 。可以执行这些命令让 composer 在你的系统中进行全局调用:
#mv composer.phar /usr/local/bin/composer
现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar 。
4、检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表 。
使用 Composer
要在项目中使用 Composer,只需要一个 composer.json 文件 。该文件包含了项目的依赖和其它的一些元数据 。现在使用 Composer 来安装项目的依赖 。
1、创建 composer.json 文件
在当前目录下创建 composer.json 文件,在 composer.json 文件中指定 require key 的值 。简单的告诉 Composer 你的项目需要依赖哪些包 。
例如:
{"require": {"monolog/monolog": "1.0.*"} }
可以看到,require 需要一个 包名称monolog/monolog映射到 包版本 1.0.*的对象 。包名称由供应商名称和其项目名称构成 。
2、安装依赖包
执行 install 命令获取定义的依赖到本地项目:
php composer.phar install
如果你进行了全局安装 , 并且没有 phar 文件在当前目录,使用下面的命令代替:
composer install
这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录 。这是一个惯例把第三方的代码到一个指定的目录 vendor 。如果是 monolog 将会创建 vendor/monolog/monolog 目录 。
注意: install 命令将创建一个 composer.lock 文件到你项目的根目录中 。
3、自动加载
除了库的下载,Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件 。使用它,你只需要将下面这行代码添加到你项目的引导文件中:
require 'vendor/autoload.php';
现在我们就可以使用 monolog 了
怎样查看composer 版本3、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar 。在类Unix系统中,你甚至可以在使用时不加 php 前缀 。可以执行这些命令让 composer 在你的系统中进行全局调用:
#mv composer.phar /usr/local/bin/composer
现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar 。
4、检查 Composer 是否正常工作 , 只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表 。
使用 Composer
要在项目中使用 Composer,只需要一个 composer.json 文件 。该文件包含了项目的依赖和其它的一些元数据 。现在使用 Composer 来安装项目的依赖 。
1、创建 composer.json 文件
在当前目录下创建 composer.json 文件,在 composer.json 文件中指定 require key 的值 。简单的告诉 Composer 你的项目需要依赖哪些包 。
例如:
{"require": {"monolog/monolog": "1.0.*"} }
可以看到, require 需要一个 包名称monolog/monolog映射到 包版本 1.0.*的对象 。包名称由供应商名称和其项目名称构成 。
怎么使用php 包依赖管理工具 composer 执行命令安装CentOS7下安装Composer安装Composer1、将composer.phar下载到项目中使用curl-sShttps://getcomposer.org/installer|php下载Composer的二进制文件,是一个PHAR包(PHP的归档)2、可以通过--install-dir选项指定Composer的安装目录(它可以是一个绝对或相对路径):curl-sShttps://getcomposer.org/installer|php----install-dir=lumen3、如果把composer.phar放在系统的PATH目录中,就能在全局访问composer.phar 。在类Unix系统中 , 你甚至可以在使用时不加php前缀 。可以执行这些命令让composer在你的系统中进行全局调用:#mvcomposer.phar/usr/local/bin/composer现在只需要运行composer命令就可以使用Composer而不需要输入phpcomposer.phar 。4、检查Composer是否正常工作,只需要通过php来执行PHAR:phpcomposer.phar这将返回给你一个可执行的命令列表 。使用Composer要在项目中使用Composer,只需要一个composer.json文件 。该文件包含了项目的依赖和其它的一些元数据 。现在使用Composer来安装项目的依赖 。1、创建composer.json文件在当前目录下创建composer.json文件 , 在composer.json文件中指定requirekey的值 。简单的告诉Composer你的项目需要依赖哪些包 。例如:{"require":{"monolog/monolog":"1.0.*"}}可以看到,require需要一个包名称monolog/monolog映射到包版本1.0.*的对象 。包名称由供应商名称和其项目名称构成 。2、安装依赖包执行install命令获取定义的依赖到本地项目:phpcomposer.pharinstall如果你进行了全局安装,并且没有phar文件在当前目录,使用下面的命令代替:composerinstall这将会找到monolog/monolog的最新版本,并将它下载到vendor目录 。这是一个惯例把第三方的代码到一个指定的目录vendor 。如果是monolog将会创建vendor/monolog/monolog目录 。注意:install命令将创建一个composer.lock文件到你项目的根目录中 。3、自动加载除了库的下载,Composer还准备了一个自动加载文件,它可以加载Composer下载的库中所有的类文件 。使用它,你只需要将下面这行代码添加到你项目的引导文件中:require'vendor/autoload.php';现在我们就可以使用monolog了
如何使用composer安装phinx因为 composer update 的逻辑是按照 composer.json 指定的扩展包版本规则,把所有扩展包更新到最新版本,注意,是 所有扩展包,举个例子 , 你在项目一开始的时候使用了 monolog,当时的配置信息是
"monolog/monolog": "1.*",
安装的是 monolog 1.1 版本 , 而一个多月以后的现在,monolog 已经是 1.2 了,运行命令后直接更新到 1.2,这时项目并没有针对 1.2 进行过测试,项目一下子变得很不稳定,情况有时候会比这个更糟糕,尤其是在一个庞大的项目中,你没有对项目写完整覆盖测试的情况,什么东西坏掉了你都不知道 。
简单解释
composer install - 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖;
composer update - 从 composer.json 安装最新扩展包和依赖;
composer update vendor/package - 从 composer.json 或者对应包的配置,并更新到最新;
composer require new/package - 添加安装 new/package , 可以指定版本,如: composer require new/package ~2.5.
流程
接下来介绍几个日常生产的流程,来方便加深大家的理解 。
流程一:新项目流程
创建 composer.json,并添加依赖到的扩展包;
运行 composer install ,安装扩展包并生成 composer.lock ;
提交 composer.lock 到代码版本控制器中,如:git;
流程二:项目协作者安装现有项目
克隆项目后 , 根目录下直接运行 composer install 从 composer.lock 中安装指定版本 的扩展包以及其依赖;
此流程适用于生产环境代码的部署 。
流程三:为项目添加新扩展包
使用 composer require vendor/package 添加扩展包;
提交更新后的 composer.json 和 composer.lock 到代码版本控制器中,如:git;
关于 composer.lock 文件
composer.lock 文件里保存着对每一个代码依赖的版本记录(见下图),提交到版本控制器中,并配合 composer install 使用,保证了团队所有协作者开发环境、线上生产环境中运行的代码版本的一致性 。
关于扩展包的安装方法
那么 , 准备添加一个扩展包,install, update, require 三个命令都可以用来安装扩展包,选择哪一个才是正确的呢?
答案是:使用 composer require 命令
另外,在手动修改 composer.json 添加扩展包后, composer update new/package 进行指定扩展包更新的方式,也可以正确的安装 , 不过不建议使用这种方法,因为,一旦你忘记敲定后面的扩展包名 , 就会进入万劫不复的状态,别给自己留坑呀 。
上面的概念不论对新手或者老手来说,都比较混淆 , 主要记住这个概念:
原有项目新添加扩展的,都使用 composer require new/package 这种方式来安装 。
如何安装Composer解压下载的压缩包,找到“Composer-Setup.exe”安装程序,双击运行,进入安装界面,点击"next” 。选择自己安装的php.exe , composer将会为你检查php配置和一些其他的设置 。代理服务器设置,这里小编没有用代理服务器,直接点击“next” 。很快就安装好了,点击“finish”退出安装界面 。打开CMD,输入composer,出现下图所示界面则表示安装成功了 。http://www.ddooo.com/softdown/94966.htm
window怎么安装composer百度搜索下载 Composer-Setup.exe 安装软件包
下载成功!
准备安装软件,双击软件就可以安装此软件 默认安装装就可以了,并会自动搜索PHP.exe的安装路径 。
稍等一会,下载组件
显示此页面表示安装完成!如果报错 就检查 PHP扩展的OpenSSL 有没有打开
验证是否成功 。打开win+R 》 cmd输入 composer,显示如下界面 表示安装成功!
如何安装composerComposer(php依赖关系管理工具) v1.4.1官方版http://www.ddooo.com/softdown/94966.htm
Composer是PHP中的依赖关系管理工具 。说到PHP , 难免会触及到composer , 尤其像laravel、yii这样的框架,都可以看到composer的身影 。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装、更新这些依赖的库文件 。Composer需要PHP 5.3.2+ 。还需要一些敏感的php设置和编译标志 , 但是当使用安装程序时,将警告任何不兼容性 。
Composer安装教程
1.解压下载的压缩包,找到“Composer-Setup.exe”安装程序,双击运行,进入安装界面,点击"next” 。
2.选择自己安装的php.exe,composer将会为你检查php配置和一些其他的设置 。
3.代理服务器设置,这里小编没有用代理服务器,直接点击“next” 。
4.很快就安装好了,点击“finish”退出安装界面 。
5.打开CMD,输入composer,出现下图所示界面则表示安装成功了 。
如何安装Composer百度搜索下载 Composer-Setup.exe 安装软件包
准备安装软件,双击软件就可以安装此软件 默认安装装就可以了,并会自动搜索PHP.exe的安装路径 。
稍等一会 , 下载组件显示此页面表示安装完成!如果报错 就检查 PHP扩展的OpenSSL 有没有打开验证是否成功 。打开win+R 》 cmd输入 composer,显示如下界面 表示安装成功!
注意事项:切记打开PHP扩展的openssl扩展!
如何用composer指定安装laravel版本例如我想安装laravel5 不想要5.1怎么安装composer create-project laravel/laravel=5.0.* --prefer-dist
composer安装哪个版本好 方法/步骤
1
百度搜索下载 Composer-Setup.exe 安装软件包
2
下载成功!
3
准备安装软件,双击软件就可以安装此软件 默认安装装就可以了 , 并会自动搜索PHP.exe的安装路径 。
4
稍等一会,下载组件
5
显示此页面表示安装完成!如果报错 就检查 PHP扩展的OpenSSL 有没有打开
6
验证是否成功 。打开win+R 》 cmd输入 composer,显示如下界面 表示安装成功!
怎么安装 指定版本的lumen我只知道通过composer安装方法 , lumen命令不知道
composer create-projectlaravel/lumen blog--prefer-dist"5.5.*"
blog 是你创建的项目名5.5.* 是你要指定的版本
composer安装Laravel只有5.2版本通过指定版本号可以安装不同版本的laravel,比如安装5.4版本用下面的命令行即可
composer create-project --prefer-dist laravel/laravel blog 5.4.*
php7版本怎么安装composer方法/步骤
百度搜索下载 Composer-Setup.exe 安装软件包
下载成功!
准备安装软件,双击软件就可以安装此软件 默认安装装就可以了 , 并会自动搜索PHP.exe的安装路径 。
稍等一会 , 下载组件
显示此页面表示安装完成!如果报错 就检查 PHP扩展的OpenSSL 有没有打开
验证是否成功 。打开win+R 》 cmd输入 composer,显示如下界面 表示安装成功!
怎么更新composer版本composer create-project laravel/laravel=5.0.* --prefer-dist
怎么修改composer安装时php版本这个问题我不是怎么很清楚?你在这里问也找不到什么详细的答案,还不如去后盾找找看,去看看又没有什么,不喜欢你也可以在另找!
composer安装 怎么选择安装版本Composer安装教程1.打开Composer解压下载的压缩包,找到“Composer-Setup.exe”安装程序,双击运行,进入安装界面,点击"next” 。2.选择自己安装的php.exe,composer将会为你检查php配置和一些其他的设置 。3.代理服务器设置 , 这里小编没有用代理服务器,直接点击“next” 。4.很快就安装好了,点击“finish”退出安装界面 。5.打开CMD,输入composer,出现下图所示界面则表示安装成功了 。
如何卸载 composervid Media Composer是一款视频编辑工具 。
1、可以通过控制面板进行卸载,同时按WIN+R键,打开“运行”对话框,输入appwiz.cpl,按回车键,打开“控制面板”的“卸载程序”界面,找到此程序,右键选择“卸载”即可 。
2、可以通过360、qq管家等软件的应用程序管理软件进行卸载 。以qq管家为例 , 打开“软件管理”,左侧点击“卸载“,右侧找到此程序,点击“卸载”即可 。
如何卸载 composer有三种常见卸载方式,但根据软件,不一定都具备 。1、安装完软件后 , 不单有软件运行快捷图标,同时还会有一个卸载该软件的快捷图标,名字有很多,比如“卸载****”、“Uninstall***”等,直接运行,根据提示进行卸载就可以 。2、在“我的电脑”里“控制面板”里面,有一个“添加/删除程序” , 点击进入后 , 等它扫描一会儿后会出现你安装过的程序,在里面找到你要卸载的软件,然后点击卸载 。3、现在有很多第三方软件,比如“360安全卫士”、“金山安全卫士”等,里面就有卸载安装的软件功能,进入后选择要卸载的软件进行卸载?。。?
如何卸载 composer打开命令控制界面
输入:composer remove
第二步:
删除C盘下的composer文件夹
php用composer安装模块 如何卸载我安装的模块呢把你的php安装路径加入系统变量或者在PHP安装目录下执行 。
如何卸载 composer找到安装位置,rm掉即可
windows 安装完composer怎么用以下界面应该是这个,他应该是忘记放图了
如何在Windows使用Composer
文章插图
一、使用工具:Composer安装文件、windows操作系统二、方法步骤:1、下载Composer-Setup.exe;2、打开php.ini配置文件;开启php_openssl.dll扩展;3、然后重启web服务器;比如:apache,Nginx,IIS等;4、双击运行Composer-Setup.exe文件;5、点击:Next按钮;6、点击:Broser按钮,然后查找查找并选择PHP.exe文件;然后点击:Next按钮;7、点击:Next按钮;8、点击:Install按钮进行安装;9、点击:Next按钮;10、点击:Finish按钮完成安装;11、打开DOS窗口;12、输入:composer 回车;出现下面信息,则表示Composer安装成功!三、注意事项:安转时不要勾选代理;php.exe的路径;
如何在Windows使用Composer一、使用安装程序
去官网下载并且运行 Composer-Setup.exe,它将安装最新版本的 Composer ,并设置好系统的环境变量,因此用户可以在任何目录下直接使用 composer 命令 。
二、手动安装
设置系统的环境变量 PATH 并运行安装命令下载 composer.phar 文件:
C:\Users\username>cd C:\bin
C:\bin>php -r "readfile('https://getcomposer.org/installer');" | php
注:如果收到 readfile 错误提示,请使用 http 链接或者在 php.ini 中开启 php_openssl.dll。
三、在 composer.phar 同级目录下新建文件 composer.bat :
C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat
关闭当前的命令行窗口,打开新的命令行窗口进行测试:
C:\Users\username>composer -V Composer version 27d8904
看到版本号的同时意味着已经安装成功了 。
四、测试是否安装成功
安装好以后,查看是否安装成功,在任何目录下点击右键可看到composer菜单 。
(望楼主采纳哦)
如何在Windows使用ComposerComposer 是PHP的包管理工具,非常方便 。但是安装使用 , 却没有官方教程那么简单,尤其是在中国,还有Windows下......本文将教如何正确安装Composer 及正确使用 。
一,设置php.ini,方便安装
在从官网下载 Composer-Setup.exe安装程序后,在安装过程中会碰到几个麻烦的地方:
1. 找不到扩展dll文件,修改php.ini文件内 extension_dir 参数
2. browscap未找到 , 修改php.ini文件内 browscap参数
3. SSL dll未找到,修改php.ini文件内";extension=php_openssl.dll",去掉前面“;”
二,
使用Composer中文镜像网站,替代国外网站
当安装完Composer后 , 使用时 , 缺发现不能下载包,这是一个众所周知的原因 。
所以,要什么国内的镜像站点进行代替 , 常用方法有两种:
1. 修改全局配置:全局配置的文件一般放在 C:\Users\XXX\AppData\Roaming\Composer\config.json;
{"config": {},"repositories": [{"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},{"packagist": false}]}
2. 修改当前配置:即项目当前的composer.json文件;
以 laravel 项目的 composer.json 配置文件为例:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "4.2.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable",
"repositories": [
{"type": "composer", "url": ""},
{"packagist": false}
]
}
window环境下安装composer后怎么用到php方法/步骤 1 百度搜索下载 Composer-Setup.exe 安装软件包 2 下载成功! 3 准备安装软件,双击软件就可以安装此软件 默认安装装就可以了,并会自动搜索PHP.exe的安装路径 。4 稍等一会,下载组件 5 显示此页面表示安装完成
如何在Linux上安装ComposerComposer安装必须要先安装PHP环境 局部安装 要真正获取 Composer,我们需要做两件事 。首先安装 Composer (同样的,这意味着它将下载到你的项目中): curl -sS https://getcomposer.org/installer | php 全局安装 你可以将此文件放在任何地方 。...
如何在Linux上安装Composer如何在Linux上安装Composer
1、检查系统需求
Apache/Nginx
MySQL
PHP 5.5.9+
Composer
PHP扩展:OpenSSL、 PDO、Mbstring、Tokenizer、Fileinfo、GD(2.0+)/Imagick(6.5.7+)
系统满足上述需求后才能继续进行安装 。
2、使用Composer安装项目和依赖
在web根目录下运行以下命令:
composer create-project pyrocms/pyrocms=3.0-beta1 --prefer-source
注意在Windows系统中这里我们不能使用--prefer-dist选项进行安装,否则会报错:
[ErrorException]
ZipArchive::extractTo(): No such file or directory
注:使用--prefer-source选项会强制克隆源代码,而不是像--prefer-dist那样强制下载git引用的压缩包 。
Composer使用PHP的ZipArchive扩展压缩文件,使用--prefer-dist安装在Windows系统上存在一个问题:如果路径大于256个字符或者包含.会抛出上述错误异常,进而导致Composer不能继续往下运行 。Linux上则不存在这个问题 。
安装完成后,如果是在Linux环境需要配置storage、public/assets、bootstrap/cache目录的可写权限 。
如果你觉得Composer安装麻烦还可以使用学院提供的一键安装包:PyroCMS 3.0测试版一键安装包 。
如何在Linux上安装Composer一、局部安装局部安装是将 composer 安装到当前目录下面(比如安装到项目根目录下),然后就可以通过 php composer.phar 来使用 composer 了 。Mac 或 Linux 系统:打开命令行窗口并执行如下命令:二、全局安装:全局安装是将 composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了 。Mac 或 Linux 系统:打开命令行窗口并执行如下命令:
如何在Linux上安装Composer如果你使用的是 Debian 系列的 Linux ,如 Ubuntu 或 Mint ,在连接了互联网的条件下使用命令:
apt install composer
即可 。
如果你用的 Linux 是 Fedora 和 RedHat、 红旗 之类的垃圾版本,把 apt 三个字母换成 yum 效果等同 。
composer安装包安装后怎么用CentOS 7下安装Composer
安装Composer
1、将composer.phar下载到项目中
使用curl -sS https://getcomposer.org/installer | php下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)
2、可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):curl -sS https://getcomposer.org/installer | php -- --install-dir=lumen
3、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar 。在类Unix系统中,你甚至可以在使用时不加 php 前缀 。可以执行这些命令让 composer 在你的系统中进行全局调用:
#mv composer.phar /usr/local/bin/composer
现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar 。
4、检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表 。
使用 Composer
要在项目中使用 Composer,只需要一个 composer.json 文件 。该文件包含了项目的依赖和其它的一些元数据 。现在使用 Composer 来安装项目的依赖 。
1、创建 composer.json 文件
在当前目录下创建 composer.json 文件 , 在 composer.json 文件中指定 require key 的值 。简单的告诉 Composer 你的项目需要依赖哪些包 。
例如:
{"require": {"monolog/monolog": "1.0.*"} }
可以看到 , require 需要一个 包名称monolog/monolog映射到 包版本 1.0.*的对象 。包名称由供应商名称和其项目名称构成 。
2、安装依赖包
执行 install 命令获取定义的依赖到本地项目:
php composer.phar install
如果你进行了全局安装,并且没有 phar 文件在当前目录,使用下面的命令代替:
composer install
这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录 。这是一个惯例把第三方的代码到一个指定的目录 vendor 。如果是 monolog 将会创建 vendor/monolog/monolog 目录 。
注意: install 命令将创建一个 composer.lock 文件到你项目的根目录中 。
3、自动加载
除了库的下载,Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件 。使用它,你只需要将下面这行代码添加到你项目的引导文件中:
require 'vendor/autoload.php';
现在我们就可以使用 monolog 了
如何使用Composer遇到过相同的问题, 我的解决方案是在 `.gitignore` 文件里面把 `composer.lock` 这一行去掉, 也就是说把 `composer.lock` 文件也加入版本控制.
这样做有以下好处:
让参与项目开发的成员使用这些 package 的同一版本, 减少分歧;
在生产环境下, 使用命令 `composer install` 可以确保跟开发的时候使用了统一的版本, 减少不必要的变数;
跟踪当前项目使用所有 `package` 的版本, 当执行 `composer update` 出现问题时, 可以利用 Git 定位到出问题的 package, 匹对下版本, 接下来就可以做如: 在 composer.json 里面写死版本等的解决动作了.
注意: 这里说下 composer 的机制, 当 `composer.lock` 文件存在的时候, 执行 `composer install` 命令时, composer 会更新按照 `composer.lock` 里的 package 指定版本进行安装, 如果是执行 `composer update` 的话, 会更新 `package` 版本, 并更新 `composer.lock` 文件.
最后一条好处尤其重要, 设想如果是在没有版本控制 `composer.lock` 文件的情况下, 一出现问题, 那就直接瞎眼了.
thinkphp应用怎么通过composer加载第三方库直接在入口文件中包含composer的autoload脚本Composer 是PHP的一个包依赖管理工具,类似Ruby中的RubyGems或者Node中的NPM,它并非官方,但现在已经非常流行 。此文并不介绍如何使用Composer,而是关注于它的autoload的内容吧 。举例来说,假设我们的项目想要使用 monolog 这个日志工具,就需要在composer.json里告诉composer我们需要它:{"require": { "monolog/monolog": "1.*"}}之后执行:php composer.phar install好,现在安装完了,该怎么使用呢?Composer自动生成了一个autoload文件,你只需要引用它require '/path/to/vendor/autoload.php';然后就可以非常方便的去使用第三方的类库了,是不是感觉很棒?。《杂谖颐切枰膍onolog,就可以这样用了:use Monolog\Logger;use Monolog\Handler\StreamHandler;// create a log channel$log = new Logger('name');$log->pushHandler(new StreamHandler('/path/to/log/log_name.log', Logger::WARNING));// add records to the log$log->addWarning('Foo');$log->addError('Bar');在这个过程中 , Composer做了什么呢?它生成了一个autoloader,再根据各个包自己的autoload配置,从而帮我们进行自动加载的工作 。(如果对autoload这部分内容不太了解,可以看我之前的 一篇文章)接下来让我们看看Composer是怎么做的吧 。对于第三方包的自动加载 , Composer提供了四种方式的支持,分别是 PSR-0和PSR-4的自动加载(我的一篇文章也有介绍过它们) , 生成class-map,和直接包含files的方式 。PSR-4是composer推荐使用的一种方式,因为它更易使用并能带来更简洁的目录结构 。在composer.json里是这样进行配置的:{ "autoload": {"psr-4": {"Foo\\": "src/",} }}key和value就定义出了namespace以及到相应path的映射 。按照PSR-4的规则,当试图自动加载 "Foo\\Bar\\Baz" 这个class时 , 会去寻找 "src/Bar/Baz.php" 这个文件,如果它存在则进行加载 。注意, "Foo\\"并没有出现在文件路径中 , 这是与PSR-0不同的一点,如果PSR-0有此配置,那么会去寻找"src/Foo/Bar/Baz.php"这个文件 。另外注意PSR-4和PSR-0的配置里 , "Foo\\"结尾的命名空间分隔符必须加上并且进行转义,以防出现"Foo"匹配到了"FooBar"这样的意外发生 。在composer安装或更新完之后 , psr-4的配置换被转换成namespace为key,dir path为value的Map的形式,并写入生成的 vendor/composer/autoload_psr4.php 文件之中 。{ "autoload": {"psr-0": {"Foo\\": "src/",} }}最终这个配置也以Map的形式写入生成的vendor/composer/autoload_namespaces.php文件之中 。Class-map方式,则是通过配置指定的目录或文件,然后在Composer安装或更新时,它会扫描指定目录下以.php或.inc结尾的文件中的class,生成class到指定file path的映射,并加入新生成的 vendor/composer/autoload_classmap.php 文件中 , 。{ "autoload": {"classmap": ["src/", "lib/", "Something.php"] }}例如src/下有一个BaseController类,那么在autoload_classmap.php文件中,就会生成这样的配置:'BaseController' => $baseDir . '/src/BaseController.php'Files方式,就是手动指定供直接加载的文件 。比如说我们有一系列全局的helper functions,可以放到一个helper文件里然后直接进行加载{ "autoload": {"files": ["src/MyLibrary/functions.php"] }}它会生成一个array,包含这些配置中指定的files,再写入新生成的vendor/composer/autoload_files.php文件中,以供autoloader直接进行加载 。下面来看看composer autoload的代码吧<?php// autoload_real.php @generated by Composerclass ComposerAutoloaderInit73612b48e6c3d0de8d56e03dece61d11{ private static $loader; public static function loadClassLoader($class) {if ('Composer\Autoload\ClassLoader' === $class) {require __DIR__ . '/ClassLoader.php';} } public static function getLoader() {if (null !== self::$loader) {return self::$loader;}spl_autoload_register(array('ComposerAutoloaderInit73612b48e6c3d0de8d56e03dece61d11', 'loadClassLoader'), true, true);self::$loader = $loader = new \Composer\Autoload\ClassLoader();spl_autoload_unregister(array('ComposerAutoloaderInit73612b48e6c3d0de8d56e03dece61d11', 'loadClassLoader'));$vendorDir = dirname(__DIR__); //verdor第三方类库提供者目录$baseDir = dirname($vendorDir); //整个应用的目录$includePaths = require __DIR__ . '/include_paths.php';array_push($includePaths, get_include_path());set_include_path(join(PATH_SEPARATOR, $includePaths));$map = require __DIR__ . '/autoload_namespaces.php';foreach ($map as $namespace => $path) {$loader->set($namespace, $path);}$map = require __DIR__ . '/autoload_psr4.php';foreach ($map as $namespace => $path) {$loader->setPsr4($namespace, $path);}$classMap = require __DIR__ . '/autoload_classmap.php';if ($classMap) {$loader->addClassMap($classMap);}$loader->register(true);$includeFiles = require __DIR__ . '/autoload_files.php';foreach ($includeFiles as $file) {composerRequire73612b48e6c3d0de8d56e03dece61d11($file);}return $loader; }}function composerRequire73612b48e6c3d0de8d56e03dece61d11($file){ require $file;}首先初始化ClassLoader类,然后依次用上面提到的4种加载方式来注册/直接加载,ClassLoader的一些核心代码如下:/** * @param array $classMap Class to filename map */public function addClassMap(array $classMap){ if ($this->classMap) {$this->classMap = array_merge($this->classMap, $classMap); } else {$this->classMap = $classMap; }}/** * Registers a set of PSR-0 directories for a given prefix, * replacing any others previously set for this prefix. * * @param string$prefix The prefix * @param array|string $paths The PSR-0 base directories */public function set($prefix, $paths){ if (!$prefix) {$this->fallbackDirsPsr0 = (array) $paths; } else {$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; }}/** * Registers a set of PSR-4 directories for a given namespace, * replacing any others previously set for this namespace. * * @param string$prefix The prefix/namespace, with trailing '\\' * @param array|string $paths The PSR-4 base directories * * @throws \InvalidArgumentException */public function setPsr4($prefix, $paths){ if (!$prefix) {$this->fallbackDirsPsr4 = (array) $paths; } else {$length = strlen($prefix);if ('\\' !== $prefix[$length - 1]) {throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");}$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;$this->prefixDirsPsr4[$prefix] = (array) $paths; }}/** * Registers this instance as an autoloader. * * @param bool $prepend Whether to prepend the autoloader or not */public function register($prepend = false){ spl_autoload_register(array($this, 'loadClass'), true, $prepend);}/** * Loads the given class or interface. * * @param string $class The name of the class * @return bool|null True if loaded, null otherwise */public function loadClass($class){ if ($file = $this->findFile($class)) {includeFile($file);return true; }}/** * Finds the path to the file where the class is defined. * * @param string $class The name of the class * * @return string|false The path if found, false otherwise */public function findFile($class){ //这是PHP5.3.0 - 5.3.2的一个bug 详见https://bugs.php.net/50731 if ('\\' == $class[0]) {$class = substr($class, 1); } // class map 方式的查找 if (isset($this->classMap[$class])) {return $this->classMap[$class]; } //psr-0/4方式的查找 $file = $this->findFileWithExtension($class, '.php'); // Search for Hack files if we are running on HHVM if ($file === null && defined('HHVM_VERSION')) {$file = $this->findFileWithExtension($class, '.hh'); } if ($file === null) {// Remember that this class does not exist.return $this->classMap[$class] = false; } return $file;}private function findFileWithExtension($class, $ext){ // PSR-4 lookup $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; $first = $class[0]; if (isset($this->prefixLengthsPsr4[$first])) {foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {if (0 === strpos($class, $prefix)) {foreach ($this->prefixDirsPsr4[$prefix] as $dir) {if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {return $file;}}}} } // PSR-4 fallback dirs foreach ($this->fallbackDirsPsr4 as $dir) {if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {return $file;} } // PSR-0 lookup if (false !== $pos = strrpos($class, '\\')) {// namespaced class name$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1). strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); } else {// PEAR-like class name$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; } if (isset($this->prefixesPsr0[$first])) {foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {if (0 === strpos($class, $prefix)) {foreach ($dirs as $dir) {if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {return $file;}}}} } // PSR-0 fallback dirs foreach ($this->fallbackDirsPsr0 as $dir) {if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {return $file;} } // PSR-0 include paths. if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {return $file; }}/*** Scope isolated include.** Prevents access to $this/self from included files.*/function includeFile($file){include $file;
如何创建一个自己的 Composer/Packagist 包如何创建一个自己的 Composer/Packagist 包首先让我们踏着欢快的脚步去Github创建一个新库 , 这里取名 composer-car , 又欢快的将它克隆到本地:git clone https://github.com/GeHou/composer-car.git cd composer-car这个composer-car文件夹就是你的包的root目录了,你只需要记住composer.json在包的哪个目录下面,一般那就是包的root目录了 。什么?做包子的工作台?这么理解呢也是可以的,不过同学能先收收你的口水么 。现在我们还没有composer.json文件,你可以根据composer文档生成并编辑它,当然composer贴心的为我们准备了命令行 , look:?-> composer init Welcome to the Composer config generator This command will guide you through creating your composer.json config. Package name (/) [hou/composer-car]: 这里填写/的信息Description []: 包的描述Author [GeHou ]: 作者信息Minimum Stability []: 最低稳定版本License []: 授权协议 Define your dependencies. Would you like to define your dependencies (require) interactively [yes]? noWould you like to define your dev dependencies (require-dev) interactively [yes]? no {"name": "hou/composer-car","description": "In order to study composer","license": "MIT","authors": [{"name": "GeHou","email": "***@gmail.com"}],"minimum-stability": "dev","require": {}} Do you confirm generation [yes]? yesWould you like the vendor directory added to your .gitignore [yes]? yes虽然经过以上的一番挣扎生成了composer.json文件,不过我们还得往里面加点东西 。使用你熟悉的编辑器打开composer.json文件修改至如下:?{"name": "hou/composer-car","description": "In order to study composer","license": "MIT","authors": [{"name": "GeHou","email": "***@gmail.com"}],"minimum-stability": "dev","require": {"php": ">=5.3.0"},"autoload": {"psr-4": {"Ford\\Escape\\": "src/Ford/Escape","Ford\\Fusion\\": "src/Ford/Fusion","Ford\\Focus\\": "src/Ford/Focus","Ford\\Fiesta\\": "src/Ford/Fiesta"}}}细心的小伙伴可能已经认出了福特的商标(Ford),这说明我们都是同道中人,你一定也很喜欢汽车,对吧对吧? :-)我们登陆一下福特的网站看看都有哪些热销车型,嗯嗯分别有ESCAPE、FUSION、FOCUS、FIESTA,中文名称分别是翼虎、蒙迪欧、福克斯、嘉年华,嘉年华ST我的梦想啊~~~ 好了好了,那位看官放下你手里的板砖,我承认一说到汽车就会滔滔不绝 , 下面我们把水分挤出去继续讲解 。根据上面的命名空间和目录的映射关系,包的结构现在应该是下面这个样子:?composer-car- src- - Ford- - - Escape- - - - Escape2013.php- - - Fiesta- - - - Fiesta2013.php- - - Focus- - - - Focus2013.php- - - Fusion- - - - Fusion2013.php- .gitignore- composer.json- README.mdEscape2013.php:<?php namespace Ford\Escape; class Escape2013{public static function info(){echo "This is Ford Escape2013!
";}}Fiesta2013.php:<?php namespace Ford\Fiesta; class Fiesta2013{public static function info(){echo "This is Ford Fiesta2013!
";}}Focus2013.php:?<?php namespace Ford\Focus; class Focus2013{public static function info(){echo "This is Ford Focus2013!
";}}Fusion2013.php:<?php namespace Ford\Fusion; class Fusion2013{public static function info(){echo "This is Ford Fusion2013!
";}}以上都梳理完毕后,需要安装composer来测试我们的包是否可以正常工作,安装它很简单在包的root目录下install即可:?1composer install闪过几行神秘的提示之后即安装完毕,此时会在vendor/composer/autoload_psr4.php中生成命名空间和目录的映射关系,被包在一个数组中: array($baseDir . '/src/Ford/Fusion'),'Ford\\Focus\\' => array($baseDir . '/src/Ford/Focus'),'Ford\\Fiesta\\' => array($baseDir . '/src/Ford/Fiesta'),'Ford\\Escape\\' => array($baseDir . '/src/Ford/Escape'),);如果发布成packagist包然后进行安装的话,到时候这里就不是$baseDir了而是$vendorDir 。然后我们新建一个测试文件show.php,用以下内容填充它:<?php require 'vendor/autoload.php'; use Ford\Escape as Escape;use Ford\Fiesta as Fiesta;use Ford\Focus as Focus;use Ford\Fusion as Fusion; echo Escape\Escape2013::info();echo Fiesta\Fiesta2013::info();echo Focus\Focus2013::info();echo Fusion\Fusion2013::info();打开浏览器敲入 http://foo.com/composer-car/show.php (foo.com是我的本地测试域名,请替换成小伙伴自己的) 。浏览器上依次输出了:This is Ford Escape2013!This is Ford Fiesta2013!This is Ford Focus2013!This is Ford Fusion2013!是不是有点小激动呢?别急,别一副作鸟兽散的样子,还有发布的流程呢?不过你要是真的急着wc或者觉得教程too simple , 侯哥是不会让你捡肥皂的 。首先作为调试代码的部分我们是不需要push到github上的,所以将show.php打入冷宫 , 编辑.gitignore文件,在末尾加入show.php 。这个时候有些小伙伴可能会疑惑了,为什么上面还有个/vendor/ , 记得我们init包的时候回答过一个问题么??1Would you like the vendor directory added to your .gitignore [yes]? yes嗯嗯,你懂了吧?
composer 中国镜像怎么安装Composer
http://www.ddooo.com/softdown/94966.htm
1.解压下载的压缩包,找到“Composer-Setup.exe”安装程序 , 双击运行,进入安装界面,点击"next” 。
2.选择自己安装的php.exe,composer将会为你检查php配置和一些其他的设置 。
3.代理服务器设置,这里小编没有用代理服务器,直接点击“next” 。
4.很快就安装好了,点击“finish”退出安装界面 。
5.打开CMD,输入composer , 出现下图所示界面则表示安装成功了
composer 中国镜像发生问题怎么办in which you demand my assistanceave in m
mac composer 怎么查看是否安装成功window下: Linux下: #!/bin/bash #检查是否已经安装 rpm -qa | grep python #查版本 python #最好是重新安装 Python推荐版本( >= v2.5.0 & < 3.0.0 ) , 否则影响nodejs运行 #进入安装目录 cd /usr/local/ #删除原有安装 rm -rf node rm -rf n...
如何查看composer安装路径 , 全局使用composercomposer安装后怎么找不到它的文件安装路径
CentOS 7下安装Composer
安装Composer
1、将composer.phar下载到项目中
使用curl -sS下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)
2、可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):curl -sS
3、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar 。在类Unix系统中,你甚至可以在使用时不加 php 前缀 。可以执行这些命令让 composer 在你的系统中进行全局调用:
#mv composer.phar /usr/local/bin/composer
现在只需要运行 composer 命令就可以使用 Composer 而不需要输入 php composer.phar 。
4、检查 Composer 是否正常工作,只需要通过 php 来执行 PHAR:php composer.phar这将返回给你一个可执行的命令列表 。
使用 Composer
要在项目中使用 Composer,只需要一个 composer.json 文件 。该文件包含了项目的依赖和其它的一些元数据 。现在使用 Composer 来安装项目的依赖 。
1、创建 composer.json 文件
在当前目录下创建 composer.json 文件,在 composer.json 文件中指定 require key 的值 。简单的告诉 Composer 你的项目需要依赖哪些包 。
例如:
{"require": {"monolog/monolog": "1.0.*"} }
可以看到,require 需要一个 包名称monolog/monolog映射到 包版本 1.0.*的对象 。包名称由供应商名称和其项目名称构成 。
2、安装依赖包
执行 install 命令获取定义的依赖到本地项目:
php composer.phar install
如果你进行了全局安装,并且没有 phar 文件在当前目录,使用下面的命令代替:
composer install
这将会找到 monolog/monolog 的最新版本,并将它下载到 vendor 目录 。这是一个惯例把第三方的代码到一个指定的目录 vendor 。如果是 monolog 将会创建 vendor/monolog/monolog 目录 。
注意: install 命令将创建一个 composer.lock 文件到你项目的根目录中 。
3、自动加载
除了库的下载,Composer 还准备了一个自动加载文件,它可以加载 Composer 下载的库中所有的类文件 。使用它,你只需要将下面这行代码添加到你项目的引导文件中:
require 'vendor/autoload.php';
现在我们就可以使用 monolog 了
如何查看composer安装路径,全局使用composer1、将composer.phar下载到项目中
使用curl -sS下载Composer 的二进制文件,是一个 PHAR 包(PHP 的归档)
2、可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):curl -sS
3、如果把composer.phar放在系统的 PATH 目录中,就能在全局访问composer.phar 。在类Unix系统中,你甚至可以在使用时不加 php 前缀 。可以执行这些命令让 composer 在你的系统中进行全局调用:
#mv composer.phar /usr/local/bin/composer
php composer怎么用Composer很好的解决了PHP的包管理和依赖问题,只需要import一个文件,Composer中管理的所有库就会按需加载,而不需要每个import 。
先介绍一下Composer的安装 。Composer的官方地址: https://getcomposer.org/
安装
curl -sS https://getcomposer.org/installer | php
这样在当前目录下会下载一个composer.phar的文件,为了方便,我们可以重命名一下,并放到/usr/local/bin下 , 方便执行 。
mv composer.phar /usr/local/bin/composer
使用
一般我习惯把Composer放在/opt下 , 所以先创建一个Composer的目录
mkdir /opt/composer
先下载一个KLogger , 一个写日志的库,本人比较喜欢 。
cd /opt/composer
composer require katzgrau/klogger:dev-master
这样,KLogger就被下载下来了,使用很简单,只需要引入一个文件 。
<?php
require '/opt/composer/vendor/autoload.php';
$logger = new Katzgrau\KLogger\Logger(__DIR__.'/logs');
...
KLogger可以使用了,我们在下载一个别的库,Medoo:一个轻量级的数据库框架 。同样的方式来下载 。
cd /opt/composer
composer require catfan/Medoo
使用同理
<?php
require '/opt/composer/vendor/autoload.php';
$medoo = new medoo();
//继续使用KLogger
$logger = new Katzgrau\KLogger\Logger(__DIR__.'/logs');
...
使用很简单 , 只要引入了 vendor/autoload.php ,就可以自动引入用到库,的确很酷 。
加速
如果发现composer执行起来很慢,可以考虑换个镜像 。这里推荐一个日本的镜像: http://composer-proxy.jp/。
执行
composer config -g -e
编辑后
{
"config": {}
,
"repositories": [
{ "packagist": false },
{
"type": "composer",
"url": "http://composer-proxy.jp/proxy/packagist"
}
]
}
如果发现composer长时间没反应,可以在执行时候加入 -vvv 选项,可以输出更多信息,方便查找问题 。
composer -vvv require ...
最后
PHP的 spl_autoload_register 可以很方便做按需引入,当 new 一个类没发现的时候,就会触发,然后我们自己按照规则来处理引入 。
一个简单的例子
<?php
class ClassAutoloader
{
public function __construct()
{
spl_autoload_register(array($this, 'loader'));
}
public function loader($className)
{
$file = dirname(__FILE__) . '/' . $className . '.php';
if (is_file($file)) {
require $file;
}
}
}
$autoloader = new ClassAutoloader();
php composer怎么使用官方有教程?。还揖醯谜飧霾惶糜?nbsp;, 毕竟php不像android那样需要很多库 。
php使用composer加载扩展 , 感觉就跟win10的应用商店似的,意义不大啊
thinkPHP5.0里面说的Composer到底是什么来的就是一个依赖管理工具,lavaral框架就是用composer,tp5有点模仿的意思
php中的composer.json怎么用composer.json是用来安装laravel框架的,前提是你需要安装laravel框架
composer 安装 需要php环境么【composer】需要的 。
composer系统要求
运行 Composer 需要 PHP 5.3.2+ 以上版本 。一些敏感的 PHP 设置和编译标志也是必须的 , 但对于任何不兼容项安装程序都会抛出警告 。
我们将从包的来源直接安装,而不是简单的下载 zip 文件,你需要 git 、 svn 或者 hg , 这取决于你载入的包所使用的版本管理系统 。
Composer 是多平台的,我们努力使它在 Windows 、 Linux 以及 OSX 平台上运行的同样出色 。
- 如何废掉一个人
- 怎样使白球鞋保持洁白 如何使白球鞋保持洁白
- 怎样保养丝绸 如何保养丝绸
- 误购伪劣商品后怎么办 误购伪劣商品如何处理
- 白皮鞋怎样去污 白皮鞋如何去污清理干净呢
- 怎样处理闲置的衣服 如何处理闲置的衣服
- 怎样洗涤多花色羊毛衫 如何清洗多花色的羊毛衫
- 羊毛衫怎么挂不变形 羊毛衫如何挂不变形
- 如何鉴别掺假棉花 掺假棉花的鉴别
- 白色羊毛衫怎么洗白 白色羊毛衫如何洗白