我有这个脚本使用composer来设置项目,但由于某些原因不起作用
<?php
include_once 'vendor/autoload.php';
use \LeagueWrap\Api;
$api = new Api($key = "somekey"); // Load up the API
$summoner = $api->summoner(); // Load up the summoner request object.
$bakasan = $summoner->info('bakasan'); // Get the information about this user.
$bakasan = $summoner->info(74602); // same thing as above, just to show that an id will wo$
echo $bakasan->summonerLevel; // 30
echo $bakasan->id; // 74602
echo $bakasan->name; // "bakasan"
echo $bakasan->profileIconId; // 24
echo $bakasan->revisionDate; // 1387391523000
echo $bakasan->revisionDateStr; // "12/18/2013 06:32 PM UTC"
?>
您可以在此处查看http://70.37.98.151/leaguewrap/tests/test2.php我收到的错误
Warning: include_once(vendor/autoload.php): failed to open stream: No such file or directory in /var/www/html/leaguewrap/tests/test2.php on line 3
我的composer.json是
{
"name": "paquettg/leaguewrap",
"type": "library",
"description": "A wrapper for the League of Legends API.",
"version": "0.6.2",
"keywords": ["League", "legends", "wrap", "api", "facade", "proxy"],
"homepage": "https://github.com/paquettg/leaguewrap",
"license": "MIT",
"authors": [
{
"name": "Gilles Paquette",
"email": "paquettg@gmail.com",
"homepage": "http://gillespaquette.ca"
}
],
"require": {
"php": ">=5.4",
"guzzlehttp/guzzle": "4.0.*"
},
"require-dev": {
"phpunit/phpunit": "3.7.*",
"mockery/mockery": "0.8.*",
"satooshi/php-coveralls": "0.6.*"
},
"autoload": {
"psr-0": {
"LeagueWrap": "src/"
}
},
"minimum-stability": "dev"
}
和这里的文件夹树
答案 0 :(得分:0)
似乎是您的Composer安装问题。
请按照以下步骤进行操作 -
首先确保您创建了包含所有依赖项的Composer.json文件。
假设您正在创建一个项目,并且您需要一个可以进行日志记录的库。你决定使用monolog。为了将它添加到项目中,您需要做的就是创建一个描述项目依赖关系的composer.json文件。
{
"require": {
"monolog/monolog": "1.2.*"
}
}
安装 - Linux / Unix / OSX
下载Composer可执行文件
总之,有两种方法可以安装Composer。本地作为项目的一部分,或全局作为系统范围的可执行文件。
<强>本地强>
在本地安装Composer只需在项目目录中运行安装程序:
curl -sS https://getcomposer.org/installer | php
注意:如果上述因某些原因失败,您可以使用php下载安装程序:
php -r "readfile('https://getcomposer.org/installer');" | php
安装程序只检查几个PHP设置,然后将composer.phar下载到您的工作目录。该文件是Composer二进制文件。它是一个PHAR(PHP归档文件),它是PHP的归档格式,可以在命令行上运行,等等。
您可以使用--install-dir选项将Composer安装到特定目录并提供目标目录(它可以是绝对路径或相对路径):
curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
<强>全球强>
您可以将此文件放在任何您想要的位置。如果将其放在PATH中,则可以全局访问它。在unixy系统上,你甚至可以使它成为可执行文件并在没有php的情况下调用它。
您可以运行这些命令,以便从系统的任何位置轻松访问composer:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
注意:如果上述因权限而失败,请使用sudo再次运行mv行。
注意:在OSX Yosemite中,/ usr目录默认不存在。如果收到错误“/ usr / local / bin / composer:没有这样的文件或目录”,那么在继续之前必须手动创建/ usr / local / bin /。
然后,只运行composer以运行Composer而不是php composer.phar。
安装 - Windows
使用安装程序
这是在您的计算机上设置Composer的最简单方法。 下载并运行Composer-Setup.exe,它将安装最新的Composer版本并设置PATH,以便您可以从命令行中的任何目录调用composer。
注意:关闭当前终端。使用新终端测试使用情况:即 很重要,因为PATH仅在终端启动时加载。 手动安装# 切换到PATH上的目录并运行安装代码段以下载composer.phar:
C:\Users\username>cd C:\bin
C:\bin>php -r "readfile('https://getcomposer.org/installer');" | php
注意:如果由于readfile导致上述操作失败,请使用http url或在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
我们现在将使用Composer来安装项目的依赖项。
要解析和下载依赖项,请运行install命令:
php composer.phar install
如果您进行了全局安装,并且该目录中没有phar,请改为运行:
composer install
按照上面的例子,这将下载monolog 供应商/独白/独白目录。
<强>自动加载强>
除了下载库之外,Composer还准备了一个自动加载文件,该文件能够自动加载它下载的任何库中的所有类。要使用它,只需在代码的引导过程中添加以下行:
require 'vendor/autoload.php';
您也可以尝试使用以下要求表格 -
defined('__ROOT__') or define('__ROOT__', dirname(dirname(__FILE__)));
require_once implode(
DIRECTORY_SEPARATOR, array(__ROOT__, 'vendor', 'autoload.php')
);
答案 1 :(得分:0)
您的脚本找不到自动加载文件。
包含该文件与任何其他文件一样:路径必须正确,哪条路径正确取决于您使用的是绝对路径(异常)还是相对路径。目前您正在使用相对路径。
假设您的脚本位于您显示的src
文件夹中的某个位置,vendor/autoload.php
的路径必须至少包含一个../
才能进入一个目录级别 - 可能更多。