Yii2 Общее понимание

Обсуждение документации второй версии фреймворка. Переводы Cookbook и авторские рецепты.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

chungachguk писал(а):А если не раскидывать, то какой тогда смысл?
> Я на данный момент разрабатываю модули в одной директории
это в какой?
в контексте переноса модуля из приложения в приложение - это очень удобно.
В директории модуля. Я изначально подхожу к модулю как к расширению. От этого и отталкиваюсь.
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Yii2 Общее понимание

Сообщение chungachguk »

zelenin писал(а):
chungachguk писал(а):А если не раскидывать, то какой тогда смысл?
> Я на данный момент разрабатываю модули в одной директории
это в какой?
в контексте переноса модуля из приложения в приложение - это очень удобно.
В директории модуля. Я изначально подхожу к модулю как к расширению. От этого и отталкиваюсь.
Нет, это я понял. Папка самого модуля где расположена? в backend/frontend или на уровень выше? И как в таком случае модуль разделяется на back и front?
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Yii2 Общее понимание

Сообщение maleks »

chungachguk писал(а):Папка самого модуля где расположена?
Он вроде говорит о коде из расширений, т.е. из vendor-а. Я тоже так делаю, чтобы и в basic шаблоне и в advanced работало.
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Yii2 Общее понимание

Сообщение chungachguk »

maleks писал(а):
chungachguk писал(а):Папка самого модуля где расположена?
Он вроде говорит о коде из расширений, т.е. из vendor-а. Я тоже так делаю, чтобы и в basic шаблоне и в advanced работало.
Т.е. всё опять же сводится к тому, что нужно для модуля иметь отдельный AdminController с кучей action?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

chungachguk писал(а):
zelenin писал(а):
chungachguk писал(а):А если не раскидывать, то какой тогда смысл?
> Я на данный момент разрабатываю модули в одной директории
это в какой?
в контексте переноса модуля из приложения в приложение - это очень удобно.
В директории модуля. Я изначально подхожу к модулю как к расширению. От этого и отталкиваюсь.
Нет, это я понял. Папка самого модуля где расположена? в backend/frontend или на уровень выше? И как в таком случае модуль разделяется на back и front?
модуль находится вне этих трех папок (в папке extensions, это неважно), но в принципе по смыслу можно в common.
Еще раз: модуль я изначально делаю универсальным, поэтому в нем нет физического разделения на back/front, т.к. их может не быть, а могут быть и другие части приложения - это решать разработчику. А подключается с указанием прав доступа в конфиге (модификация AccessControl для модулей).
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Yii2 Общее понимание

Сообщение maleks »

chungachguk писал(а): Мне, например, ещё со времён джумлы не нравится идея редактирования контента на морде. Если сайт простенький, как в плане дизайна, так и в плане контента, то всё нормально. Но если это мало-мальски сложная система, то появляется путаница
1) всякие контекстные ссылки очень сильно упрощают дело. На цмс где их нет, смотреть печально.
2) владельцу сайта такой функционал может легко захотеться, его же это время работы экономит. Не говорить же теперь - "это невозможно, т.к. я выбрал шаблон..."
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

chungachguk писал(а):
maleks писал(а):
chungachguk писал(а):Папка самого модуля где расположена?
Он вроде говорит о коде из расширений, т.е. из vendor-а. Я тоже так делаю, чтобы и в basic шаблоне и в advanced работало.
Т.е. всё опять же сводится к тому, что нужно для модуля иметь отдельный AdminController с кучей action?
не понял. Имейте что хотите и как хотите. Вы разработчик, ваше право как что делать.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Yii2 Общее понимание

Сообщение maleks »

chungachguk писал(а): Т.е. всё опять же сводится к тому, что нужно для модуля иметь отдельный AdminController с кучей action?
А можно и в подпапке например 'admin' модуля кучу контроллеров, но это не важно.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

