Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Libraries > Yii CComponent


Автор: Logree 3.2.2014, 15:42
Добрый день, начал изучать yii и сразу возник вопрос т.к хочу все делать по феншую.
У меня есть такой набор классов:
Код

<?php

class TemplateFactory
{
    public static function create($n) {
        switch($n) {
            case '1':
                return new Template1($n);
            case '2':
                return new Template2($n);
        }        
    }
}
abstract class Template
{
   
    abstract public function parse();
    
    public function get_params() {
        return ...;
    }
}
class Template1 extends Template
{
    ...
}

class Template2 extends Template
{
    ...
}
?>


Вопрос: как эту структуру правильно переделать в компоненты? Что Делать компоненом и нужно ли вообще в данном случае использовать компонент? 

Автор: Logree 4.2.2014, 10:41
Спрошу по другому: у меня есть свой класс с помощью которого контроллер должен выполнять некие действия, нужно ли в данном случае оформлять его как компонент или просто сделать модель?

Автор: SamDark 4.2.2014, 15:02
Смотря как хотите использовать. Yii не заставляет делать всё компонентом. Компонент даёт:

- Геттеры-сеттеры.
- behavior-ы.

ApplicationComponent позволяет иметь единственный экземпляр класса и конфижить его через основной конфиг приложения. Собственно, всё.

Если ваша фабрика не конфигурируется и используется исключительно статически, не вижу смысла в компоненте.

Автор: Logree 5.2.2014, 03:44
Цитата(SamDark @ 4.2.2014,  15:02)
Смотря как хотите использовать. Yii не заставляет делать всё компонентом. Компонент даёт:

- Геттеры-сеттеры.
- behavior-ы.

ApplicationComponent позволяет иметь единственный экземпляр класса и конфижить его через основной конфиг приложения. Собственно, всё.

Если ваша фабрика не конфигурируется и используется исключительно статически, не вижу смысла в компоненте.

Понял, спасибо за внятный ответ.

Автор: lysyj 5.2.2014, 13:12
Надо использовать BPEL, XUL, и WADL.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)