Насколько неправильно (ужасно) моя организация на сайте?

Всем привет! Неделю назад начал делать небольшой проектик, уже готово 50-60% и посмотрев что получается, мне немного стало страшно.
У меня несколько сомнений и опасений:
1. Верстаю без фреймворка. Сделал кое-какой роутеринг (если его можно таковым назвать). Вообще по сути сайт будет не очень большим, от силы 10 страниц. Суть роутера в следующем:
switch ($_SERVER['REQUEST_URI']) {

		case '/':
		include_once 'modules/main.php';
		break;

		case '/deposit':
		include_once 'modules/load.php';
		break;

		case '/account':
		include_once 'modules/account.php';
		break;

		case '/faq':
		include_once 'modules/faq.php';
		break;

		default:
		echo "404";
	}

Исходя из этого, как можете прокомментировать подобную реализацию? С чем я могу столкнуться используя "вот это вот"?
2. Как вы могли заметить из п.1., у меня будет 4 страницы. И каждый шаблон (ну как шаблон, php-файл страницы) будет храниться в папке modules. Так же прошу прокомментировать данную реализацию. Что-то мне кажется, что в более-менее нормальном проекте делается не так
3. . Частые include. Такие элементы сайта, как шапка, сайдбар, подвал, футер я вынес в отдельные php файлы. Так же на некоторых шаблонах подключены php файлы с нужными странице функциями. Грубо говоря на одной странице может быть 5-6 инклодов. Не плохо ли это?
4. В коде почти не используются функции. Я сделал следующим образом: на странице необходимо у чата необходимо вывести последние 10 записей. На странице "account" нужно вывести рейтинг пользователя. Я тупо перед открыл php тег и написал туда логику. На странице "стена" я так же перед тупо написал код для кэширования записей. Была мысль всю эту логику со всех страниц вынести в отдельный файл, оформить как функции и реквайрить этот файл на каждой странице, но зачем, если тогда будет лишний вес для загрузки?
5. . Я использую авторизацию через ВК. После успешной авторизации в сессию присваивается ид пользователя вк: $_SESSION['vk_id'] = '1'; и в бд сохраняется этот айди. Но недавно изучал чужой проект и там в бд хранился хэш, и сессии соответственно тоже тоже хранится не тупо айдишник, а захэшированный айдишник. Для чего это делают, ведь насколько я знаю, сессию нельзя подменить?

Спасибо всем, кто откликнется. За подобные говно-решения прошу не ругать, php начал изучать недавно и это первый более менее большой проект
  • Вопрос задан
  • 351 просмотр
Пригласить эксперта
Ответы на вопрос 4
Mx21
@Mx21
Software engineer
Посмотрите лучше https://www.youtube.com/playlist?list=PLE20id3DjfF...
Автор, разбирает, как написать свой фреймворк. На основе этих видео, можно понять как устроен роутинг в популярных фреймворках, шаблонизаторы, mvc и др.
Ответ написан
Комментировать
dima9595
@dima9595
Junior PHP
Прочтите основы MVC, думаю сразу много вопросов отпадёт.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
//можно подключить в отдельном файле....
function error_404() {
           header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); 
           header("Status: 404 Not Found"); 
           include(ERRORS_PATH.'/404.php');
           die();
}

switch (true) {
    case $_SERVER['REQUEST_URI']==='/':
    include_once 'modules/main.php';
    break;

    case strpos($_SERVER['REQUEST_URI'],'/deposit')===0:
    include_once 'modules/load.php';
    break;

  ... 
  ... 

    default:
    error_404();
  }

Так лучше потому, что Вы можете передавать параметры к каждому приложению в GET-запросе через слеши и использовать как через POST/GET-AJAX, так и в обычных GET-запросах.

Например: /deposit/show/last/10
И берём последние (show - показать , last - последние, 10 - штук) уже в приложении "deposit".
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
вместо свитч/кейс лучше использовать массив по типу ключ-значение, это и наращивать программно проще(роутинг на 20 путей свитчем будет так себе решением), и обрабатывать можно по всякому, т.к. это данные, а не условие. А в целом вам верно подсказали - смотрите готовые решения, их много, от простеньких до очень навороченных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы