2014-09-13 55 views
1

我正在研究验证不同的东西,如空,长度等的表单验证的PHP类。在php类中有很多方法是否正常?

这里有几个我在那里的方法。正如标题所说,在课堂上有一堆方法是正常的吗? 只是回答是或否就足够了。

//Checks if is username empty 
     function validate_empty_username(){ 
      if($this->empty_username){ 
       echo "<li>Please fill username field</li>"; 
       return false; 
      } 
     } 

     //Checks if is password empty 
     function validate_empty_password(){ 
      if($this->empty_password){ 
       echo "<li>Please fill password field</li>"; 
       return false; 
      } 
     } 

     //Checks if is email empty 
     function validate_empty_email(){ 
      if($this->empty_email){ 
       echo "<li>Please fill email field</li>"; 
       return false; 
      } 
     } 

     //Check username length is short 
     function validate_username_length_min(){ 
      if($this->get_username_length < 3){ 
       echo "<li>Username provided's too short!</li>"; 
       return false; 
      } 
     } 

     //Check password length if short 
     function validate_password_length_min(){ 
      if($this->get_password_length < 5){ 
       echo "<li>Password provided's too short!</li>"; 
       return false; 
      } 
     } 

     //Check email length if short 
     function validate_email_length_min(){ 
      if($this->get_email_length < 5){ 
       echo "<li>Email provided's too short!</li>"; 
       return false; 
      } 
     } 
+0

当然,只要方法与班级有关。 – 2014-09-13 13:47:54

+0

在这里你的很多方法似乎都非常相关,我可能会在“检查邮件”调用下将所有这些方法都弹出来 - 但是说了这样的话,没有什么问题可以加载类的东西。 – Fluffeh 2014-09-13 13:47:58

+0

谢谢@ S.pols – 1to1k 2014-09-13 13:56:28

回答

2

这不是lots ......只要是有意义的,并且不违反原则的,你没事。只需遵循编程规则和OOP。

你已经证明这些方法显然是有点相关,如果你把它们放到一类是没有问题的。如果这个逻辑遍布在你的源代码中,我认为它会更糟糕。

+0

不能投票,@walther 15代表需要。 但感谢的答案:) – 1to1k 2014-09-13 13:57:35

+0

@ 1to1k,没问题,你可以稍后再回来投票;)顺便说一下,如果你需要帮助优化代码,我们有一个很好的站点:http://codereview.stackexchange。 com/ – walther 2014-09-13 14:07:08

0

我假设你将使用所有这些功能的验证一次,所以我会建议把它们放在一起。

但通常只要你想,你可以有多种功能于一类,但最终你会得到一个点,你有,而不是使代码更简单,你只是做一个很大的混乱如此多的功能。

我只把不相关的代码放在单独的函数中。因为当你有类似的代码部分时,通常在单一函数中编写代码更容易。

+0

我想我会做3个更多的功能,并把所有类似的功能放在里面。像check_email将有几个功能让说check_length check_length等。 因为ATM我打电话的方法逐一..我会藏汉要做的就是调用一个主要的方法,如check_email然后打电话给别人(check_length .. check_empty )方法从里面。 这听起来像一个好主意,还是我在这里错过了一些东西? @ zoran404我如何删除我的问题..人们开始 - 任何我..需要删除它之前,我失去了发布更多问题的能力 – 1to1k 2014-09-13 14:11:45

+0

当然,你会使用这些1 1,但如果你总是会以相同的顺序使用它们,那么不需要使用多个功能,但如果你这样做它也不是一个错误。 (如果你想删除这个问题,它的底部有一个删除按钮,就在标签下方,虽然你不需要这样做,因为你有积极的一面;现在你也可以立刻投票) – zoran404 2014-09-14 14:04:47

1

在我的经验是这样的:你开始写你的类,然后你回来的东西添加到一个方法,那么你可以通过一个类似的功能扩展您的类,最后你就会意识到,它变脏并且有很多东西,你可以合并成一个(私有)函数,不仅可以减少代码的长度,而且可以更容易维护。

所以我的建议是:总是花一点时间,想想你要做什么,以及你要实现的方法是否是一个子函数链,这些子函数本身在别的地方会很有用。尽量让自己的功能尽可能原子化,但只是将需要的功能宣布为公开。

+0

嘿@Robert。伴侣我试图把类似的方法放入函数中,但是当我调用这个函数时,它里面的方法不会被调用,我应该怎么做,以便当我调用函数时,函数内部的方法也被调用?谢谢 – 1to1k 2014-09-13 15:05:39

+0

@ 1to1k如果你正在使用嵌套函数(函数内部的函数,或者你的方法中的函数内部函数),并且你正在使用变量/对象例如“$ this”,那么你必须通过变量/对象(“$ this” )作为方法内部函数的参数,否则该函数不能执行。这可能是你的问题。(btw“$ this”是一个对象指针) – zoran404 2014-09-14 14:17:33

0

是的。只要班级中的方法相关,就很好去了。你的是一个很短的列表。如果你想验证,你可以使用GUMP Validator。它也很简单。

+0

hey @ user3107673。伴侣我试图把类似的方法放入函数中,但是当我调用这个函数时,它里面的方法不会被调用,我应该怎么做,以便当我调用函数时,函数内部的方法也被调用?谢谢 – 1to1k 2014-09-13 15:05:04

+0

@ 1to1k你能分享你的代码吗? – user3107673 2014-09-14 10:36:59

+0

这里交配。根据我所说的,我改变了一个代码。 http://pastebin.com/FQM7dAux @ user3107673 – 1to1k 2014-09-14 20:35:59

相关问题