Предложения по созданию платформы PHP / Javascript / MySQL? - PullRequest
4 голосов
/ 26 августа 2011

Я давно обдумывал эту проблему и не смог осмыслить лучший способ сделать это, несмотря на долгие размышления и многочисленные попытки. Мне нужно знать лучшие практики для того, как наилучшим образом организовать поток данных интерактивного веб-приложения, с точки зрения базы данных, кода на стороне сервера и кода на стороне клиента. Сейчас я работаю с языками MySQL для базы данных, PHP для языка на стороне сервера и JavaScript / CSS / HTML / jQuery для кода на стороне клиента. Я пытаюсь найти умный способ, позволяющий пользователю безопасно выполнять такие действия, как выбор, обновление, удаление и вставка из базы данных, и отображать ее в привлекательном формате на веб-странице.

Я уже очень хорошо умею создавать великолепные интерактивные веб-сайты, писать потрясающие PHP-приложения и создавать организованные и эффективные схемы баз данных. Однако я изо всех сил пытался найти абстрактную и эффективную методологию, которая объединяет их все вместе. Я не хочу использовать существующую платформу. Это просто не вариант для меня. Я тот человек, который должен понимать, как все работает и что они делают. Однако я хотел бы взглянуть на существующую платформу для указателей, но все они, на которые я смотрел до сих пор, в основном просто смутили меня.

Вот несколько вещей, которые следует учитывать в моей структуре:

  1. Код PHP возвращает данные с сервера MySQL и обратно на клиентскую сторону в формате JSON. Например, запрос к базе данных для фильмов Мартина Скорсезе может вернуть что-то вроде:

    { totalRecords: 2, records: [{ title: 'The Departed', year: '2006' }, { title: 'Goodfellas', year: '1990' }] }
    

    Клиентская сторона получает и анализирует это.

  2. Для недопустимых вызовов в базу данных, таких как неверный логин, было бы лучше вернуть действительный HTTP-ответ с «false» (таким образом вызывая успешный обратный вызов) или вернуть недопустимое HTTP-сообщение об ошибке (таким образом вызывая неудачный обратный вызов).

  3. Я не уверен, как настроить PHP. Должен ли я сделать одну функцию для каждого типа операции MySQL (например, «SELECT», «UPDATE», «DELETE» и «INSERT»)? Должна ли это быть библиотека функций или все, что содержится в классе? По какой-то причине должно быть несколько классов или какая-то иерархия классов? Каковы некоторые хорошие практики доступа к данным?

  4. Я использую ajax-функцию jQuery для выполнения вызовов от клиентской стороны до серверной стороны, чтобы получить строку JSON и затем проанализировать ее. Функция успешного обратного вызова вызывается при успешном вызове, который получает строку в формате JSON. Отсюда я почти не знаю, что делать. Я думал об отправке возвращенной строки JSON в какую-то функцию, которая будет анализировать JSON и возвращать что-то вроде таблицы в формате HTML для отображения результатов. Однако я не уверен, как настроить иерархию классов.

  5. Мой начальник на работе рассказывал мне об иерархии, которая выглядит примерно так:

Diagram, though I am not completely sure how it works

Однако я не совсем уверен, зачем нужно так много компонентов, таких как Data-Connector, Adapter, Manager / Provider, Controller и View. Я уверен, что мне понадобятся некоторые из них, но не все, и я также не уверен, как лучше всего настроить структуру классов. Обратите внимание, что я немного новичок в подходе MVC.

Код должен быть максимально абстрактным и использоваться повторно! В настоящее время у меня есть тонна кода для спагетти, и это заставляет меня плакать изнутри: '- (

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

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Прочитайте эту книгу: http://martinfowler.com/books.html#eaa или что-то сопоставимое с шаблонами проектирования.Подумайте о пересмотре существующих фреймворков с открытым исходным кодом и задайте вопросы.По личному опыту я знаю, что кодирование перед исследованиями и разработкой сложных проектов - пустая трата времени.Даже если вы ничего из этого не произведете, вы узнаете что-то полезное.

1 голос
/ 21 июля 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...