通过函数确保PHP良好的编码实践?

时间:2011-12-21 22:40:01

标签: php redirect verification

我对PHP比较陌生,我想确保我的代码有效且正确,我可以 - 具体来说,我想询问函数应该如何相互实现以及有多大和多少任务他们每个人都应该在最佳条件下做。

实施例

为了举例(可能需要实现的话),请说有一个页面的链接显示“忘记了您的用户名/密码?”,点击此链接后,它们会被带到页面{ {1}},其中有两种形式:

1)如果他们忘记了密码,他们会输入用户名,并会将重置表单的链接发送到电子邮件地址

2)另一个是如果他们忘记了用户名,他们会输入电子邮件地址,并通过电子邮件地址<发送给他们/ strong>。

点击提交后,相关表单将forgot.php添加到名为$_POST的新页面,该页面会检查是否通过forgotsubmit.php声明合法访问该页面:

if

否则,页面将正常运行,即:启动一个功能,并显示一条消息,告诉用户检查他们的电子邮件。我将如何实现/创建发生这种情况所必需的功能。

可能性1 - 1功能

如果有一个单一的,大的函数被调用,它可以处理忘记的密码和用户名,通过函数内部的if语句,然后创建一个查询从MySQL数据库中获取相关的数据字段,组织然后//loggedIn() is a previously defined function if (!loggedIn() && isset($_POST['forgotUsername']) || isset($_POST['forgotPassword'])) { header('Location: index.php'); exit(); } 所有数据,发送包含必要信息的电子邮件,然后根据所选择的表单以及代码是否完成而没有错误来回显成功/失败?

可能性2 - 2个功能

strip_tags()上有一个if语句,用于确定要运行的函数 - 一个用于获取用户名,另一个用于重置密码,每个语句都执行可能性中描述的操作。

可能性三 - 一些功能

与可能性2相同,除了单独的sendMail()函数可以发送电子邮件,另一个函数可以处理MySQL查询等。

调用太多函数会降低性能吗?例如,(如果有的话)性能损失是由不必编码发送邮件两次的时间成本构成的吗?

可能性四 - 几十个功能,没有功能,完全不同于其他东西?

我可以为这样的任务使用更好的东西吗?多种功能是否合适?我听说过课程,但没有看过他们,他们是否合适?

摘要

我希望自己足够简洁。据我所知(或已阅读),函数的工作是“使重复过程变得简单”,或许这些可能性中的一种可以完成该任务。你会怎么编码?谢谢。

3 个答案:

答案 0 :(得分:4)

无论您使用何种编程范例或语言,都有一个很好的规则,即一个函数应该只做一件事。它使您的代码更易读,更易于维护,并具有允许更多代码重用的额外好处。

答案 1 :(得分:4)

这完全取决于你手上的任务。最好有一些功能,如do_this()do_that()而不是do_all_stuff()

对我来说,我遵循一般规则。 每次我最终都需要我之前写的代码块,我将其转换为函数。如果您遵循此规则,您最终将创建许多可重用的功能。此外,代码将自动重构。

答案 2 :(得分:2)

尽管PHP是为Web构建的,但缺少的是构建整个Web应用程序的良好架构。开箱即用,您将获得单个文件脚本,这些脚本之间没有任何架构的通信线路。

我非常推荐使用框架。 Zend Framework是一个不错的选择,但还有其他几十个。他们使用的约定将回答您的大多数问题,因为它们将概述需要创建哪些文件,哪些函数在哪里,并为您提供将所有内容连接在一起的方法。

一些框架: