MrR*_*MrR 8 php attributes doctrine symfony
我目前正致力于一个小型在线游戏的成就系统.成就实体基本上有4个属性:
最后一个应该是百分比,意味着0到100之间的数字.为了确保数据库中没有保存大于100或小于0的数字,我的setter方法看起来如下(我正在使用Symfony2/Doctrine ORM):
public function setProgress($progress)
    {
        $this->progress = max(min($progress, 100), 0);
        return $this;
    }
这里的重要一点是max(min($progress, 100), 0).
它工作得很好,我只是想问,如果PHP中还有另一个内置函数正在做那件事,如果我正在做的事情是好的(关于良好的开发风格)
您应该考虑通过Symfony2 的验证组件对您的实体添加一些约束。
use Symfony\Component\Validator\Constraints as Assert;
class Achievement
{
   /**
    * @Assert\Range(min=0, max=100)
    */
    protected progress;
}
例如,在验证表单时,会自动调用验证器服务,但您甚至可以通过获取验证器服务来手动调用它,例如在控制器中。
$achievement = new Achievement();
$errors = $this->get('validator')->validate($achievement);
| 归档时间: | 
 | 
| 查看次数: | 560 次 | 
| 最近记录: |