Я тут застрял в MVC и надолго, терпение немножко не хватает. Прошелся по очень Важным вещам, то есть, как пишется модель, контроллер и т.д.. Но как сяду писать простенький интернет-магазин, то сразу теряюсь, что писать, где писать и так уже 2 месяца. Понимание есть, но по реализациям 0. Если есть хорошие ресурсы, которых я не заметил, то дайте пожалуйста!
И получится ли, если приступлю к фрейморку, например YII2, понять, что где находится. Реально немножко срываюсь(
В основном, MVC бывает 2 видов:
Очень много споров, что есть правильно, а что нет. Итог этих споров - несколько стандартов разработки по паттерну MVC. Полагаю, что ты уже прочел это и знаешь основы MVC, хоть и без практики. Если перейти к проекту с интернет-магазином, то у нас есть следующие модели:
Для наглядности, берем за основу самый базовый интернет-магазин с одним уровнем вложенности. Модель является "поставщиком" данных для контроллеров, она никак не связана с пользователями и её задача лишь управлять данными. У каждой модели есть связи (категория имеет много товаров, товар имеет одну категорию, заказ имеет несколько товаров и одного клиента, клиент имеет много заказов, товар может принадлежать нескольким заказам), наша цель - написать все эти связи в модель. К примеру, возьмем модель заказа (пишу так, как пишется на laravel, но для yii примерно так же делается):
class Order extends Model
{
//Получаем клиента
public function client()
{
return $this->belongsTo('App\Client');
}
//Получаем товары
public function client()
{
return $this->hasMany('App\Products');
}
}
Зачем это надо? Для того, чтобы придерживаться принципа DRY и не утолщать контроллер. Теперь представим метод контроллера, который обрабатывает запрос на получение заказа по ID:
...controller
public function show($orderId)
{
$order = Order::findOrFail($orderId);
return view('view.name', $order);
}
Таким образом, хелпер view()
рендерит пользователю view, при этом передавая туда переменную $order
.
Различные вопросы защиты данных и т.д. выходят из рамок MVC и реализуются в каждом фреймворке по-разному.
Надеюсь, что это хоть немного тебе помогло :)
Можешь пробовать вот эти уроки:
Но а лучше, выучить Yii2, и пробовать уже на нём что-то делать. Паттерны понять иногда трудно...
Да, если начнёте изучать MVC вместе с фреймворком - точно не прогадаете. Я бы вам посоветовал обратить внимание на фреймворки Laravel, либо Symfony. Yii2 - хороший инструмент, но он во-первых на данный момент развивается значительно слабее первых двух, во вторых он в некоторых случаях прививает плохие практики разработки.
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
При создании нового пользователя, по архитектуре сайта фото пользователя выводиться как idjpg Подскажите как при загрузке сделать так, что...
Для детальных страниц новостей необходимо заполнить тег descriptionВ description должен подставиться первый абзац из текста новости
Могу ли я средствами dataProvider сгенерировать 2 ссылки, которые буду сортировать только либо в одну либо в другую сторонуСейчас это выглядит...
Подскажите пожалуйста, получаю данные из текстового фала вот таким кодом: