маленький php-проект теперь представляет собой огромный беспорядок (внутри)

#php #html

#php #HTML

Вопрос:

Я начал небольшой проект для себя и нескольких друзей по редактированию нескольких таблиц в мультибазе данных (mysql). Сейчас в проекте более нескольких сотен страниц, и хотя снаружи он выглядит потрясающе, внутри он кажется загроможденным. нет структуры. вот что у нас есть:

3 базы данных, несколько сотен таблиц составляют три базы данных. php-проект разработан таким образом, чтобы упростить редактирование этих таблиц вместо ручного.

у кого-нибудь есть предложения, как организовать код. Я начинаю видеть повторяющиеся включения в верхней части файлов, определенный код начинает повторяться (у меня есть функции для более распространенных) Я хотел бы держаться подальше от программирования типа «КЛАСС» (если вы не считаете, что это может быть лучше) только потому, что это проект с открытым исходным кодом, и некоторые из моих друзей не так хороши в php, поэтому хотят, чтобы все было просто. но для организации я мог бы перейти к классовому стилю.

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

Спасибо

Комментарии:

1. Используйте phpmyadmin. Открытый исходный код. PHP. предназначен именно для этого. Идеальный.

2. Это разумный вопрос, но он мог бы принести пользу, если бы был приведен хотя бы один конкретный пример кода. Хотя некоторые общие рекомендации, вероятно, помогли бы и здесь.

3. ООП-кодирование ради ООП-кодирования никогда не бывает хорошей идеей. Тем не менее, это может упростить некоторые вещи и обеспечить читаемость. И даже люди, не привыкшие к этому, могут иметь дело с вызовами стиля $db->fetch_user(123) or main::load_template(foo); . (Если у вас есть несколько центральных или предварительно созданных объектов.)

Ответ №1:

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

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

Ответ №2:

Если вы имеете в виду «КЛАСС» как в ООП (объектно-ориентированном программировании), это определенно то, что вам следует рассмотреть. Упорядочивать методы в объектах очень удобно, как только вы привыкнете к этому, когда вы обнаружите автозагрузчик, вы поймете почему.

Вам также следует взглянуть на рынок фреймворков MVC. MVC расшифровывается как Model, View и Controller и является довольно распространенным шаблоном среди приложений. Я бы рекомендовал взглянуть на CodeIgniter, с которым очень легко начать, даже без обширной карьеры PHP.

Если вы случайно придерживаетесь 100% интерпретируемого, другими словами: спагетти и функции. Я бы разделил все на файлы, сгруппированные по их области функциональности. Например: media.php , database.php и т.д. Взгляните на WordPress и папку wp-includes и посмотрите, как они решили эту проблему. Удачи!

Ответ №3:

Здесь есть много вещей, которые вы можете сделать по-другому. Вот три, с которых вы начнете:

  • Вам придется перейти к объектно-ориентированному программированию, особенно если вы хотите пойти по пути организации кода. Всегда придерживайтесь принципа DRY.

  • Имея это в виду, ознакомьтесь с хорошим frameworkом. Я бы рекомендовал CodeIgniter. Шаблон проектирования MVC устранит большую часть избыточности в вашем коде, если вы используете его правильно. Если вы решите не идти по пути фреймворка, я бы определенно посмотрел на некоторые библиотеки шаблонов, которые помогут вам.

  • Нормализуйте свою базу данных. Это поможет вам удалить избыточный код модели.

Комментарии:

1. И это может быть полезно: en.wikipedia.org/wiki/Solid_ (объектно-ориентированный дизайн)

Ответ №4:

Мое предложение состоит в том, чтобы использовать XML-подобный уровень абстракции для всех полей базы данных, а также использовать ООП там, где вы можете и понимаете. Вы можете использовать XML-File-configuration для разделения логики базы данных, и вы можете использовать php XML-extension для ее синтаксического анализа. Теперь, если у вас есть ваше XML-дерево в памяти, вы можете снова проанализировать его с помощью движка для вывода HTML-материала. Я часто использую это, например, TYPO3 тоже использует это, но не XML, а очень большой массив. А также, используя это, вы можете создать свой собственный XML-язык и атрибут. Это немного похоже на XLST, но не так глубоко, но это лучше, чем TYPO3.