Как-то так создаются правила валидации:
$form = $app['form.factory']->createBuilder('form')
->add('name', 'text', array(
'constraints' => array(new Assert\NotBlank(), new Assert\Length(array('min' => 5)))
))
php > var_dump(htmlspecialchars('\'', ENT_QUOTES|ENT_HTML401));
string(6) "'"
php > var_dump(htmlspecialchars('\'', ENT_QUOTES|ENT_XML1));
string(6) "'"
php > var_dump(htmlspecialchars('\'', ENT_QUOTES|ENT_XHTML));
string(6) "'"
php > var_dump(htmlspecialchars('\'', ENT_QUOTES|ENT_HTML5));
string(6) "'"
class Entity
{
protected $database;
public function __construct(Database $database)
{
$this->database = $database;
}
}
class User extends Entity
{
public function __construct(Database $database)
{
parent::__construct($database); // дурная привычка, чтобы не забыть если решу конструктор расширить
}
public function something()
{
$this->database->query();
}
}
$user = new User(Database::getInstance());
if ($user->login.equal(new String($_POT['login']))
$answers = get_answers($question_id)
или $answers = Answer.getByQuestion($question) и в них привязывать любую схему БД, или вообще не схему и не БД. Поменяете схему — нужно будет поменять только эти реализации, не трогая основную логику, в ней так и будете обращаться к названию фильма как $questions[$question_id]['answers'][0]['films'][0]['name'] или $questions[$question_id].answers[0].films смотря предпочтётё вы хранить сушности в массивах или объектах.