maleks писал(а):
chungachguk писал(а): Т.е. всё опять же сводится к тому, что нужно для модуля иметь отдельный AdminController с кучей action?
А можно и в подпапке например 'admin' модуля кучу контроллеров, но это не важно.
считаю, что делать контроллер для фронта, нужно только в образовательных целей, т.к. без переделки это подойдет только на сайте типа "Hello world". Поэтому достаточно контроллера для редактирования в админке - остальное должен реализовать разработчик.
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Yii2 Общее понимание

Сообщение chungachguk »

Опять никто ничего не понял.
Начну с того, что для меня не принципиально какой шаблон использовать. Но я хочу попробовать по максимуму использовать структуру именно advanced (может действительно в нём есть какая-то соль, помимо поддоменов и конфигов), и универсальность этой структуры как расширения меня не интересует. Так вот в моём понимании мы имеем такую структуру модуля (сильно упрощённо)

Код: Выделить всё

backend/
    modules/
              user/
                  controllers/
                 PostController
frontend/
    modules/
              user/
                  controllers/
                 PostController
common/
    modules/
              user/
                  models/
                      Post
Контроллер из back делает только работу по сбору необходимой информации для CRUD
Контроллер из front выполняет рутинные операции по отображению списков постов и их аттрибутов и т.д., в общем все хотелки для морды

И оба используют модель в которой описано что за модель, как сохранить, как обновить, ну и прочее всё что касается манипуляций с данной конкретной сущностью.

Что в сухом остатке.
back и front разделены конфигами, соответсвенно не нужно сильно мудрить с URL
соответсвенно, если писать писать CMS, то весь функционла лежит в back, не нужно его разыскивать и как-то разграничивать от остальной части системы
если со времнем мы разрабатываем отдельно раздел api, то по сути все манипуляции с данными уже лежат в common

Вот как-то так.
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Yii2 Общее понимание

Сообщение chungachguk »

maleks писал(а):
chungachguk писал(а): Т.е. всё опять же сводится к тому, что нужно для модуля иметь отдельный AdminController с кучей action?
А можно и в подпапке например 'admin' модуля кучу контроллеров, но это не важно.
Вот именно, что мне особо не нравится использование подпапки admin в модуле. Но, да, это сильно упрощает, если в будущем захочется кидать модуль из проекта в проект. Тут я всецело с вами всеми согласен.

Интересно было бы узнать мнение по поводу своего предыдущего сообщения. Имеет ли такая структура право на жизнь и что можно было бы улучшить. Шаблон advanced я рассматривая не как универсальный шаблон на все случае жизни, а как шаблон с чётким разделением структуры обязанностей.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

все верно говорите, в контексте желания разбивать модуль.
Но вы не верно понимаете особенности advanced. Его особенность ТОЛЬКО в структуре (front/back/console). Остальное можно использовать и в basic.
Да, эта структура подталкивает разработчика к разбиению модуля так, как вы описали. Но это сильно уменьшает переносимость модуля между разными разработками. Поэтому я описал свой подход выше.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

chungachguk писал(а): Интересно было бы узнать мнение по поводу своего предыдущего сообщения. Имеет ли такая структура право на жизнь и что можно было бы улучшить. Шаблон advanced я рассматривая не как универсальный шаблон на все случае жизни, а как шаблон с чётким разделением структуры обязанностей.
собственно это я и описал.
В модуле обычно мы имеем общие модели/компоненты, и раздельные контроллеры.
Логично все собрать в одной директории, а доступ к контроллерам раздавать на основе rbac. Вот собственно мы и избавились от минусов.
Аватара пользователя
chungachguk
Сообщения: 435
Зарегистрирован: 2012.07.17, 11:52

Re: Yii2 Общее понимание

Сообщение chungachguk »

