Как реализовать личный кабинет?

183
05 февраля 2018, 06:00

Делаю личный кабинет, который параллельно является и админкой. Авторизация работает на сессиях.

Собственно концепт следующий, самый стандартный:

Есть меню слева, справа в окне выводятся данные, формы и тд в зависимости от выбранного пункта меню.

Как реализовать вывод данных, например если я кликнул по пункту "настройки"?

Был вариант - сделать отдельные php файлы и подключать их ajax-ом в блок справа, но почему-то такой вариант меня отталкивает. Может все в один файл личного кабинета настрочить?

Answer 1

Вы сначала разберитесь с концепцией, можно сделать как угодно, хоть одним файлом хоть несколькими, дело в том как это будет работать и как это удобно лично вам и пользователям которые будут это использовать. Посмотрите также как устроенно в других CMS.

Answer 2

Настрочить все в один файл - это спагетти код, как бы сказать точнее: когда программисту с опытом дают поддерживать такой код, то он сразу задумывается о смене места работы или начинает думать о том, почему еще не ввели обязательную уголовную ответственность за такой код.

У вас наверняка будет в одном файле смешаны HTML, PHP, Javascript и распутывать такой код будет очень тяжело, а ведь сущности разные.. А они должны быть в отдельных файлах.

Вы не единственный кто из новичков задумывается о таком, ведь это - один из самых распространенных анти-паттернов проектирования. Часто начинающие программисты в погоне за быстрой разработкой не задумываются о структурировании и проектировании своего кода и архитектуры, выучив лишь основные уроки, где для упрощения понимания часто все пишут в один файл (где это возможно).

С таким кодом, код вашего проекта будет сильно связан, он будет жесткий и неизменяемый, ведь чтобы внести изменения в такой божественный файл придется просто все переписать, потому что держать такие объемы кода в голове для его полноценного понимания просто невозможно, чего уж говорить про тестирование...

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

Что использовать?

Всегда знайте, что идеального решения не существует при выборе стека. На вашем месте я бы личный кабинет сделал следующим образом:

Для разработки Backend используйте ООП, PHP фреймворк (Symfony, Lavarel, Phalcon и т.д) и архитектурный паттерн MVC. Backend - это будет API (программное решение работающее с ресурсами и возвращающее ответы клиентам)

На Javascript c использованием Vue.js/Angular/React/т.д реализуйте frontend и работайте с API на основе Ajax.

API реализуйте по архитектурному стилю REST с ответами в виде JSON.

READ ALSO
Добавление нового json в файл

Добавление нового json в файл

Доброго времени сутокСуть такова: нужно добавить новую запись в json файл

140
Вывод продвинутого рейтинга

Вывод продвинутого рейтинга

Есть таблица MySQL(users), там данные - id, name, pointsМне нужно получить 3 строчки: 1 человек, который по баллам больше, я и 1 человек, который по баллам...

226
сбор данных с другого сайта

сбор данных с другого сайта

Есть вот такой код на php и js:

159
В чем проблема заключается?

В чем проблема заключается?

В настройках webmoney лежит как показано на скриншоте

171