Я давно обдумывал эту проблему и не смог осмыслить лучший способ сделать это, несмотря на долгие размышления и многочисленные попытки. Мне нужно знать лучшие практики для того, как наилучшим образом организовать поток данных интерактивного веб-приложения, с точки зрения базы данных, кода на стороне сервера и кода на стороне клиента. Сейчас я работаю с языками MySQL для базы данных, PHP для языка на стороне сервера и JavaScript / CSS / HTML / jQuery для кода на стороне клиента. Я пытаюсь найти умный способ, позволяющий пользователю безопасно выполнять такие действия, как выбор, обновление, удаление и вставка из базы данных, и отображать ее в привлекательном формате на веб-странице.
Я уже очень хорошо умею создавать великолепные интерактивные веб-сайты, писать потрясающие PHP-приложения и создавать организованные и эффективные схемы баз данных. Однако я изо всех сил пытался найти абстрактную и эффективную методологию, которая объединяет их все вместе. Я не хочу использовать существующую платформу. Это просто не вариант для меня. Я тот человек, который должен понимать, как все работает и что они делают. Однако я хотел бы взглянуть на существующую платформу для указателей, но все они, на которые я смотрел до сих пор, в основном просто смутили меня.
Вот несколько вещей, которые следует учитывать в моей структуре:
Код PHP возвращает данные с сервера MySQL и обратно на клиентскую сторону в формате JSON. Например, запрос к базе данных для фильмов Мартина Скорсезе может вернуть что-то вроде:
{ totalRecords: 2, records: [{ title: 'The Departed', year: '2006' }, { title: 'Goodfellas', year: '1990' }] }
Клиентская сторона получает и анализирует это.
Для недопустимых вызовов в базу данных, таких как неверный логин, было бы лучше вернуть действительный HTTP-ответ с «false» (таким образом вызывая успешный обратный вызов) или вернуть недопустимое HTTP-сообщение об ошибке (таким образом вызывая неудачный обратный вызов).
Я не уверен, как настроить PHP. Должен ли я сделать одну функцию для каждого типа операции MySQL (например, «SELECT», «UPDATE», «DELETE» и «INSERT»)? Должна ли это быть библиотека функций или все, что содержится в классе? По какой-то причине должно быть несколько классов или какая-то иерархия классов? Каковы некоторые хорошие практики доступа к данным?
Я использую ajax-функцию jQuery для выполнения вызовов от клиентской стороны до серверной стороны, чтобы получить строку JSON и затем проанализировать ее. Функция успешного обратного вызова вызывается при успешном вызове, который получает строку в формате JSON. Отсюда я почти не знаю, что делать. Я думал об отправке возвращенной строки JSON в какую-то функцию, которая будет анализировать JSON и возвращать что-то вроде таблицы в формате HTML для отображения результатов. Однако я не уверен, как настроить иерархию классов.
Мой начальник на работе рассказывал мне об иерархии, которая выглядит примерно так:
Однако я не совсем уверен, зачем нужно так много компонентов, таких как Data-Connector, Adapter, Manager / Provider, Controller и View. Я уверен, что мне понадобятся некоторые из них, но не все, и я также не уверен, как лучше всего настроить структуру классов. Обратите внимание, что я немного новичок в подходе MVC.
Код должен быть максимально абстрактным и использоваться повторно! В настоящее время у меня есть тонна кода для спагетти, и это заставляет меня плакать изнутри: '- (
Так э-э ... это то, где я сейчас нахожусь. Любая помощь будет принята с благодарностью, так как я чувствую, что я потерянный щенок, не получая ее, и что любой код, который я пишу быстро, становится небрежным, не пригодным для использования или обслуживаемым. Если бы вы могли предоставить какую-либо информацию о вашей собственной структуре, которую вы используете, или потратить время, чтобы прочитать мой длинный пост и оценить мой собственный, любой вклад, который заставил бы меня думать об этом по-другому, был бы высоко оценен. : -)