ФорумПрограммированиеPHP для идиотовPHP и ООП → Сеттеры и геттры когда их много

Сеттеры и геттры когда их много

  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz 28 октября 2010 г. 11:01

    Получается вот такой говнокод: )
    Собственно вопрос, как с этим бороться и надо ли? Магические методы может в таком случае надо юзать?
    Еще узнал после того как вручную все написал, что нетбинс сам генерит сеттеры и геттеры )


    class Element {
    private $_sField;
    private $_sLabel = '';
    private $_sType = 'text';
    private $_sName = '';
    private $_sValue = '';
    private $_aOption = array();
    private $_aRule = array();

    private $_sClassName = '';
    private $_sIdName = '';

    private $_sComment = '';

    private $aKnownType = array('input', 'select', 'textarea');

    function __construct($sField = '') {
    if (!$sField)
    throw new esyFormExeption ('Element: Not specified the element type');
    if (!in_array($sField, $this->aKnownType))
    throw new esyFormExeption ('Element: Unknown entry type');
    $this->_sField = $sField;
    return $this;
    }

    public function setType($sType) {
    $this->_sType = $sType;
    return $this;
    }

    public function setName($sName = '') {
    $this->_sName = $sName;
    return $this;
    }

    public function setValue($sValue = '') {
    $this->_sValue = $sValue;
    return $this;
    }

    public function setRule($aRule = array()) {
    $this->_aRule = $aRule;
    return $this;
    }

    public function setClassName($sClassName) {
    $this->_sClassName = $sClassName;
    return $this;
    }

    public function setIdName($sIdName) {
    $this->_sIdName = $sIdName;
    return $this;
    }

    public function setLabel($sLabel) {
    $this->_sLabel = $sLabel;
    return $this;
    }

    public function setComment($sComment) {
    $this->_sComment = $sComment;
    return $this;
    }

    public function setOption($aOption) {
    $this->_aOption = $aOption;
    return $this;
    }

    public function getType() {
    return $this->_sType;
    }
    public function getField() {
    return $this->_sField;
    }
    public function getName() {
    return $this->_sName;
    }
    public function getValue() {
    return $this->_sValue;
    }
    public function getRule() {
    return $this->_aRule;
    }
    public function getClassName() {
    return $this->_sClassName;
    }
    public function getIdName() {
    return $this->_sIdName;
    }
    public function getLabel() {
    return $this->_sLabel;
    }
    public function getComment() {
    return $this->_sComment;
    }

    public function render() {
    return Render::Element($this);
    }
    }
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 28 октября 2010 г. 11:35, спустя 34 минуты 13 секунд

    Создаешь один сеттер и один геттер, параметром которому передаешь имя члена класса, которое нужно установить/получить.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 октября 2010 г. 12:15, спустя 39 минут 58 секунд

    Создаешь один сеттер и один геттер, параметром которому передаешь имя члена класса, которое нужно установить/получить.

    пиздец)

    выход - берешь .net и радуешься идешке и возможностям :)
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 28 октября 2010 г. 12:32, спустя 17 минут 39 секунд

    phpdude, фу, гейтсоёб!
    На самом деле если делать все так прорсто, то удобнее сразу же взять чемодан с баблом и не парится.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 октября 2010 г. 12:38, спустя 6 минут 1 секунду

    Givi, а ты курни! я тоже долго боялся план пробовать
    Сапожник без сапог
  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz 28 октября 2010 г. 13:11, спустя 32 минуты 35 секунд

    Создаешь один сеттер и один геттер, параметром которому передаешь имя члена класса, которое нужно установить/получить.

    т.е. лучше юзать мэджик в таких случаях?

    выход - берешь .net и радуешься идешке и возможностям :)


    т.е. вот так вот просто все, рубануть на форме "PHP форум на ПЫХА.РУ" берешь .net и радуешься ))

    мне бы на PHP научится нормально кодить, ведь - "PHP Прелестный язык, на котором обычно пишут ногами…"
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 октября 2010 г. 13:24, спустя 13 минут 10 секунд

    мне бы на PHP научится нормально кодить, ведь - "PHP Прелестный язык, на котором обычно пишут ногами…"

    о! откуда знаешь? сайта два месяца лежат)
    Спустя 27 сек.
    т.е. лучше юзать мэджик в таких случаях?

    лучше сеттеры, кодогенератором каким либо
    Сапожник без сапог
  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz 28 октября 2010 г. 13:28, спустя 3 минуты 24 секунды

    о! откуда знаешь? сайта два месяца лежат)

    помню )

    лучше сеттеры, кодогенератором каким либо


    Еще узнал после того как вручную все написал, что нетбинс сам генерит сеттеры и геттеры )


  • AndryG

    Сообщения: 237 Репутация: N Группа: Адекваты

    Spritz 28 октября 2010 г. 13:44, спустя 16 минут 32 секунды

    А чем Ваш код плох?
    Работает быстрее магических штучек, автодополнение в редакторе нормальном будет работать и точно знаешь, что есть и чего нет в классе. А объем … это фигня.
  • andipas

    Сообщения: 170 Репутация: N Группа: Кто попало

    Spritz 28 октября 2010 г. 13:55, спустя 11 минут 3 секунды

    А чем Ваш код плох?
    Работает быстрее магических штучек, автодополнение в редакторе нормальном будет работать и точно знаешь, что есть и чего нет в классе. А объем … это фигня.


    На взгляд куча одинаковых методов… почему то ассоцируется с этим вот )


    позавчера попросили поправить доргенчик, там в шаблоне хтмльки были [url1][key1][url2][key2]….[url70][key70]

    я было подумал - пиздец какой то, человек про форы не слышал

    но как это оказалось - хуйня, потом в индексе было 70 одинаковых кусков кода которые обрабатывают эти инустркции, кусочек кода - 20 строк :-D

    я пиздец поржал над теми кто это сотворил))))))))))))


    а так да, не буду заморачиваться, тем более IDE их сам генерит )
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 октября 2010 г. 14:05, спустя 10 минут 23 секунды

    На взгляд куча одинаковых методов… почему то ассоцируется с этим вот )

    да, пых нехорош этим, в .net есть аххуеная фишка о которой я уже рассказывал - все поля объекта - функции, поле - свойство или метод. просто их можно назначать, а можно юзать "наследование магическое видимо" - объявить как поле
    Спустя 15 сек.
    ну и на этапе установки или чтения сделать функцией если это надо бывает
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!