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

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

mysqli_connect

или же

mysqli_prepare

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

mysqli_connect();

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

$mysqli->prepare();

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

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

Ответы на вопрос(3)

, но подумайте о будущем обслуживании приложения вами или кем-то еще. Это'Намного легче читать код, если онОн последовательный и чистый, и вы сэкономите много времени позже, выбрав и придерживаясь одного сейчас (предпочтительно ООП).

Решение Вопроса

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

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

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

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

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

Знакомство -

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

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

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

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

Заглядывая вперед -

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

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

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

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

http://www.codingconfessional.com/

или же

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

 Orangepill26 мая 2013 г., 05:55
В большинстве проектов ООП с тяжелым PHP всегда есть хотя бы немного процедурного кода (что-то должно создать экземпляр первого объекта и заставить его работать).
 Orangepill26 мая 2013 г., 06:01
По правде говоря, вы должны использовать любой стиль кодирования, который лучше всего подходит для вашей ментальной модели проблемы.
 markdwhite26 мая 2013 г., 06:03
@edwardtyl - 'работать, несмотря ни на что это довольно широкий термин :) Наличие последовательного подхода может помочь при работе с кодом в будущем. Но я, конечно, могу признать, что многоо чем я только думал' моменты при просмотре старого кода. Может быть, это будет один из ваших, если вы оставите все как есть;)
 edwardtyl26 мая 2013 г., 05:54
Я просто хотел убедиться, что это будет работать, несмотря ни на что. Если он все равно будет работать, я выберу второй вариант :).

Ваш ответ на вопрос