У меня есть эта структура файл:Автозагрузка и Пространство имен PHP
Classes
Connection.php
Admin
User.php
admin
index.php
autoload.php
Это являются моими файлами. Они очень простые, но до сих пор я не знаю, почему дает мне сообщение об ошибке:
Это autoload.php
/*** class Loader ***/
function autoLoader($class){
$ggFileName = str_replace("\\","/",$class);
$file = $ggFileName . '.php';
if (file_exists($file)){
include $file;
return true;
}
return false;
}
/*** register the loader functions ***/
spl_autoload_register('autoLoader');
Мой файл администратора/index.php
include_once('../boostrap.php');
use \Classes\Admin\User;
if($_REQUEST['submit'] === 'Login'){
User::login();
}
<strong>Login</strong>
<form name="login" method="post" >
user:<input type="text" name="user" /> <br/>
password:<input type="password" name="password" /> <br/>
<input type="submit" name="submit" value="Login" />
</form>
Мои классы /Admin/User.php --->
namespace Classes\Admin;
use \Classes\Connection;
use PDO;
class User {
/**
* Auth Login user
*
*/
public static function login(){
try{
echo "try to login";
}catch(\Exception $e){
echo $e->Message();
}
}
}
ошибка я получаю:
Fatal error: Class 'Classes\Admin\User' not found in /home/germancv/public_html/admin/index.php on line 8
Я думаю, что я использую пространство имен неправильно ...
где вы включили ваш 'autoload.php' –
Попробуйте демпинг из' $ ggFileName', я бы предположил, что он используется как абсолютный путь, т. е. из /. Использование '$ file = __DIR__. $ ggFileName. '.php'; 'может быть то, что вам нужно. –
Ya это имеет смысл !! Я попытаюсь посмотреть, если это так. Спасибо –