错误是:
Fatal error: Uncaught Error: Class 'Championsweb\Model\VO\CompeticionVO'
not found in E:\Drive\Proyectos\ChampionsEclipse\public\CrearCompeticion.php
on line 4
项目结构:
├───config
├───public
│ ├───css
│ └───js
│ └───vendor
├───src
│ └───Championsweb
│ ├───Controller
│ └───Model
│ └───VO
├───templates
├───tests
├───vendor
│ └───composer
└───views
crearcompetition。php(位于public/)如下所示:
<?php
if (isset($_POST) && sizeof($_POST) > 0) {
$competicionVO = new \Championsweb\Model\VO\CompeticionVO(
$_POST['nombre'],
$_POST['anho']
);
$adminactions = new \Championsweb\Controller\AdminActions();
$adminactions->crearCompeticion($competicionVO);
}
require '../views/CrearCompeticion.view.php';
竞争。php(位于src/Championsweb/Model/VO中)如下所示:
<?php
namespace Championsweb\Model\VO;
class CompeticionVO {
public $id;
public $nombre;
public $anho;
public $idGanador;
public function __construct($nombre, $anho) {
$this->nombre = $nombre;
$this->anho = $anho;
}
}
Composer.json看起来像这样:
{
"autoload" : {
"classmap" : [
"./"
]
}
}
指数php具有自动加载要求:
<?php
require '../vendor/autoload.php';
自动加载类图。php具有CompetitionVO类:
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Championsweb\\Controller\\Actions' => $baseDir . '/src/Championsweb/Controller/Actions.php',
'Championsweb\\Controller\\AdminActions' => $baseDir . '/src/Championsweb/Controller/AdminActions.php',
'Championsweb\\Controller\\UserActions' => $baseDir . '/src/Championsweb/Controller/UserActions.php',
'Championsweb\\Model\\Db' => $baseDir . '/src/Championsweb/Model/Db.php',
'Championsweb\\Model\\VO\\CompeticionVO' => $baseDir . '/src/Championsweb/Model/VO/CompeticionVO.php',
'Championsweb\\Model\\VO\\EquipoVO' => $baseDir . '/src/Championsweb/Model/VO/EquipoVO.php',
'Championsweb\\Model\\VO\\RondaVO' => $baseDir . '/src/Championsweb/Model/VO/RondaVO.php',
'Championsweb\\Model\\VO\\UsuarioVO' => $baseDir . '/src/Championsweb/Model/VO/UsuarioVO.php',
'ComposerAutoloaderInit91342042e1463ce66f1dcacb1f34d909' => $vendorDir . '/composer/autoload_real.php',
'Composer\\Autoload\\ClassLoader' => $vendorDir . '/composer/ClassLoader.php',
'Composer\\Autoload\\ComposerStaticInit91342042e1463ce66f1dcacb1f34d909' => $vendorDir . '/composer/autoload_static.php',
);
基本上是竞争。看法php有一个表单,通过POST传递给CREARCOM竞。php。然后是竞争。php试图用表单的信息创建CompetitionVO实例,但我得到了错误。
我做错了什么?还有我的作曲家。一些教程中的json文件,但我不太明白它是如何工作的,我很乐意。
提前谢谢!
编辑:这是什么自动加载_静态。php看起来像:
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInit91342042e1463ce66f1dcacb1f34d909
{
public static $classMap = array (
'Championsweb\\Controller\\Actions' => __DIR__ . '/../..' . '/src/Championsweb/Controller/Actions.php',
'Championsweb\\Controller\\AdminActions' => __DIR__ . '/../..' . '/src/Championsweb/Controller/AdminActions.php',
'Championsweb\\Controller\\UserActions' => __DIR__ . '/../..' . '/src/Championsweb/Controller/UserActions.php',
'Championsweb\\Model\\Db' => __DIR__ . '/../..' . '/src/Championsweb/Model/Db.php',
'Championsweb\\Model\\VO\\CompeticionVO' => __DIR__ . '/../..' . '/src/Championsweb/Model/VO/CompeticionVO.php',
'Championsweb\\Model\\VO\\EquipoVO' => __DIR__ . '/../..' . '/src/Championsweb/Model/VO/EquipoVO.php',
'Championsweb\\Model\\VO\\RondaVO' => __DIR__ . '/../..' . '/src/Championsweb/Model/VO/RondaVO.php',
'Championsweb\\Model\\VO\\UsuarioVO' => __DIR__ . '/../..' . '/src/Championsweb/Model/VO/UsuarioVO.php',
'ComposerAutoloaderInit91342042e1463ce66f1dcacb1f34d909' => __DIR__ . '/..' . '/composer/autoload_real.php',
'Composer\\Autoload\\ClassLoader' => __DIR__ . '/..' . '/composer/ClassLoader.php',
'Composer\\Autoload\\ComposerStaticInit91342042e1463ce66f1dcacb1f34d909' => __DIR__ . '/..' . '/composer/autoload_static.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->classMap = ComposerStaticInit91342042e1463ce66f1dcacb1f34d909::$classMap;
}, null, ClassLoader::class);
}
}
正如您所说,您正在发布一个名为crearcompetition的脚本。php
位于public/
目录中。
这意味着无论index.php
中存在什么代码,包括都需要'.../供应商/autoload.php';
,在这种情况下都不会执行。
因此,在您的情况下(您说您使用了Laracast,但似乎没有使用Laravel应用程序设置),您需要添加require\uuuuu DIR.'//供应商/自动加载。php′
位于
crearcompetition的顶部。php
也是,应该由它来完成这项工作。
我正在使用一些phpunit测试类尝试composer autoload,但我似乎无法让它工作。当我从命令行运行phpunit时,我得到以下错误:“PHP致命错误:Class…notfound”。 我将提供所有的结构和文件信息。我可以,所以希望有人能发现我的错误。 结构(精简为相关文件): composer.json phpunit.xml 测试/功能/基本测试用例。php 测试/功能/主页测试。
不知何故,我无法让自动加载正常工作。我正在为phpunit使用以下引导文件。 这个的输出显示,据我所知,注册应该是正常的。 不知怎的,我犯了以下错误。 在myproj文件夹src/test/unit/-DefaultDomainEventTest中,我的文件夹结构如下所示。php-bootstrap。php示例/-NotificationCountChangedEvent。php Notifica
我刚刚开始使用composer进行依赖关系管理,我很难弄清楚我是如何不遵守psr-4进行自动加载的,所以我来这里寻求建议。我有一个生成随机值的类,它已经在packagist上了。项目结构如下(我已将composer.json文件标记为A和B): 项目总监 composer.jsonA composer.jsonB 最后是RlandValue.php文件,它声明了ejFrancis命名空间 当我运行
我不熟悉使用composer和psr-0。我尝试了一个使用composer和psr-0的小应用程序。我已经使用名称空间加载了一个特定的类。当我使用composer vendor/autoload调用一个类时,我得到了“未找到类”错误。 我的composer.json文件:/var/www/html/silexapp/composer.json 我的作曲家供应商自动加载文件:/var/www/htm
问题内容: 我正在开发一个Web项目,最近安装了Postgres 9.1.1。 PostgreSQL服务器已启动并正在运行。我可以像往常一样通过psql连接,并且从我从8.5创建的数据库转储中加载并正确保存了所有内容。 因此,我还在这里下载了9.1 postgres版本的JDBC4驱动程序:http ://jdbc.postgresql.org/download/postgresql- jdbc-
我试图使用. sh文件打开我的jar。不过,我遇到了这个错误: 错误:无法找到或加载主类com。姆波尔德。哈兰伯特。主要的 据我所知,它存在并应该工作,这就是我的类的样子:类 这是我的宣言 清单版本:1.0 Archiver-版本:丛Archiver 内置: Martijn 创建者:Apache Maven 3.3.9 Build-Jdk: 1.8.0_131 主要课程:com。姆波尔德。哈兰伯特