zelenin писал(а):все верно говорите, в контексте желания разбивать модуль.
Но вы не верно понимаете особенности advanced. Его особенность ТОЛЬКО в структуре (front/back/console). Остальное можно использовать и в basic.
Да, эта структура подталкивает разработчика к разбиению модуля так, как вы описали. Но это сильно уменьшает переносимость модуля между разными разработками. Поэтому я описал свой подход выше.
"Трудно искать чёрную кошку, в чёрной комнате ..." :)
кажется я осознал, что нет сакрального смысла в этом шаблоне, тем более всё те же разделения я уже делал на yii1

Ну, а всё таки по моей структуре разделения модуля на составные части, есть ли какие-нибудь минусы, кроме переносимости, если я впоследствии будут развивать функционал, что-то в сторону CMS и соответсвенно создавай ещё такие же модули
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

chungachguk писал(а):всё таки по моей структуре разделения модуля на составные части, есть ли какие-нибудь минусы, кроме переносимости
нет
Kollega
Сообщения: 57
Зарегистрирован: 2014.10.27, 11:13
Откуда: СССР

Re: Yii2 Общее понимание

Сообщение Kollega »

тема о bootstrap затерлась... Может кто подскажет реальное решение избавиться грамотно от bootstrap
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Yii2 Общее понимание

Сообщение maleks »

chungachguk писал(а): Ну, а всё таки по моей структуре разделения модуля на составные части, есть ли какие-нибудь минусы, кроме переносимости, если я впоследствии будут развивать функционал, что-то в сторону CMS и соответсвенно создавай ещё такие же модули
То как ты разбил модуль на 3 части, это должно касаться только специфичного функционала для конечного сайта.
Если разрабатывать что то типа CMS, то модули вот так вручную копипастом переносить из сайта на сайт - не то.
Модуль в своей папке, установлен(и обновляется) композером, а в конфигах backend и frontend чисто подключается, как выше сказали с настройкой прав.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

maleks писал(а):
chungachguk писал(а): Ну, а всё таки по моей структуре разделения модуля на составные части, есть ли какие-нибудь минусы, кроме переносимости, если я впоследствии будут развивать функционал, что-то в сторону CMS и соответсвенно создавай ещё такие же модули
То как ты разбил модуль на 3 части, это должно касаться только специфичного функционала для конечного сайта.
Если разрабатывать что то типа CMS, то модули вот так вручную копипастом переносить из сайта на сайт - не то.
Модуль в своей папке, установлен(и обновляется) композером, а в конфигах backend и frontend чисто подключается, как выше сказали с настройкой прав.
:!:
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 Общее понимание

Сообщение zelenin »

Kollega писал(а):тема о bootstrap затерлась... Может кто подскажет реальное решение избавиться грамотно от bootstrap
в чем проблема-то?

Код: Выделить всё

<?php

namespace backend\assets;

use yii\web\AssetBundle;

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = ['css/site.css'];
    public $js = [
        'js/site.js',
        'js/batch-delete.js'
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\web\JqueryAsset',
        //'yii\bootstrap\BootstrapAsset',
        //'yii\bootstrap\BootstrapPluginAsset',
        'common\assets\FontAwesomeAsset',
        'common\assets\ClearSansAsset',
    ];
}
 
закомментировал бандлы и больше ничего не грузится.
Kollega
Сообщения: 57
Зарегистрирован: 2014.10.27, 11:13
Откуда: СССР

Re: Yii2 Общее понимание

Сообщение Kollega »

Не работает. "До"

Код: Выделить всё

<?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace frontend\assets;

use yii\web\AssetBundle;

/**
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @since 2.0
 */
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}
 
2014-11-04_112613.png
2014-11-04_112613.png (25.45 КБ) 7413 просмотров
После

Код: Выделить всё

<?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace frontend\assets;

use yii\web\AssetBundle;

/**
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @since 2.0
 */
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        //'yii\bootstrap\BootstrapAsset',
    ];
}
 
2014-11-04_113028.png
2014-11-04_113028.png (25.91 КБ) 7413 просмотров
Закрыто