提问者:小点点

PHP日光浴室-作曲家自动加载给类没有找到错误


我正在尝试让Solarium在Centos 6.5上运行,并安装了PHP(5.3.3)和Apache HTTPD的rpm。

我已经按照网站上的说明,创建了一个文件夹 /var/www/php(在php.ini中的包含路径中)并下载了作曲家。然后我将以下内容输入composer.json:

{
      "require": {
          "solarium/solarium": "3.*"
      }
}

并运行“php composer.phar安装”。

我现在尝试运行Solarium示例文件夹中的示例(特别是1.1 Solr Ping示例)。为此,我修改了init。php包含以下行:

要求('vendor/autoload.php');

我已确认供应商/自动加载。php是通过向其中添加一个print语句来运行的。

但是,当我运行该示例时,我得到:

Fatal error: Class 'Solarium_Version' not found in /var/www/html/test/1.1-check-solarium-and-ping.php on line 7

或者如果我注释掉第7行:

Fatal error: Class 'Solarium_Client' not found in /var/www/html/test/1.1-check-solarium-and-ping.php on line 10

因此,Solarium文件似乎没有按预期加载。

不确定这是日光浴室还是作曲家的问题(我怀疑是后者)。有人能提出一种调试方法吗?

发出命令“php composer.phar dump autoload”只会生成以下消息:

Generating autoload files

这是否正确(我假设不是基于命令的描述)?

跑步:

php composer.phar diagnose

给出:检查编写器。json:FAIL name:缺失,需要说明:缺失,需要说明:未指定许可证,建议这样做。对于封闭源代码软件,您可以使用“专有”作为许可证。检查平台设置:失败

Your PHP (5.3.3) is quite old, upgrading to PHP 5.3.4 or higher is recommended.
Composer works with 5.3.2+ for most people, but there might be edge case issues.
Checking git settings: OK
Checking http connectivity: OK
Checking disk free space: OK
Checking composer version: FAIL
Your are not running the latest version

没有一个看起来是致命的。对吗?

非常感谢

保罗

更新:

更多信息。将一些打印语句添加到vendor/composer/autoload\u real。php提供:

($map由autoload_namespace.php创建)

Symfony\Component\EventDispatcher\ - 
Array ( [0] => /var/www/php/vendor/symfony/event-dispatcher ) 
Solarium\ - 
Array ( [0] => /var/www/php/vendor/solarium/solarium/library ) 

($classMap由autoload_classMap.php创建)

classMap - 
Array ( )

类映射的空数组似乎很奇怪。对吗?

谢谢

P


共1个答案

匿名用户

问题是,我使用的示例文件夹从版本2.4.0(日光浴室),但类是从版本3。

两个版本之间的类名已更改

我最初是为作曲家复制日光浴室的条目。json来自安装说明,版本为2.4。0.然后我运行composer安装并将示例复制到网站中,然后决定更新到solarium版本3。但是,我没有更新网站上的示例文件夹。

将“示例”文件夹更新为版本3修复了该问题。

P