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

Всем привет! Неделю назад начал делать небольшой проектик, уже готово 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 начал изучать недавно и это первый более менее большой проект
  • Вопрос задан
  • 340 просмотров
Пригласить эксперта
Ответы на вопрос 4
Mx21
@Mx21
Посмотрите лучше 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, MySql, HTML, JS, CSS} developer
вместо свитч/кейс лучше использовать массив по типу ключ-значение, это и наращивать программно проще(роутинг на 20 путей свитчем будет так себе решением), и обрабатывать можно по всякому, т.к. это данные, а не условие. А в целом вам верно подсказали - смотрите готовые решения, их много, от простеньких до очень навороченных.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
REKA Новосибирск
от 50 000 руб.
от 120 000 руб.
RentaTeam Москва
от 90 000 до 140 000 руб.
20 сент. 2018, в 12:13
500 руб./в час
20 сент. 2018, в 12:12
100000 руб./за проект
20 сент. 2018, в 10:26
500 руб./за проект