Задать вопрос
  • Какой MV* JS фреймворк стоит начать изучать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Хочется что-то похожее на Yii, но в контексте JS

    Боже упаси.

    Ionic+angular для старта более чем. Есть еще famo.us для красивого UI и т.д. Как правило юзают Angular но можно и на React + Flux все делать, но под Angular банально больше готовых решений, во всяком случае на данный момент. Единственный ощутимый минус Angular - он порочный. То есть он клевый и няшный, но, как и Yii, провоцирует разработчиков использовать не очень красивые решения. Скажем можно соблазниться решить проблему в лоб и убить производительность фреймворка жирным дип-ватчем в контроллере.

    изучать вторую версию или первую?

    Вторая еще не вышла. Достаточно взять первую, вооружиться ES6/7 через babel.js и пытаться перенимать практики из второго для первого (сервисный слой к примеру можно будет перенести просто так, скопипастив почти, больше мороки будет с директивами, но опять же есть советы как лучше писать директивы что бы потом можно было легко это дело во второй версии юзать).

    общаться с API с помощью RESTful.

    Большинство фреймворков предложат вам только относительно низкоуровневое API для работы с сетью. Есть так же Ember.data, есть так же js-data хотя думаю для начала для вас это будет оверхэд. А может и нет.
    Ответ написан
    7 комментариев
  • Как и в каких случаях использовать 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 комментария
  • Yii - как валидировать правила в зависимости от модуля?

    @maxyc_webber
    Web-программист
    для этого существуют сценарии
    Ответ написан
    Комментировать
  • Yii - как валидировать правила в зависимости от модуля?

    LIAL
    @LIAL
    Использовать сценарии ИМХО более правильное решение
    Ответ написан
    Комментировать
  • Как на PHP можно правильно выделить из этого кода линк?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    $json = '{"thumb":"http:\/\/cs510320.vk.me\/u30156798\/video\/l_3c803d1c.jpg"}';
    $data = json_decode($json, true);
    $thumb = empty($data['thumb']) ? 
            '' : $data['thumb'];


    это самый верный способ. Еще можно поиграться с stripslashes
    Ответ написан
    2 комментария