2016-11-27 120 views
0

这不是一个如何做某事,而是更多的最佳实践问题。PHP表单验证最佳实践

我正在为使用php-advanced-login框架的内部项目构建一个简单的登录应用程序。我通过使用用户提交表单时初始化的类来验证登录表单,密码重置和通过cookie登录的方式。然后,该类将验证所有内容,并将任何错误返回到数组中并显示在窗体中。

<?php if(isset($_POST['submit_login'])){ 
//load class 
} 
<!doctype html> 
//form 

我的问题是,在这个阶层拥有一切似乎是有点乱的(好像它是难以维持比我如何使用做进一步解释),这一切都在那里,因为那里是大量的代码重用。我之前完成的方式只是将我的代码分成几个带有函数的php文件,并在需要时包含它们。在我看来,每个php文件都更短,更容易维护。我不使用任何真正的优势,只是使用类而不是方法。

如果你设法跟随我的漫步,你对此有何看法?我应该使用一个类并将所有东西放在一起,只是使用函数,另一种更好的方法?

+1

如果它变得足够复杂,你要问自己这些问题,你可以考虑使用框架。微型应用程序中有很多可以帮助您为代码提供结构并执行大多数人想要的基本功能的程序。 – mickadoo

+0

@mickadoo - 谢谢你,我已经考虑过了。我不想使用框架,因为它给了我练习本机PHP的机会,我可能会重新讨论。 – Nizmon

+0

“我正在为使用php-advanced-login框架的内部项目构建一个简单的登录应用程序”和“我不想使用框架”您的帖子充满了矛盾,真的不知道您的实际内容想。 – 2016-11-27 00:54:40

回答

1

既然你在评论中提到你不想使用框架,我认为最简单的方法是至少模仿大多数框架的一些功能。这包括:

  • 创建逻辑目录结构。你可能有配置,验证,实用程序,视图,模型的目录。它应该是显而易见的地方。如果您的应用程序增长到您需要迁移到具有类似结构的框架将有帮助
  • 创建具有一个功能的类。你可以通过函数来​​做到这一点,但是在全球范围内可以使用的所有功能都会让你感到困惑。您可能有功能来检查密码是否有效。为此,您可以散列输入密码,从数据库加载用户并将存储的密码与用户的密码进行比较。为了让你的功能更加完美,你可以将它分开。然而,如果没有一个封装了这个对象的对象,你现在可以在全局中使用x个函数。您可能还需要用于存储哈希算法参数的变量。代码的其他方面不需要使用它,所以将它们隐藏在一个对象中。
  • 保持共享功能的小型简单的类,可以根据需要使用。有些地方可能会使用像读取cookie一样的东西。在这种情况下,我认为对象并没有比类更多的好处,但是如果你想编写测试(我强烈建议你这样做),你会发现使用测试框架(PHPUnit,PHPSpec)和对象更容易。你也永远不会知道,当你“简单的功能”将变得更为复杂

BTW您链接到GitHub的回购是没有维护