簡體   English   中英

PHP psr-0命名空間未找到類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM