Пытался получить ответ в google, но, возможно, я не так задавал вопрос и не нашел ответ.
Вопрос: как правильно работать с датами в PHP при объектно-ориентированном подходе. До сих пор во всех классах свойства, представляющие дату (время) я заполнял timestamp числом. "Чувствую", что правильнее использовать стандартный класс DateTime. Но, с другой стороны объект использует больше памяти, и, соответственно, должен медленней работать, что при большом количестве объектов с большим количеством полей DateTime негативно скажется на производительности (например, страница с сотней записей (= 100 объектов), в каждом из которых около 5-и полей типа DateTime).
Подскажите "правильный" подход, или где про него можно почитать.
Спасибо.
100 DateTime
? Вы этого даже не почувствуете. Даже 1000
и даже 10000
.
Попытаюсь вам донести лично мое мнение, хотя ораторские навыки у меня на 0.
Смотрите, при разработке проекта, у вас есть 2 противоположные стороны: быстродействие
и архитектура
. Занимаясь одной частью, вы жертвуете другой (это аксиома).
У каждой части свои плюсы и минусы: например, макся быстродействие
, логично, что вы жертвуете архитектурой проекта, вы получаете минимальное время генерации страницы, однако в перспективном будущем, у вас возникнут проблемы с расширением проекта. Архитектура
проекта - это способ стандартизировать и свести к одной мысли логику всего приложения. Когда мы говорим о паттернах - мы сводим логику не просто к одной мысли, а к частоиспользуемой. Т.е. новый программист сможет легко ориентироваться в новом, для него, проекте, зная только принципы, на которых он построен. Архитектура проекта не отталкивается от быстродействия
, у архитектуры другие критерии: гибкость, масштабируемость, показатель оптимизации и т.д.
Ваш вопрос носит архитектурный характер, а именно гибкость
. Можно сказать что используя DateTime
вы увеличиваете гибкость, но уменьшаете быстродействие
. Думаю это логично, теперь вопрос в том: на сколько это обоснованно (это критерий оптимизации). Тут все индивидуально и зависит от проекта и от задач, полной информацией владеете только вы.
P.S. Как программист, вы несете ответственность за то, что вы накодили :) Как говорил мне один дядюшка: Чем больше кода - тем больше ответственность. Решение принимаете вы, и спрашивать будут с вас, а не с нас. А чтобы принять решение - надо понимать полную картину. Одно дело когда вы ставите сервер с сайтом на 2ой пентак, другое дело когда у вас кучка ксенонов (где мощности позволяют создать мощную и гибкую структуру). Ваша задача понимать, в какой пропорции должно быть отношение быстродействие-архитектура
. Если кто-то скажет, юзайте DateTime
- он будет прав, и если кто-то скажет что не надо, он тоже будет прав, но с другой стороны.
Вы должны понимать какие манипуляции будут с этой датой, на сколько сильно это повлияет, какой профит вам даст использование DateTime для других частей программы. И что будет при расширении приложения и т.д. - Все это критерий для выбора того или иного подхода, любое что вы выберете будет правильным, если сможете это обосновать (а вы должны уметь это делать).
P.S.2. Отвечая на конкретный вопрос: При ООП правильно использовать DateTime()
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Создал доску объявлений на PHP, работает отлично, теперь надо добавить функцию "поднять в горячие", так как раньше не сталкивался такой функцией,...
никак немогу понять почему после разлогиневания не получается авторизироватся повторно, приходится чистить куки и только тогда авторизация...
Всем привет, есть уже давно слитый код горизонтальной рулетки, вопрос в том как мне после нажатия кнопки сделать так чтобы её нельзя было...