ФорумПрограммированиеPHP для идиотов → Плохой тон

Плохой тон

  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 28 декабря 2010 г. 23:47, спустя 40 минут 30 секунд

    Ой пиздец как удобно,когда в классе более десятка полей, и нада 10 сеттеров и 10 геттеров….

    Ой, как пиздец. Как удобно, когда геттеры реализуют разную логику, и она инкапсулирована в ебаном _get()?


  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2010 г. 0:41, спустя 53 минуты 42 секунды

    krasun, да вы просто не умете готовить на php
    Спустя 11 сек.
    ;)
  • Rotten

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

    Spritz 29 декабря 2010 г. 0:59, спустя 17 минут 45 секунд

    krasun, геттеры реализуют разную логику?..
    тоесть?

    просто я думаю что удобнее когда в классе есть один геттер и сеттер, которые имеют строковые параметры(названия того поля которое тебе нужно получить) и он не засран 20тью лишними похожими методами…
  • phpdude

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

    Spritz 29 декабря 2010 г. 1:03, спустя 4 минуты 10 секунд

    просто я думаю что удобнее когда в классе есть один геттер и сеттер, которые имеют строковые параметры(названия того поля которое тебе нужно получить) и он не засран 20тью лишними похожими методами…

    просто ты слишком долго в говне пхп плавал
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2010 г. 1:12, спустя 8 минут 34 секунды

    Rotten, вот, например

    	public function getParams()
    {
    return $this->params;
    }

    public function addParam(RouteResolver_Database_Route_Param $param)
    {
    $this->params->add($param);
    $param->setRoute($this);

    return $this;
    }

    public function setParams(array $params)
    {
    $this->params->clear();
    foreach ($params as $param) {
    $this->addParam($param);
    }

    return $this;
    }
  • Mars

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

    Spritz 29 декабря 2010 г. 1:31, спустя 19 минут 11 секунд

    public function getParams()
    {
    return $this->params;
    }

    всегда удивлялся таким функциям
  • phpdude

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

    Spritz 29 декабря 2010 г. 1:39, спустя 8 минут 41 секунду

    всегда удивлялся таким функциям

    это потому что ты не делал read only свойств.
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2010 г. 1:56, спустя 16 минут 55 секунд

    class User_Model_User extends Object_Abstract {
       /**
        *
        * @param mixed &$value
        */
       protected function _beforeSetPassword(&$value)
       {
           $hasher = new Hasher();
           $value = $hasher->getUserPasswordHash($value);
       }
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2010 г. 2:15, спустя 18 минут 34 секунды

    $hasher = new Hasher();

    зачем же так жжестко хардкодить название класса?)
  • phpdude

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

    Spritz 29 декабря 2010 г. 2:30, спустя 15 минут 6 секунд

    Абырвалг, если реализация драйверная, то вот ни похуй :D

    пусть хоть Vagina называет
    Сапожник без сапог
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2010 г. 2:33, спустя 2 минуты 54 секунды

    зачем же так жжестко хардкодить название класса?)

    ну этот точно никогда не измениться, я уверен )) ну я не это хотел показать, а применение геттеров и сеттеров в php )) а там и реестр можно применить если не хочется хардкодить… но мне похуй было ))
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2010 г. 6:49, спустя 4 часа 16 минут 24 секунды

    krasun, да вы просто не умете готовить на php

    Возможно не умею, но я не сказал, что я делают так:
    геттеры реализуют разную логику, и она инкапсулирована в ебаном _get()

    Я вполне себе понимаю ограниченность php, но это для меня не проблема. В php у меня геттер - это $obj->getProperty() и никакой магии и сеттер - $obj->setProperty().

    krasun, геттеры реализуют разную логику?..
    тоесть?

    Реальный пример с надуманными дополнениями:

    class Graph : DijkstraApplication.IGraph
    {

    public float[,] AdjacencyMatrix
    {
    get
    {
    float[,] adjacencyMatrix = new float[_vertexes.Count, _vertexes.Count];

    for (int i = 0; i < adjacencyMatrix.GetLength(0); i++)
    {
    int startVertex = _vertexes;
    for (int j = 0; j < adjacencyMatrix.GetLength(1); j++)
    {
    int endVertex = _vertexes[j];
    adjacencyMatrix[i, j] = GetEdgeWeight(startVertex, endVertex);
    }
    }

    return adjacencyMatrix;
    }
    }

    public int IsCycle {get {…}; }

    // и тому подобное.
    }


    В программе вызывается, например, так:

    Graph g = new Graph();
    var matrix = g.AdjacencyMatrix;
    bool isCycle = graph.IsCycle;


    Покажи, аналогию на php используя __get и __set (не надо этого делать, это сарказм). Вот что имелось ввиду под инкапсуляцией логики в свойстве. Поэтому повторюсь я в php использую $obj->getPropValue(); и $obj->setPropValue($val);

    Хотя иногда хочется, что бы некоторые атрибуты сущности все таки были свойствами, например, Width, Height - почти всегда свойства.

    Короче, бля, хочу спать, харит писать






  • Rotten

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

    Spritz 29 декабря 2010 г. 13:08, спустя 6 часов 18 минут 15 секунд

    krasun, я не имел ввиду имено магию на пхп касательно геттеров или сеттеров…
    Я тоже предпочитаю чтобы все было явным. Поэтому, $obj->getPropValue(); и $obj->setPropValue($val); я скорей имел ввиду..
    А на самом деле, честно гвооря - я никогда __set($val) и __get() и не использовал)..

  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 декабря 2010 г. 13:19, спустя 11 минут 23 секунды

    А на самом деле, честно гвооря - я никогда __set($val) и __get() и не использовал)

    а я симфони и доктрину)
  • artoodetoo

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

    Spritz 30 декабря 2010 г. 7:07, спустя 17 часов 47 минут 43 секунды

    вечер откровений на пiха.ру
    ιιlllιlllι унц-унц

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