Symfony 实体拥有;“公众”;变量

Symfony 实体拥有;“公众”;变量,symfony,doctrine,Symfony,Doctrine,我现在正在学习Symfony2,在我阅读的每个教程中,都有受保护的变量,如: /** * @ORM\Column(type="decimal", scale=2) */ protected $price; /** * @ORM\Column(type="text") */ protected $description; 我从命令行生成器中得到的是: * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\Gener

我现在正在学习Symfony2,在我阅读的每个教程中,都有
受保护的
变量,如:

/**
 * @ORM\Column(type="decimal", scale=2)
 */
protected $price;

/**
  * @ORM\Column(type="text")
  */
protected $description;
我从命令行生成器中得到的是:

 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var integer
 *
 * @ORM\Column(name="game", type="integer")
 */
private $game;

有人能解释为什么会发生这种情况吗?

受保护不是公开的

private scope
当您希望变量仅在其自己的类中可见时

protectedscope
当您希望使变量在所有扩展当前类(包括父类)的类中可见时

这个例子没有太大的区别。SF文档中的代码更易于继承,仅此而已。两人都在工作


(来源:)

您应该使用私有变量。不需要更多。如果Symfony2发电机能做到这一点,我认为它是正确的