[英]PHP psr-0 Namespace is not finding class
執行psr-0
命名空間時出現此錯誤。
PHP致命錯誤:在第7行的/Applications/MAMP/htdocs/elioop/User.php中找不到類'myApp \\ Db'
致命錯誤:在第7行的/Applications/MAMP/htdocs/elioop/User.php中找不到類'myApp \\ Db'
我做了一個作曲家dump-autoload -o
,但錯誤仍然存在。 db和用戶文件位於目錄(即根目錄)中。
這是我目前的設置
composer.json
{
"name": "poweruser/elioop",
"require": {
"phpunit/phpunit": "^7.4",
"fzaninotto/faker": "^1.8"
},
"autoload":{
"psr-0":{
"myApp": ""
}
}
}
Db.php
<?php
namespace myApp;
class Db{
private $db;
public function connect()
{
try {
$db = new PDO("mysql:host=127.0.0.1;dbname=eli9;port=8889", 'root', 'root');
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
return $db;
}
catch (PDOException $e){
echo $e->getMessage();
}
}
}
User.php
<?php
namespace myApp;
use myApp\Db;
class User extends Db{
private $db;
public function __construct()
{
$this->db = $this->connect();
}
Index.php
<?php
session_start();
// Report simple running errors
require_once 'User.php';
$guest = new User();
$username = htmlentities(trim($_POST['txt_username']));
$unpass = htmlentities(trim($_POST['txt_password']));
$password = password_hash($unpass, PASSWORD_BCRYPT, ['cost' => 12] );
$unemail = $_POST['txt_email'];
$email = filter_var($unemail, FILTER_VALIDATE_EMAIL);
......
為什么選擇PSR-0,而不選擇PSR-4?
另外,您似乎沒有在使用作曲家PSR-0自動加載器。 你應該做:
<?php
require_once 'vendor/autoload.php'; //Composer autoloader
session_start();
// Report simple running errors
$guest = new \myApp\User();
加載作曲家自動加載器后,所有作曲家自動加載配置都應生效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.