Heim >Backend-Entwicklung >PHP-Tutorial >ORM实例中,对delete方法需要权限验证,这个验证的方法加在哪里好?

ORM实例中,对delete方法需要权限验证,这个验证的方法加在哪里好?

WBOY
WBOYOriginal
2016-06-06 20:49:32941Durchsuche

是加在controller里面?

<code class="lang-php">$posts = new Model()
if($this->hasPermission()){
  $posts->delete($key);
}
</code>

还是加在

<code class="lang-php">function _beforeDelete(){
  if($this->hasPermission()){
    return true;
  }
  return false;
}
</code>

如果加在controller里面,那么每个调用delete方法的地方,都必须要加上这个权限验证,容易漏掉。

如果加在_beforeDelete()里面,又导致杀伤力太大,有的实例的delete操作并不需要权限验证也会受影响。

还是说另外有一些处理手段?

回复内容:

是加在controller里面?

<code class="lang-php">$posts = new Model()
if($this->hasPermission()){
  $posts->delete($key);
}
</code>

还是加在

<code class="lang-php">function _beforeDelete(){
  if($this->hasPermission()){
    return true;
  }
  return false;
}
</code>

如果加在controller里面,那么每个调用delete方法的地方,都必须要加上这个权限验证,容易漏掉。

如果加在_beforeDelete()里面,又导致杀伤力太大,有的实例的delete操作并不需要权限验证也会受影响。

还是说另外有一些处理手段?

业务逻辑当然应该加在业务层,Controller上. 这是没有疑问的.

如果到处都有,你可以使用一些封装, 使用一些设计模式来把分散的验证代码集中

个人觉得加在domain object 上更加优雅,且验证逻辑不会散得到处都是

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn