命名空间系统,甚至在composer.json中的Classmap的重新起草之后以及转储自动加载之后,都没有给我命名空间中的对象。这似乎也在逐步升级。尽管我有一个文件可以做到这一点,但随着有限的进展,这成为一个更大的问题。我不知道该怎么办。这是无法运行的代码文件之一。
这是login.php:
<?php
namespace Adoms\crud;
require_once("../vendor/autoload.php");
if (!isset($_SESSION)) {
session_start();
$_SESSION['login'] = false;
}
?>
<?php
if (!isset($_GET['g'])) {
require('view/login/username.php');
}
else if (isset($_GET['g']) && $_GET['g'] == 1) {
require('view/login/pass.php');
}
else {
$login = new db("../Adoms/config/config.json"); // Says no "Adoms\crud\db" in error msg
$record = $login->read(["users" => ["site_id", "username"]], "username = '" . $_COOKIE['username'] . "' AND password = '" . $_COOKIE['password'] . "'");
if ($record->num_rows == 1) {
header("Location: ../");
}
}
?>
答案 0 :(得分:0)
要自动加载文件,您需要在composer.json autoload中使用文件,只需添加文件路径,然后dump-autoload并加载即可。
"autoload": {
"files": [
"path/to/yourfile.php",
]
}
答案 1 :(得分:0)
我发现,在处理此类问题时,您可能希望更新composer.lock。这是通过在控制台上使用composer update
来实现的。这应该可以解决任何人的问题。
答案 2 :(得分:0)
如果以上答案无效,则应将其修复。将第一个对象的名称空间放在第一位。这意味着crud
在oauth
之前
namespace Adoms\crud;
use Adoms\src\oauth2;
include_once("../../../vendor/autoload.php");
if (!isset($_SESSION))
session_start();
$db = new db("../../../Adoms/config/config.json");
$result = $db->read(["users" => ["username", "site_id"]], "`site_id` = '" . $_COOKIE['PHPSESSID'] . "' OR `username` = \"" . $_POST['username'] . "\"");
?>