Тема: Хто і як працює із звязаними обєктами.
Всім привіт. Вирішив зробити невелике опитування.
Дуже часто приходиться працювати у веб проектах із звязаними обєктами. Для прикладу у нас є пост у пості є багато тегів. Також у поста є звязаний користувач.
У багатьох фреймворках для цього використовуються relations (has_one, has_many, etc) це дозволяє скоротити кількість написання коду.
Отже у мене є до вас запитання. На вашу думку як найкраще реалізувати доступ і модифікацію звязкових моделей (зовнішнє АРІ). Я покищо бачу 2 варіанти.
Варіант 1
$postModel>getTags(); // Отримати список звязаних тегів з даним постом
$postModel>addTags($tagsModels); // Звязати теги з постом
$postModel>removeTags($tagsModels); // Видалити певні теги (відвязати від поста, теги фізично залишаються в базі)
$postModel>removeTags(); // Відвязати всі теги від поста
$postModel->setUser($userModel) ; // Даний пост написав певний користувач.
Варіант 2
$postModel->get('tags');
$postModel>addRelative('tags', $tagsModels);
$postModel>removeRelative('tags',$tagsModels);
$postModel>removeRelative('tags');
$postModel->setRelative('user', $userModel) ;
У 2х варіантах планується зробити підсказки (у вигляді плагіна до рнршторма). Другий варіант швидшкий ніж перший, але для підказок необхідно буде плагін встановлювати.
Дякую за увагу.