Подтвердить что ты не робот

Я пишу PHP без "классов" в течение многих лет... что мне не хватает?

В моей жизни я не могу окунуться в "классы" на PHP.

Мне удалось написать большие, масштабируемые и популярные сайты без них.

Что мне не хватает? (И как я узнаю?)

4b9b3361

Ответ 1

Классы помогут с повторным использованием кода и потенциально очень структурированным приложением.

Процедурное программирование может быть намного быстрее как во время разработки, так и в скорости выполнения.

Программирование OO - это более простой способ, но не всегда лучший способ. Это книга под названием PHP Objects, Patterns and Practice, которая очень хорошо читается, она охватывает основы классов, почему и как использовать, абстракции и общие шаблоны проектирования, такие как MVC. Он также охватывает модульное тестирование и другие очень хорошие практики для разработчиков php.

Ответ 2

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

На практике это означает меньшее количество глобальных переменных (независимо от того, используются ли они напрямую или доступны через статические методы factory) и меньше, проходящих вокруг данных (т.е. подписи с меньшим количеством методов).

Для конкретного примера рассмотрим расширение Mysqli: каждая функция имеет процедурные и ООП-версии, а в процедурной версии почти всегда должно быть дополнительное "link", чтобы дать ему контекст, если версия ООП получает этот контекст от текущего объекта.

Ответ 3

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

ООП будет полезен в:

  • Организация и сопровождение кода
  • Добавляет ясность и уменьшает сложность
  • Подчеркивает данные по процедурам
  • Модульность кода
  • Повторное использование кода (верьте мне, что вам это потребуется)
  • Хорошо подходит для баз данных

Я раньше не использовал OOP, но я начал и, честно говоря, не очень давно, и нашел его очень полезным в этих точках, особенно в повторном использовании кода

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

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

точка в том, что я мог только писать методы CRUD один раз а затем повторно использовать его во всех моих других классах

Надеюсь, я ответил бы на ваш вопрос

Ответ 4

IMO, Если вы не хотите разделять ваш htmls и php-код; вам лучше не использовать классы.

Вам понадобятся они в среде фреймворка (необязательно), и вам понадобятся они, если вы хотите охарактеризовать свои данные, обработайте их так.

но если вы в порядке, без вас, то вы в порядке:)

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

Ответ 5

Хороший вопрос! Вы получили мой взнос!

Прямо до пункта:
Вам не хватает всего мира!

Есть много метафор, чтобы описать это, но там ничего лучше, чем практика - вы, очевидно, знаете это после "лет" программирования!

Решите небольшой проект и напишите стиль OOP. Тогда вы получите идею.

Возьмите этот совет: назовите свои классы как их имена файлов (например, MyClass "- > " MyClass.php "). Легкость в обслуживании.

Ответ 6

Вероятно, вам не хватает тестируемости: я думаю, ваши функции вызывают другие функции, которые, в свою очередь, могут вызвать другую функцию, правильно? Таким образом, у вас возникнет проблема с тестированием изолированной функции. С помощью ООП вы собираете "кучи" объектов и можете обменивать каждый объект "поддельным" (называемым макетом или заглушкой) для теста. Таким образом, вы можете тестировать каждую функциональность изолированно. Подумайте о том, чтобы проверить тестовый код без необходимости в базе данных. Подумайте о тестировании своего кода контроллера (кода, который обрабатывает параметры запроса и определяет, какие действия следует предпринять), не требуя веб-сервера.