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
我做了一个composerdump 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
。好的,感谢它现在的工作。感谢您的帮助,先生:)