"PHP" / Говнокод #22659 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
public static function __callStatic($method, $args)
{
	$instance = static::getFacadeRoot();
	switch (count($args))
	{
		case 0:
			return $instance->$method();
		case 1:
			return $instance->$method($args[0]);
		case 2:
			return $instance->$method($args[0], $args[1]);
		case 3:
			return $instance->$method($args[0], $args[1], $args[2]);
		case 4:
			return $instance->$method($args[0], $args[1], $args[2], $args[3]);
		default:
			return call_user_func_array(array($instance, $method), $args);
	}
}

классическая блевня и ссанина в очередном модном фреймворке

https://github.com/illuminate/support/blob/4.2/Facades/Facade.php#L198-L222

Запостил: Fike Fike, (Updated )

Комментарии (26) RSS

    • И свитч-кейс не нужен. Массивы — наше всё:
      $jmpTable = array(
        0 => function($args) use ($instance, $method) { return $instance->$method(); },
        1 => function($args) use ($instance, $method) { return $instance->$method($args[1]); },
        2 => function($args) use ($instance, $method) { return $instance->$method($args[0], $args[1]); },
        3 => function($args) use ($instance, $method) { return $instance->$method($args[0], $args[1], $args[2]); },
        4 => function($args) use ($instance, $method) { return $instance->$method($args[0], $args[1], $args[2], $args[3]); }
      );
      
      $cnt = count($args);
      
      return ($cnt <= 4) ? $jmpTable[$cnt]($args) : call_user_func_array(array($instance, $method), $args);
      Ответить
  • /**
    	 * Determine if a given string contains a given substring.
    	 *
    	 * @param  string  $haystack
    	 * @param  string|array  $needles
    	 * @return bool
    	 */
    	public static function contains($haystack, $needles)
    	{
    		foreach ((array) $needles as $needle)
    		{
    			if ($needle != '' && strpos($haystack, $needle) !== false) return true;
    		}
    		return false;
    	}


    бля
    велосипиды
    Ответить
    • а) я не релизил свои собственные фреймворки б) с них не ссалась кипятком добрая половина пользователей языка и, наконец в) это было найдено вчера в rocketeer. outdated dependencies, конечно, но используется в настоящее время.
      Ответить
    • Пять лет назад я давно уже не писал на пхп

      Вообще после 20 лет писать на пхп стыдно
      Ответить
      • После 20 лет писания на php? Пожалуй да, можно ебануться.
        Ответить
  • Пофиксил.

    default:
    --    return call_user_func_array(array($instance, $method), $args);
    ++    die("Слишком много аргументов!");
    Ответить
    • Laravel 1.12 -> Laravel 1.121
      default:
      --    die("<div style=\"font-color:red!important; font-weight:666!important;>\"><span><h2>ОШИБКА</h2><br/><br/><br><b>Слишком много</b> <h1>аргументов</h1>!</span>  </div>");
      ++    return call_user_func_array(array($instance, $method), $args);
      Ответить
  • Тоже кстати видел такой анролл на жс.
    Зачем так делают?
    Ответить
    • Спрашивать зачем что то делают на джс -- глупо
      Бекос факю, зец вай
      Ответить
        • На VBScript, который в последнем IE отменён, а за пределами IE и не бывал. Зато не JS.
          Ответить
                  • Кстати, программисты нелогичные. Сначала они говорят:
                    -- Ко-ко-ко, учите теорию данные алгоритмы!
                    -- Ко-ко-ко, выбирайте язык под задачу!
                    -- Ко-ко-ко я знаю полсотни языков!

                    А потом, когда встречают объявление "требуется Java(Script), 1С/С/С++ программист", начинают петь по-другому:
                    -- Ко-ко-ко, вот тупые, не определились с языком!
                    -- Ко-ко-ко, я специалист!
                    -- Ко-ко-ко, ну посмотрим, какого школьника они за дошираки найдут!
                    Ответить
                    • Я ещё работаю на своей первой работе, куда я пришёл ещё студентом. И я поддерживаю "Ко-ко-ко, учите теорию данные алгоритмы!"

                      Но разве кукарекают "Ко-ко-ко, вот тупые, не определились с языком!"? Потому что с задачей обычно определяются заранее.

                      Но вот в гугле сылышал, что на собесе вообще про язык речи не идёт. Это правда?
                      Ответить
                      • если правда то вполне логично, зачем гуглу про язык спрашивать. Все равно кандидат писал на js а они его посадят за dart или писал на java а посадят на go. Или за кресты, которые у них без exceptionов. Или еще какой-нибудь язык к тому времени придумают.
                        Ответить
                    • > Кстати, программисты нелогичные.

                      Ты нелогично заключил, что все программисты имеют одинаковое мнение и они нелогичны. На самом деле мнение отдельных программистов может быть логичным, но кумулятивное мнение совокупности может таким и не быть.
                      Даже собрать всех вместе и провести выборы, как нужно ранжировать области знания программистов, всё равно логичности не получится. См. Теорему Эрроу.
                      Ответить
                      • Да, всё так, но наблюдаю я именно суммарное мнение программистов, которое бреду подобно.
                        Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8