Я разрабатываю программу для визуализации некоторых данных. Моя программа принимает конкретные данные из базы данных MySQL и рисует некоторые графики (библиотека libchart), создает некоторые таблицы и т. Д.
Моя проблема в том, что прямо сейчас его код ад там. У меня около 7 php-файлов (индекс, графическая страница, галерея и т. Д.) Вместе с HTML / CSS и PHP / SQL-кодом (некоторые из них просто имеют расширение php, но имеют только HTML внутри). У меня нет проблем читать и понимать проект на данный момент, но я думаю, если кто-то еще попытался, он мог бы получить головную боль. Кроме того, продолжение программирования, как это, нецелесообразно, поскольку в будущем проект может быть легко масштабируемым.
Есть ли у вас какие-либо предложения о том, как успешно отделить HTML / CSS от PHP / SQL? Я не хочу использовать фреймворк, так как я не делаю ничего, что требует ввода пользователя, обработки сеанса и т. Д. Я просто запускаю несколько запросов и визуализую результаты. Я в основном говорю об архитектуре здесь, и, если применимо, возможно, скрипт, который поможет мне (я читал о Smarty, но я не уверен, что это то, что мне нужно).
Есть ли у вас какие-либо предложения о том, как успешно отделить HTML / CSS от PHP / SQL?
Поздравляем вас за то, как вы можете улучшить код. Это предварительное условие, вам нужно улучшить его, и тема длительная. Поэтому ваша воля имеет решающее значение.
Я начинаю легко, а затем пытаюсь дать несколько советов. Поскольку вам не хватает опыта, найдите одно очко для начала, и, самое главное, последнее из приведенного ниже списка. Но сначала первое:
Чтобы отделить что-то друг от друга, вам нужно иметь некоторый код, который разделяет:
[HTML/CSS/PHP/SQL] [HTML/CSS] <--> [SEPARATOR] <--> [PHP/SQL]
Сепаратор на самом деле тоже PHP-код, но я думаю, что вы поняли эту идею.
Как вы можете видеть, только Separator ведет переговоры с HTML / CSS и PHP / SQL .
Таким образом, для того, чтобы эта работа работала, как HTML / CSS, так и PHP / SQL необходимо иметь интерфейс с Separator (линия между ними).
Обычно в программе вы передаете данные, которые обрабатываются get. Данные довольно динамичны и могут иметь сложную сложность, особенно если вы передаете данные в процедуру вывода, которая должна правильно отформатировать ее.
Существует несколько способов использования такого разделителя (или нескольких из них). Вы можете сложить свое программное обеспечение или предоставить компоненты, которые выполняют действия в своей области или области . Например, у вас есть уровень базы данных или компонент базы данных, который заботится о взаимодействии с базой данных.
Или у вас есть механизм шаблонов, который позаботится о том, чтобы ваши строки и массивы были добавлены в некоторый читаемый HTML.
Короче говоря, это макаронная теория проектирования программного обеспечения:
Подобно тому, как мы едим разные макароны в нашей жизни, при программировании нам также нужно иметь дело со всеми этими разными типами кода, и с течением времени мы разрабатываем свой собственный предпочтительный вкус. В детстве мы кормим, но со временем мы начинаем готовить что-то свое и варьировать рецепты.
Поэтому я считаю, что вам просто не хочется сейчас есть MVC Framework X с огромными впечатлениями в течение следующих недель только потому, что кто-то сказал вам, что это способ съесть сейчас. А перед едой есть дегустация, верно? Не говоря уже о фаст-фудах, вы знаете, как эти лапши с соусом в упаковке – только добавляйте воду. Urgh.
Я не знаю, какие данные вам нужны, и что такое вход. Ниже приведены некоторые грубые советы по рефакторингу для приложений, которые выводят HTML / CSS и взаимодействуют с базой данных MySQL. Это не может быть полный список, и описания могут лишь грубо очертить некоторые мысли:
style
если у вас все еще есть некоторые. Это делает ваш код CSS повторно используемым и более модульным. Это поможет вам найти недостатки внутри вашего HTML и отделить структуру (HTML) от презентации (CSS). Эффективные HTML начинаются с эффективного использования CSS, эти два очень мощные вместе, и часто это уже облегчит ваши программные процедуры вывода. foreach
над subarrays. Это очень простой способ создания шаблона. Вы можете использовать PHP для этого, так что вы действительно очень гибкие (просто нарисуйте границу, код которой принадлежит вашему слою представления и который является частью приложения, например, предоставляя значения для представления). $component->getThatData()
который затем возвращает данные в нормализованной форме. Затем эти компоненты используют специальный компонент базы данных для обмена информацией с базой данных. В коде приложения (бизнес-логике) используется только компонент базы данных и, предпочтительно, объекты, которые вы создаете для получения данных, поэтому у вас больше нет строки SQL внутри вашего основного кода. Почему бы не использовать шаблонный двигатель? TWIG очень прост в использовании и отлично подходит для такого рода вещей. Он часто используется с каркасом Symfony, но его можно легко использовать самостоятельно.