ФорумПрограммирование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ι унц-унц

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