Допустимо ли использовать сочетание объектно-ориентированного стиля с процедурным стилем в кодировании PHP?

Поэтому, прежде чем я всегда использовал процедурный стиль для кода php, например:

mysqli_connect 

или

 mysqli_prepare 

И теперь я случайно начал смешивать все это, и я бы сделал что-то вроде:

 mysqli_connect(); 

который является процедурным стилем, а затем следующей командой:

 $mysqli->prepare(); 

который является объектно-ориентированным стилем.

Мой код по-прежнему работает, но если я смотрю на php.net всякий раз, когда он показывает примеры, весь пример либо объектно-ориентированный, либо процедурный. Поэтому я спрашиваю, нормально ли мне использовать объектный и процедурный PHP-код одновременно. Заранее спасибо!

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

Спецификации программы –

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

Доступность –

Давайте посмотрим правде в глаза. Иногда лучшие библиотеки доступны либо объектно-ориентированными, либо процедурными, а не обоими. В таком случае изменение одного стиля потребует использования совершенно другой библиотеки или создания библиотеки классов или функций. Доступная библиотека может сэкономить ваше время, при этом единственная стоимость смещения является процедурной функцией в основном объектно-ориентированной программе или наоборот.

Знакомство –

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

Обработка данных и скорость –

Еще один фактор для размышления – как вы обрабатываете данные. Если данные находятся внутри класса, то у класса, скорее всего, будут методы для работы с данными. В такой ситуации процедурное программирование потребует получения данных от класса или объекта, работающих на данных, а затем обновления объекта. Лучшим дизайном было бы включение функции в объект, на мой взгляд.

Однако, если вся ваша обработка данных вне класса, то использование функции может быть быстрее. Если вы хотите использовать метод класса, вам придется загрузить класс и, возможно, создать объект. Даже статические методы могут быть медленнее, чем функция. Поэтому, если скорость рассматривается, например, в цикле, рассмотрите, сколько шагов ваша программа и PHP должны пройти, чтобы перейти к функции, классу или объекту.

Смотреть вперед –

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

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

Надеюсь, что это дает некоторые соображения. Благодарю.

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

http://www.codingconfessional.com/

или

http://pragprog.com/the-pragmatic-programmer

Использование обоих не нарушит ваш код и технически «хорошо», но рассмотрит будущее обслуживание приложения вами или кем-то еще. Гораздо проще читать код, если он согласован и чист, и вы сэкономите много времени позже, выбирая и придерживаясь одного сейчас (предпочтительно ООП).