我用 composer 安装了一个包,按照文档来写代码,但调试的时候发现一直提示not found。
我以为是我代码问题,所以另外创建了一个 test 文件,代码如下:
访问该 test 文件还是提示找不到包,报错信息如下:
PHP Fatal error: Class 'Lcobucci\\\\JWT\\\\Configuration' not found in /Library/WebServer/Documents/server/test1.php on line 4
PHP 版本:5.5.27
系统:macOS 10.12.2
安装 composer 的方法(不是使用 homebrew 安装的):http://docs.phpcomposer.com/0...*nix
composer 安装这个包的方法:composer require lcobucci/jwt
composer.json 里面有这个包的信息
目录结构:
代码是先在一个目录里写的(包也是先安装在那个目录),然后把代码复制到了 web 的目录里面,不知道会不会有影响
Lcobucci的目录结构:
autoload.php是 composer 自己生成的,代码如下:
autoload_real.php代码如下:
= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit407d4e074f96f6dd999e37ef003e6a2b::getInitializer($loader));
} else {
$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);
return $loader;
}
}
(突然发现 composer 生成的 PHP 文件都没有PHP 代码标记的结束符 ?> 。会有问题么? composer 是大量使用的工具,自动生成的东西应该不会有问题吧)
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
顺序不对,你得先注册自动加载,再use。因为你这个use是需要psr-4支持的,
vendor/autoload.php就是提供这个支持的。或