обеспечение PHP хорошей практики кодирования с функциями? - PullRequest
2 голосов
/ 22 декабря 2011

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

Пример

Для примера (и, возможно, что-то, что мне нужно будет реализовать), скажите, что при нажатии на ссылку на страницу с надписью "забыли ваше имя пользователя / пароль?"по этой ссылке они выводятся на страницу forgot.php, на которой есть две формы:

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

2) И еще: если они забыли свое имя пользователя , они вводят свой адрес электронной почты , и они отправляются им по их адресу электронной почты..

После нажатия кнопки "Отправить" соответствующая форма $_POST 'переходит на новую страницу с именем forgotsubmit.php, которая проверяет, действительно ли к ней обращаются с помощью оператора if:

//loggedIn() is a previously defined function

if (!loggedIn() && isset($_POST['forgotUsername']) || isset($_POST['forgotPassword'])) {
    header('Location: index.php');
    exit();
}

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

Возможность One - 1 функция

Если существует одна, большая, вызываемая функция, которая может обрабатывать как забытые пароли, так и имена пользователей с помощью оператора if внутри функции, то создайте запросИзвлечение соответствующих полей данных из базы данных MySQL, систематизация и затем strip_tags() всех данных, отправка электронного письма, содержащего необходимую информацию, и затем повторение успеха / неудачи обратно в зависимости от того, какая форма была выбрана и был ли код выполнен без ошибок?

Возможность 2 - 2 функции

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

Возможность три - несколько функций

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

Медленно ли вызывает слишком много функций?наилучшие показатели?Является ли (если таковая имеется) потеря производительности из-за нехватки времени, например, необходимости кодировать отправку почты дважды?

Возможность Четыре - десятки функций, никаких функций, что-то еще целиком?

Могу ли я использовать что-то лучшее для такой задачи?Подойдет ли несколько функций?Я слышал об уроках, но не изучал их, будут ли они уместными?

Резюме

Надеюсь, я сделал себя достаточно кратким.Как я понимаю (или прочитал), задача функции - «сделать повторяющиеся процессы простыми», возможно, одна из этих возможностей могла бы выполнить эту задачу.Как бы вы это написали?Благодарю.

Ответы [ 3 ]

4 голосов
/ 22 декабря 2011

Это полностью зависит от задачи на вашей руке.Всегда лучше иметь некоторые функции, такие как do_this(), do_that() вместо do_all_stuff().

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

4 голосов
/ 22 декабря 2011

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

2 голосов
/ 22 декабря 2011

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

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

Некоторые рамки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...