Злоупотребление PHP-функцией?

0

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

У меня есть много разных запросов MySQL, которые выполняются в моем коде, я чувствую, что если я сделаю различные дисплеи в функции и сохраню их в отдельном файле, это сделает код намного проще в обслуживании (на самом деле, я знаю, что это будет).

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

$result = mysql_query("SELECT * FROM table");

while($row = mysql_fetch_array($result)){

/* Display code will go here */

}

Как вы можете себе представить, это может затянуться. Я думаю о создании функции, которая примет переменную результата, и выполнит это, а затем вернет результаты следующим образом:

$result = mysql_query("SELECT * FROM table");

dsiplayinfo($result);

Как вы думаете, это правильный путь?

[изменить]

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

Теги:
coding-style

4 ответа

1
Лучший ответ

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

Я честно призываю вас больше к более крупным соглашениям, таким как MVC Frameworks. Kohana - отличный. Он использует такие вещи, как помощники для дополнительной внешней функциональности, модели для запроса базы данных и контроллеры для выполнения всей вашей логики - и конечный результат передается в представление, которое будет отформатировано с помощью HTML/CSS и приправлено Javascript.

3

Одна вещь, которую вы хотите иметь в виду, - это принцип СУХОЙ: не повторяйте себя.

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

1
  • Не используйте "SELECT *" - перечисляйте поля, которые вы хотите по соображениям производительности, а также причины обслуживания.
  • В вашем примере код отображения, скорее всего, будет тесно связан с SQL-запросом, поэтому вы можете также инкапсулировать их вместе
  • Вы можете рассмотреть некоторую структуру MVC с ORM (например, CakePHP), которая облегчит повторное использование модели намного лучше, чем писать кучу функций
  • Вы на правильном пути! Напишите свой код, а затем реорганизовать его, чтобы он стал лучше - очень умный.
0

Да, также рассмотрите возможность поиска в ORM или агностическом интерфейсе базы данных. Это также может помочь уменьшить дублирование (и, конечно же, облегчить перенос на новую БД, если это когда-нибудь появится).

В принципе, в любое время, когда вы видите похожий код (будь он по структуре или по функциональности), у вас есть возможность включить его в функции, которые могут использоваться совместно. Хорошее эмпирическое правило: "Не повторяйте себя" (DRY)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню