• Yii. Как сделать в rule необязательный параметр?

    @arab789 Автор вопроса
    Может и костыль конечно, но получилось решить проблему, не выставляя необязательный параметр. В 'rules' перечислил какие ссылки могут быть:
    'rules'=>array(
                                    'page/<id:\d+>/<alias:.*>/<platform:.*>' => 'page/index/',
                                    'page/<id:\d+>/<alias:.*>' => 'page/index/',
                                    'page/<id:\d+>' => 'page/index/',
                                    'page' => 'page/index/',
                                    '<controller:\w+>/<id:\d+>' => '<controller>/view',
                                    '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                                    '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    			),
    Ответ написан
    Комментировать
  • Как и в каких случаях использовать DI в Yii2?

    SamDark
    @SamDark
    Yii2 core team
    DI именно в вашем случае не при чём. Это способ реализации, а не сама идея. Идея состоит в том, что вам нужно реализовать принцип инверсии зависимостей. То есть начать работать с интерфейсами, а не с конкретными реализациями.

    Чтобы быть универсальным и переносимым, модуль не должен знать о моделях извне себя. Вместо этого он должен выражать свои требования в виде интерфейса, а внешние модели этот интерфейс должны реализовывать.

    Для вашего примера делаем в модуле Article делаем интерфейсы:

    interface ArticleInterface
    {
        public function getTitle();
        public function getAuthor();
    }
    
    interface ArticleAuthorInterface
    {
        public function getName();
        public function getID();
    }


    Далее в пределах модуля используем только интерфейсы, а не сами модели:

    public function renderArticle(ArticleInterface $article)
    {
        return $this->renderPartial('_article', [
             'author' => $article->getAuthor(), 
             'title' => $article->getTitle()
        ]);
    }


    Вне модуля нам придётся реализовать интерфейсы в моделях:

    class Article extends ActiveRecord implements ArticleInterface
    {
       // ...
    }
    Ответ написан
    34 комментария
  • Правильно ли я понял основые принципы БЭМа?

    Zoxon
    @Zoxon
    Веб-разработчик
    Уж незнаю что вы хотите сделать, но вот такой разметки хватит на что угодно.
    И БЭМ это не способ именования классов. Нужно смотреть еще css, скорее всего именно там самые серьезные ошибки.
    <ul class="menu">
    	<li class="menu__item"><a href="#">Пункт</a></li>
    	<li class="menu__item menu__item_active"><a href="#">Пункт</a></li>
    	<li class="menu__item menu__item_submenu">
    		<a href="#">Пункт с подменю</a>
    		<div class="menu__submenu">
    			<ul class="submenu">
    				<li class="submenu__item"><a href="#">Пункт подменю</a></li>
    				<li class="submenu__item"><a href="#">Пункт подменю</a></li>
    				<li class="submenu__item submenu__item_active"><a href="#">Пункт подменю</a></li>
    			</ul>
    		</div>
    	</li>
    	<li class="menu__item">Пункт</li>
    </ul>


    В хедере располагается три других блока: logo, menu и info.

    Я так понял вы подхватили болезнь БМ, новички всегда в это вляпываются
    <div class="header">
    	<div class="header__logo">
    		<div class="logo"></div>
    	</div>
    	<div class="header__menu">
    		<div class="menu"></div>
    	</div>
    	<div class="header__info">
    		<div class="info"></div>
    	</div>
    </div>
    Ответ написан
    7 комментариев
  • Изменяется яркость монитора?

    @Sergowa
    У меня точно такая же проблема! Такой же монитор. Долго я искал решение.
    Нужно отключить SUPER ENERGY SAVING в настройках монитора.
    Но эта функция находится не в меню в мониторе, а в настройках монитора, которые вызывается нажатием клавиши FUNC. на мониторе.
    Ответ написан
    2 комментария
  • Изменяется яркость монитора?

    @LastDragon
    Проверьте не включена ли случайно «экономия электроэнергии» (SUPER ENERGY SAVING), у меня нименно она вызывает подобный «эффект» (модель правда другая).
    Ответ написан
    3 комментария