1. php 怎么调用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` 文件的情况下, 一出现问题, 那就直接瞎眼了.
2. 如何使用Composer
1设置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",去掉前面“;”
正确的安装画面,如下:
2使用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": "TheLaravel 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 artisanclear-compiled", "php artisan optimize" ], "post-update-cmd":[ "php artisanclear-compiled", "php artisan optimize" ], "post-create-project-cmd":[ "php artisankey:generate" ] }, "config": { "preferred-install":"dist" }, "minimum-stability":"stable", "repositories": [ {"type":"composer", "url":"http://pkg.phpcomposer.com/repo/packagist/"}, {"packagist": false} ] }
3. 怎么查找php包 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.*的对象。包名称由供应商名称和其项目名称构成。
4. 如何捋清楚php的pecl和pear,composer三者的区别与联系
这三者都与php相关,pecl是php的一种规范,pear是php开发的一个库,composer是一个安装插件库的软件。
希望我的回答可以帮到你,有什么不懂可以追问。
5. 怎么使用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了
6. php中composer有什么用
json和php数组 格式的互相转换,参考如下:$php_json = json_encode($json_arr); //把php数组格式转换成 json 格式的数据echo $php_json;$php_json = json_decode($php_json); //再把json格式的数据转换成php数组print_r($php_json);json数组$json = '[{"id":"22","name":"33","descn":"44"}]'; //json格式的数组转换成 php的数组$arr = (Array)json_decode($json);echo $arr[0]->id; //用对象的方式访问
楼主我也是后盾人学会的,你也可以去学习对你很有帮助
7. php composer为什么安装软件的时候就不动了
首先 Composer 是国外的软件,既然是软件就需要不断的去更新,那更新去哪更新,当然是去国外的网站把更新组件下载到电脑上安装啦!但是在中国是不能去访问国外网站的,你要安装得动剩下的只能使用 VPN 、 代理 或 国内的第三方镜像源。
我建议是用 Packagist 代替 Composer,Packagist 其实也就是 Composer 第三方类库的来源,只不过是网站版的,而 Composer 相对来说就是个客户端,使用起来比较方便而已。
8. 哪些php框架 用了 composer
Composer是PHP界新出现的依赖管理工具,初识Composer的时候,有一种相见恨晚的感觉。
PHP也可以用pear和pecl进行依赖管理,前者是管理PHP库,后者管理PHP扩展。在某些情况下也很方便,我尤其喜欢用pecl安装PHP扩展。
Composer的优点在于仅需要提供一个composer.json文件,申明需要用到的三方库,一个简单的命令就能将其依赖全部装好。也方便项目的部署和发布,因为只需要提供一个composer.json就行了。
现在的缺点是缺少对一些静态资源(如js,css)的直接支持,这也许与其定位有关吧。
当然,Composer 不仅仅是依赖管理工具,还提供了自动加载的支持。这就涉及到php-fig组织的PSR-0规范了。
JavaScript有npm
Java有Maven
Python3.4之后更直接把pip集成了。
9. 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();