PHP+OOP+MVC: Как уметь проектировать? например я теряюсь в начале для чего создавать класс и т.д...

программирование php веб дизайн perl Веб

Недавно начал писать для себя (и для практики как раз) веб-ПО "Личный бюджет". Движок был готов на второй день. Само собой я отделил шаблон (*.tpl) от самого php-код (но НЕ по логики MVC составил проект), и получилось типа такого:

--------main.php-----------------------------------
<?php
include_once "header.php"; // не содержит никакого дизайн-кода, содержит в себе коннект к БД и всякие config-и
include_once FUNC_PATH."db_func.php"; // доп. функции для работы с БД
include_once FUNC_PATH."is_admin.php"; // если время авторизованности закончилось - пинаем в index.php - авторизация
echo set_title ("Панель управления");

$all = true;
$rec_count = 0;

$statya_data = get_all_statya( $sql );

..........
.......... // здеся куча кода эквивалентной нижней обработки
...........

if ( isset($_POST['add_submit']) )
{
$res = $sql->query( sprintf("INSERT INTO `main`(`data`, `tip`, `statya`, `summa`, `comments`) VALUES('%s', '%s', '%s', '%s', '%s')",
$_POST['a_data'], $_POST['a_type'], $_POST['a_statya'], $_POST['a_summa'], $_POST['a_comments']) );
$all = $res == true ? false : true;
}

$c_summ = chet( $sql );

include_once TPL_PATH."/main.tpl"; // загрузка самого HTML-шаблона.

include_once "footer.php"; // не содержит никакого дизайн-кода, только </html> и закрытия соед. с базой MYSQL
---------конец файла--------------------------------

НО, вдруг я вижу что файл main.php становится слишком огромный, и понять написанное вчера - трудновато (использовать комменты так и не привык... - жалко времени и нету охоты)
Ответы:
В нормальном проекте main.php быть не должно. Обычно используют единую точку входа и эта точка - обычно index.php.
Зачем же нужна единая точка входа ? Очевидно, чтобы не повторять в каждом php-файле всю ту "обвязку", которая требуется при каждом сеансе (это подключение к БД, это запуск сессии, это авторизация пользователя и ещё некоторые другие сервисные вещи). Однажды написав обвязку, вы забываете про неё, и дальше, программируя, вы не тратите на неё время и внимание.
Всё программирование продолжается внутри модулей, которые уже не содержат всего этого, а содержат лишь бизнес-логику.
Немного не в тему но фильтрируй то что в базу добавляешь.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.