#php #symfony1 #doctrine
#php #symfony1 #doctrine
Вопрос:
Propel может генерировать классы на основе файла схемы. Вот некоторые из результирующих классов:
- Объект (например, Пользователь)
- Одноранговый узел (например, пользователь Peer)
- Запрос (например, UserQuery)
Класс объекта (User) включает в себя средства получения и установки для всех атрибутов. Например.
$user = new User();
echo $user->getEmailAddress();
Мой вопрос: может ли Doctrine 2.0 сделать это? Генерирует ли он базовые классы и добавляет ли средства получения и настройки?
Ответ №1:
Да, Doctrine 2 поддерживает генерацию схемы для классов, я предпочитаю YAML, а не XML, поэтому вот ссылка, охватывающая этоhttp://www.doctrine-project.org/docs/orm/2.0/en/reference/yaml-mapping.html
А затем с помощью инструментов командной строки Doctrine вы можете взять предоставленные файлы YML и сгенерировать http://www.doctrine-project.org/docs/orm/2.0/en/reference/tools.html
Что касается вашего второго вопроса, по большей части Doctrine имеет простые установщики / получатели, но в терминологии Doctrine они называются методами доступа.
Обновить:
Для полностью сгенерированных классов приведите таблицу типа
user:
id: integer
name: string
active: bool
это были бы $user-> getName() и $user-> setName(«Джо»), $user-> SetActive(true) и $user-> getActive();
Как он генерирует эти промежуточные классы, можно в некоторой степени понять, просмотрев этот файл в репозитории Doctrine 2 githttps://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/Tools/EntityGenerator.php
Комментарии:
1. Спасибо! — Как выглядят методы доступа? Добавляются ли они в сгенерированные классы по умолчанию?
2. Важно отметить, что Doctrine 1 и 2 требуют, чтобы APC и / или Memcache были эффективными.