powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Структура php программы
4 сообщений из 4, страница 1 из 1
Структура php программы
    #38837269
SANYA_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Помогите пожалуйста разобраться.
Хочу сделать следующую структуру ПХП программы:

----------------- структура каталогов и файлов
/conf
--conf.php // файл конфигурации
/models
--Db.php
--Info.php
Main.php
----------------- содержимое файлов ---
conf.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php
define("DB_HOST", "127.0.0.1");
define("DB_NAME", "test");
define("DB_USER", "test_user");
define("DB_PASS", "test_pswd");

function __autoload($class_name){
    $file_name = "models/" . $class_name . ".php";
    // echo $mod;
    if (file_exists($file_name)) {
        include_once($file_name);
    } else
        echo "File doesn't exists";

}



Db.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<?php
require_once("../conf/conf.php");


 abstract class Db {
    private static $DB_HOST = DB_HOST;
    private static $DB_USER = DB_USER;
    private static $DB_PASS = DB_PASS;
    private static $DB_NAME = DB_NAME;

    //protected $dbc;
     protected $query;

     protected $data = array();

    function __construct(){
        $dbc = new mysqli(self::$DB_HOST, self::$DB_USER, self::$DB_PASS, self::$DB_NAME);

        if ($dbc->connect_errno)
            die($dbc->error);
        else{
            //$this->dbc->query("set NAMES utf8");
            $stmt = $dbc->stmt_init();
            $stmt->prepare("set NAMES cp1251");
            $stmt->prepare($this->query);
            $stmt->execute();

            $result = $stmt->get_result();
            $stmt->close();
            $dbc->close();

            $this->data = $result->fetch_assoc();

        }


    }

    abstract function setQuery();

}



Info.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?php
require_once("Db.php");

class Info extends Db{
    function __construct(){
       $this->setQuery();

       parent::__construct();

       // echo var_dump($this->data);
    }

    function setQuery(){
        $this->query = "SELECT full_name from users WHERE  id = 1";
    }

    function __get($param){
        return $this->$param;
    }

}
//$obj = new Info();



Main.php
Код: php
1.
2.
3.
require_once("conf/conf.php");
$obj = new Info();
echo var_dump($obj->data);



В результате сего деяния выводит ошибку

Fatal error: Cannot call constructor in C:\xampp\htdocs\test\models\Info.php on line 7

т.е не может выполнится родительский конструктор.

Хотя, если создать обьет в файле Info.php и вызвать этот файл, то все работает.

Подозреваю что не правильно файлы между собой связал, подскажите где
может быть ошибка?

Спасибо....
...
Рейтинг: 0 / 0
Структура php программы
    #38837343
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читай PSR-4
...
Рейтинг: 0 / 0
Структура php программы
    #38837472
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а причём тут PSR-4 ???

у него код выдаёт совсем другие ошибки. при подключении файлов, текущая директория всегда где нашёлся файл мэйн, поэтому подключение повторые конфига в файлах класов вызовут ошибку.

а в остальном код рабочий. (проверил у себя - заменив лишь подключение к базе и строку запроса пользователя, поставил мои названия полей)
...
Рейтинг: 0 / 0
Структура php программы
    #38838022
SANYA_83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453а причём тут PSR-4 ???

у него код выдаёт совсем другие ошибки. при подключении файлов, текущая директория всегда где нашёлся файл мэйн, поэтому подключение повторые конфига в файлах класов вызовут ошибку.

а в остальном код рабочий. (проверил у себя - заменив лишь подключение к базе и строку запроса пользователя, поставил мои названия полей)

Спасибо большее за помощь, все заработало ))
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Структура php программы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]