使用Composer未找到Php psr-4类错误
我试图在“wamp服务器”上用php来练习MVC概念 在本地目录下,我有一个index.php页面,用于使用alto router包进行基本路由,还有一个routes.php文件:使用Composer未找到Php psr-4类错误,php,composer-php,psr-4,Php,Composer Php,Psr 4,我试图在“wamp服务器”上用php来练习MVC概念 在本地目录下,我有一个index.php页面,用于使用alto router包进行基本路由,还有一个routes.php文件: <?php $router->map('GET','/test', 'Acme\Controllers\PageController@test' ,'test'); php是 <?php namespace Acme\Controllers; use Acme\Testing\Test;
<?php
$router->map('GET','/test', 'Acme\Controllers\PageController@test' ,'test');
php是
<?php namespace Acme\Controllers;
use Acme\Testing\Test;
class PageController
{
public function test(){
include(__DIR__ . "/../../views/test.php");
//---Deleted lines
$test = new Test;
$test -> test();
/---
}
}
正如我在评论中所说,问题在于名称空间不正确
我为将来可能会发现这个问题的人创造了这个答案
您有一个名为source的目录,其名称空间为Acme。在名为acme的源文件夹中添加另一个目录时,命名空间将为:
Acme\acme
您必须将acme文件夹更改为Testing以获得正确的名称空间。这是Windows/WAMP,因此可能不是区分大小写的问题(尽管区分大小写很重要),但是如果您将这些目录从acme,controllers
重命名为acme,controllers
,结果是否相同?另请参见名称空间错误。它应该是\Acme\Acme,因为您的测试类不在映射内Testing@MichealMichael Berkowski我更改了目录名,然后编写了var dump autoload..但仍然找不到类。。在routes.php文件中,我使用名称空间和works@Szenis是正确的..在我将acme目录名更改为Testing之后,它工作了..谢谢。。
<?php namespace Acme\Testing;
class Test{
public function test(){
echo "Working";
}
}
<?php
echo "TEST PAGE <br>";
Acme\acme