Php 我正在使用composer自动加载文件,但当我运行代码时,他无法找到该类
当我运行这个时,我得到了一个错误 PHP致命错误:未捕获错误:在/home/ashwinibhandare/dev/training/ComposerBasics/src/queryhelp/ViewCustomerData.PHP中找不到类'ashwini123\queyhelp' 堆栈跟踪: 0/home/ashwinibhandare/dev/training/ComposerBasics/public/index.php(4):include() 1{main} 在我的项目中,有两个文件夹public和src。在public文件夹中有index.php文件,在src中还有一个文件夹queryHelper,其中包含数据库连接文件、viewCustomerdata.php文件和queryHelper.php文件。我已经将名称空间添加到DbConnection.php文件中。为什么会出现这个错误?因为我正确地使用了名称空间 composer.jsonPhp 我正在使用composer自动加载文件,但当我运行代码时,他无法找到该类,php,Php,当我运行这个时,我得到了一个错误 PHP致命错误:未捕获错误:在/home/ashwinibhandare/dev/training/ComposerBasics/src/queryhelp/ViewCustomerData.PHP中找不到类'ashwini123\queyhelp' 堆栈跟踪: 0/home/ashwinibhandare/dev/training/ComposerBasics/public/index.php(4):include() 1{main} 在我的项目中,有两个文件
{
"name": "ashwinibhandare/composer-basics",
"authors": [
{
"name": "Ashwini Bhandare",
"email": "a.bhandare@easternenterprise.com"
}
],
"require": {},
"autoload": {
"psr-4": {"ashwini123\\": "src/queryHelper"}
}
}
index.php
<?php
require_once '../vendor/autoload.php';
include '../src/queryHelper/ViewCustomerData.php';
?>
ViewCustomerData.php
<?php
use ashwini123\queyHelper;
$Crude=new queyHelper();
$sql="select * from users";
$selectData=$Crude->getData($sql);
?>
ViewCustomerData.php
queryhelp.php
<?php
use ashwini123\DbConnection;
class queyHelper extends DbConnection {
public function __construct()
{
parent::__construct();
}
public function getData($query)
{
try {
$sql=$this->connection->prepare($query);
$sql->execute();
$count = $sql->rowCount();
if($count)
{
$selectData = $sql->fetchAll(PDO::FETCH_ASSOC);
}
return $selectData;
}
catch(PDOException $e) {
die("Failed: " . $e->getMessage());
}
}
}
?>
DbConnection.php
<?php
namespace ashwini123;
class DbConnection {
public $connection;
public function __construct()
{
if (!isset($this->connection)) {
try {
$this->connection = new PDO("mysql:host=localhost;dbname=crudOperation",'root', 'root');
$this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $this->connection;
}
catch(PDOException $e) {
die("Failed to connect with MySQL: " . $e->getMessage());
}
} else {
echo "Connection failed";
}
}
}
?>
您有一个打字错误
ashwini123\queyHelper
应该是
ashwini123\queryHelper
此外,修改PSR-4映射如下
"psr-4": {"ashwini123\\": "src/"}
是的,但是我的foldername是正确的queryHelper,它下面的文件是queyHelper.phpi也做了类名的更改仍然我得到了Error=PHP致命错误:未捕获错误:在/home/ashwinibhandare/dev/training/ComposerBasics/src/queryHelper/ViewCustomerData.PHP:4堆栈跟踪:#0/home/ashwinibhandare/dev/training/ComposerBasics/public/index.php(4):include()4@AshwiniBhandare整个项目是否在src/queryHelper下?如果是,则保留PSR-4是正确的。否则,您应该按照我的操作,在
ashwini123\queryHelper\queryHelper
中修改ashwini123\queryHelper\queryHelper
尝试编写器转储自动加载-o
"psr-4": {"ashwini123\\": "src/"}