PHP psr-0命名空间未找到类

PHP psr-0命名空间未找到类,php,Php,我在执行psr-0命名空间时遇到此错误 PHP致命错误:在中找不到类“myApp\Db” /第7行的Applications/MAMP/htdocs/elioop/User.php 致命错误:在中找不到类“myApp\Db” /第7行的Applications/MAMP/htdocs/elioop/User.php 我做了一个composerdump autoload-o,但错误仍然存在。数据库和用户文件位于目录中,即根目录 这是我目前的设置 composer.json { "name

我在执行
psr-0
命名空间时遇到此错误

PHP致命错误:在中找不到类“myApp\Db” /第7行的Applications/MAMP/htdocs/elioop/User.php

致命错误:在中找不到类“myApp\Db” /第7行的Applications/MAMP/htdocs/elioop/User.php

我做了一个composer
dump autoload-o
,但错误仍然存在。数据库和用户文件位于目录中,即根目录

这是我目前的设置

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();
        }

    }


}
<?php

namespace myApp;

use myApp\Db;

class User extends Db{

    private $db;

    public function __construct()
    {

        $this->db = $this->connect();

    }
<?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

另外,您似乎没有使用composer PSR-0自动加载器。你应该做:

<?php
require_once 'vendor/autoload.php'; //Composer autoloader


session_start();
// Report simple running errors


$guest = new \myApp\User();

为什么是PSR-0而不是PSR-4

另外,您似乎没有使用composer PSR-0自动加载器。你应该做:

<?php
require_once 'vendor/autoload.php'; //Composer autoloader


session_start();
// Report simple running errors


$guest = new \myApp\User();

使用myApp\Db;在User.php中应该删除-因为这两个类都在同一名称空间中,所以我应该使用什么名称空间?只需在整个文件中保留该行:)它们都在名称空间myApp下;我仍然在user.php文件的第6行找到了一个
类“myApp\Db”
,你能给出index.php文件代码吗?使用myApp\Db;在User.php中应该删除-因为这两个类都在同一名称空间中,所以我应该使用什么名称空间?只需在整个文件中保留该行:)它们都在名称空间myApp下;在user.php文件的第6行,我仍然没有找到一个
类“myApp\Db”
,你能给出index.php文件的代码吗?这很有效,我会尽快接受它,然而,它似乎弄乱了db.php文件
中的pdo设置致命错误:未捕获错误:在/Applications/MAMP/htdocs/elioop/db.php:13
中找不到类“myApp\pdo”。如果您在一个名称空间中,那么类是相对于名称空间引用的,因此您需要执行
new\PDO
以指示它是根类,或者在名称空间定义的顶部添加
use PDO
。好的,感谢它现在的工作。感谢您的帮助,先生:)这是有效的,我会尽快接受它,但是它似乎会弄乱db.php文件中的pdo设置
致命错误:未捕获错误:在/Applications/MAMP/htdocs/elioop/db中找不到类'myApp\pdo'。php:13
使用名称空间很棘手。如果您在一个名称空间中,那么类是相对于名称空间引用的,因此您需要执行
new\PDO
以指示它是根类,或者在名称空间定义的顶部添加
use PDO
。好的,感谢它现在的工作。感谢您的帮助,先生:)