Доклад рассматривает тонкости nodejs, а так же преимущества Evented I/O для серверных приложений. Будет предоставлен ряд рекоммендаций по правильному построению архитектуры, модульности, масштабированию, дизайну кода. Краткое введение в технологию программирования "волокнами" (fibers) и ряд других эффективных практик.
Доклад рассматривает тонкости nodejs, а так же преимущества Evented I/O для серверных приложений. Будет предоставлен ряд рекоммендаций по правильному построению архитектуры, модульности, масштабированию, дизайну кода. Краткое введение в технологию программирования "волокнами" (fibers) и ряд других эффективных практик.
Исай Руслан выступил с темой “Entity. Возрождение легенды” на Drupal Cafe #18
Видео с презентации вы сможете увидеть, перейдя по ссылке https://youtu.be/JkXuirPcBPE?list=PLtUZRIj1OWYzCGb3OCYMVYqnrJ-EpH0Ot
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Исай Руслан выступил с темой “Entity. Возрождение легенды” на Drupal Cafe #18
Видео с презентации вы сможете увидеть, перейдя по ссылке https://youtu.be/JkXuirPcBPE?list=PLtUZRIj1OWYzCGb3OCYMVYqnrJ-EpH0Ot
Web-программирование
Лекция #7. Django ORM
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_Party
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — проблемы и решения.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
2. Doctrine 2 состоит из трех основных библиотек
Common
общие компоненты, которые используются в других
библиотеках/пакетах
DBAL
слой абстракции от БД
ORM
инструменты объектно-реляционного отображения
3. Doctrine Common
Загрузчик классов
основан на широко используемых соглашениях о пространствах имен,
имен классов и структуре каталогов
Аннотации
аннотации в стиле DocBlock к классам PHP
Кеширование
«из коробки» доступны:
ApcCache, ArrayCache, FilesystemCache, FilesystemCache,
MemcachedCache, PhpFileCache, RedisCache, WinCacheCache,
XcacheCache, ZendDataCache
6. Doctrine ORM
Позволяет отображать объекты PHP в таблицы
базы данных
Использование аннотаций, XML или YAML для
метаданных
Связи между объектами отображаются как
внешние ключи
Отношение объекта ко многим обрабатывается
как коллекция
Выборка из базы данных при помощи
менеджера объектов, репозитория или
запроса любой сложности на языке
DQL(Doctrine Query Language)
7. Интерфейс командной строки
Создание «геттеров» и «сеттеров»
Создание таблиц/схемы для БД
Миграции
Фикстуры
Импорт отображения объектов из существующей
базы данных
Очистка кеша метаданных/запросов/результатов
Выполнение запросов
8. Отображение объектов в базу данных
Отображаются
Объекты
Связи
Отношения
наследование/суперклассы, переопределение
связей/полей
Способы задания
Аннотации
XML
YAML
PHP
9. Использование суперклассов и подклассов
/** @MappedSuperclass */
class MappedSuperclassBase
{
/** @Column(type="integer") */
private $mapped1;
/** @Column(type="string") */
private $mapped2;
/**
* @OneToOne(targetEntity="SuperclassRelated1")
* @JoinColumn(name="related1_id",
referencedColumnName="id")
*/
private $mappedRelated1;
// ... more fields and methods
}
10. Использование суперклассов и подклассов
/** @Entity */
class EntitySubClass extends MappedSuperclassBase
{
/** @Id @Column(type="integer") */
private $id;
/** @Column(type="string") */
private $name;
// ... more fields and methods
}
11. Наследование с использованием дискриминаторов
/**
* @Entity
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"person" = "Person", "employee" =
"Employee"})
*/
class Person
{
// ...
}
/**
* @Entity
*/
class Employee extends Person
{
// ...
}