[Из песочницы] Наследование ActiveRecord's, описывающих одну таблицу (паттерн single table inheritance) в Yii2
2016-01-12 14:22:05
В большинстве реляционных баз данных, к сожалению, нет поддержки наследования, так что ...
+ развернуть текст сохранённая копия
В большинстве реляционных баз данных, к сожалению, нет поддержки наследования, так что приходится реализовывать это вручную. В этой статье я хочу кратко показать, как реализовать такой подход к наследованию, как «single table inheritance», описанный в книге «Patterns of Enterprise Application Architecture» by Martin Fowler.
В соответствии с этим паттерном, нужно использовать общую таблицу для наследуемых моделей и в этой таблице добавить поле
type
, которое будет определять класс-наследника этой записи.
В этой статье будет использоваться следующая структура наследования моделей:
Car
|- SportCar
|- HeavyCar
Таблица
`car`
имеет следующую структуру:
CREATE TABLE `car` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`type` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `car` (`id`, `name`, `type`) VALUES (1, 'Kamaz', 'heavy'), (2, 'Ferrari', 'sport'), (3, 'BMW', 'city');
Модель
Car
можно сгенерировать с помощью Gii.
Читать дальше →
Тэги:
active,
php,
record,
yii,
yii2,
веб-разработка,
наследование
[Из песочницы] Наследование ActiveRecord's, описывающих одну таблицу (паттерн single table inheritance) в Yii2
2016-01-12 14:22:05
В большинстве реляционных баз данных, к сожалению, нет поддержки наследования, так что ...
+ развернуть текст сохранённая копия
В большинстве реляционных баз данных, к сожалению, нет поддержки наследования, так что приходится реализовывать это вручную. В этой статье я хочу кратко показать, как реализовать такой подход к наследованию, как «single table inheritance», описанный в книге «Patterns of Enterprise Application Architecture» by Martin Fowler.
В соответствии с этим паттерном, нужно использовать общую таблицу для наследуемых моделей и в этой таблице добавить поле
type
, которое будет определять класс-наследника этой записи.
В этой статье будет использоваться следующая структура наследования моделей:
Car
|- SportCar
|- HeavyCar
Таблица
`car`
имеет следующую структуру:
CREATE TABLE `car` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`type` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `car` (`id`, `name`, `type`) VALUES (1, 'Kamaz', 'heavy'), (2, 'Ferrari', 'sport'), (3, 'BMW', 'city');
Модель
Car
можно сгенерировать с помощью Gii.
Читать дальше →
Тэги:
active,
php,
record,
yii,
yii2,
веб-разработка,
наследование
Как через composer удобно подменить системный пакет его альтернативной версией
2016-01-07 22:10:33
В любом большом проекте, где используется composer, рано или поздно возникает одна проблема. Во ...
+ развернуть текст сохранённая копия
В любом большом проекте, где используется composer, рано или поздно возникает одна проблема. Во фреймворке, или в каком-то его отдельном пакете исправляют ошибку или добавляют функционал, а разработчик не спешит принимать pull request. При этом хочется временно использовать обновленный пакет, а потом, когда pull request все-таки примут, вернуться к официальной версии. Ситуация также осложняется тем, что пакет может быть указан в зависимостях других пакетов, поэтому просто заменить один пакет на другой в composer.json не получится.
Узнать, как...
Тэги:
composer,
php,
yii
Как через composer удобно подменить системный пакет его альтернативной версией
2016-01-07 22:10:33
В любом большом проекте, где используется composer, рано или поздно возникает одна проблема. Во ...
+ развернуть текст сохранённая копия
В любом большом проекте, где используется composer, рано или поздно возникает одна проблема. Во фреймворке, или в каком-то его отдельном пакете исправляют ошибку или добавляют функциональность, а разработчик не спешит принимать pull request. При этом хочется временно использовать обновленный пакет, а потом, когда pull request все-таки примут, вернуться к официальной версии. Ситуация также осложняется тем, что пакет может быть указан в зависимостях других пакетов.
Узнать, как...
Тэги:
composer,
php,
yii
Jii 0.8: Миграции, ReactViews, изоморфное приложение и прочие плюшки
2016-01-05 10:42:34
Привет всем жителям и гостям хабра и с новым годом! :)
В этой статье я хочу рассказать о ...
+ развернуть текст сохранённая копия
Привет всем жителям и гостям хабра и с новым годом! :)
В этой статье я хочу рассказать о том, с какими фичами Jii вступил в 2016-й год и что его в ждет в новом году.
Итак, начнем по порядку.
Читать дальше →
Тэги:
framework,
io.js,
javascript,
jii,
node.js,
open,
reactjs,
source,
yii,
yii2,
веб-разработка,
крутотень