В моей жизни я не могу окунуться в "классы" на PHP.
Мне удалось написать большие, масштабируемые и популярные сайты без них.
Что мне не хватает? (И как я узнаю?)
В моей жизни я не могу окунуться в "классы" на PHP.
Мне удалось написать большие, масштабируемые и популярные сайты без них.
Что мне не хватает? (И как я узнаю?)
Классы помогут с повторным использованием кода и потенциально очень структурированным приложением.
Процедурное программирование может быть намного быстрее как во время разработки, так и в скорости выполнения.
Программирование OO - это более простой способ, но не всегда лучший способ. Это книга под названием PHP Objects, Patterns and Practice, которая очень хорошо читается, она охватывает основы классов, почему и как использовать, абстракции и общие шаблоны проектирования, такие как MVC. Он также охватывает модульное тестирование и другие очень хорошие практики для разработчиков php.
Точка классов (объектно-ориентированное программирование) состоит в том, что она объединяет данные вместе с кодом, который работает на нем. Если все сделано хорошо, это приводит к менее жестко связанному и, следовательно, более удобному коду.
На практике это означает меньшее количество глобальных переменных (независимо от того, используются ли они напрямую или доступны через статические методы factory) и меньше, проходящих вокруг данных (т.е. подписи с меньшим количеством методов).
Для конкретного примера рассмотрим расширение Mysqli: каждая функция имеет процедурные и ООП-версии, а в процедурной версии почти всегда должно быть дополнительное "link", чтобы дать ему контекст, если версия ООП получает этот контекст от текущего объекта.
Все ответили правильно, что вам не хватает много, потому что пусть у вас есть сайт фотогалереи вместо написания функций, и в конце концов вы заканчиваете их множеством.
ООП будет полезен в:
Я раньше не использовал OOP, но я начал и, честно говоря, не очень давно, и нашел его очень полезным в этих точках, особенно в повторном использовании кода
Скажем, у меня есть сайт фотогалереи я создам класс для пользователей, и этот класс сделает CRUD во всех таблицах пользователей и класс для фотографий, чтобы сделать CRUD во всех таблицах фотографий
Я мог бы также сделать класс, чтобы делать все CRUD для меня, не указав, на какой таблице а затем использовать наследование для расширения всех CRUD в классе моих пользователей и класса фотографии
точка в том, что я мог только писать методы CRUD один раз а затем повторно использовать его во всех моих других классах
Надеюсь, я ответил бы на ваш вопрос
IMO, Если вы не хотите разделять ваш htmls и php-код; вам лучше не использовать классы.
Вам понадобятся они в среде фреймворка (необязательно), и вам понадобятся они, если вы хотите охарактеризовать свои данные, обработайте их так.
но если вы в порядке, без вас, то вы в порядке:)
Когда дело доходит до обработки очень сложной системы, с множеством разных структур данных, нескольких членов команды и т.д. Вы и ваш код должны быть организованы очень хорошо, и вам понадобятся классы.
Хороший вопрос! Вы получили мой взнос!
Прямо до пункта:
Вам не хватает всего мира!
Есть много метафор, чтобы описать это, но там ничего лучше, чем практика - вы, очевидно, знаете это после "лет" программирования!
Решите небольшой проект и напишите стиль OOP. Тогда вы получите идею.
Возьмите этот совет: назовите свои классы как их имена файлов (например, MyClass "- > " MyClass.php "). Легкость в обслуживании.
Вероятно, вам не хватает тестируемости: я думаю, ваши функции вызывают другие функции, которые, в свою очередь, могут вызвать другую функцию, правильно? Таким образом, у вас возникнет проблема с тестированием изолированной функции. С помощью ООП вы собираете "кучи" объектов и можете обменивать каждый объект "поддельным" (называемым макетом или заглушкой) для теста. Таким образом, вы можете тестировать каждую функциональность изолированно. Подумайте о том, чтобы проверить тестовый код без необходимости в базе данных. Подумайте о тестировании своего кода контроллера (кода, который обрабатывает параметры запроса и определяет, какие действия следует предпринять), не требуя веб-сервера.