All streams
Search
Write a publication
Pull to refresh
27
0

User

Send message
А с реализацией нахалявили…
Меня удивляют люди, которые знают об этом только из новостей (определенный фильтр) и им всё сразу известно, чем всё закончится…
Бюджет треснет…
Вы только что-то слышали о LISP и не понимаете о чём речь. По этому вы не правы.

У LISP OOP (а именно CLOS), на которую многие языки равняются. Она позволяет легко делать многие ОО вещи элементарно, которые в других языках делается уже на уровне алгоритмов, паттернов итд.
И для чего в PHP нужны замыкания? :)
Я признаю, что моя реализация проверки (в первом примере) туповата. Это случилось потому что это был пример, а не реальный код.

Но вариант с классами — это засирание кодом и усложнение структуры. Очевидно, что людям разобраться и найти нужное будет намного сложнее. Создавать новый класс для каждой проверки? Создать один класс, который будет делать все проверки, который нужно искать по названию?

Делать конечно нужно всё по уму, но первый пример смотрится и помещается в голове у программиста намного лучше. Для этого и созданы замыкания.

Второй пример необходим только в случае частого использования.
Тогда простите меня, это ппц — за год не разобраться, для чего они нужны…
В вашем случае, элегантность кода = создание дополнительного Validate класса в который идет загрузка $login, затем установка полю проверки?

class LoginValidate extends Validate{
  function setLogin($login){
   $this->login = $login;
  }

  function onValidate($value){
    return $this->login != $value;
  }
}

///...

$login = Auth::getLogin();

getElementObject('Field.name')
  ->onValidate(
     classBuilder::createClass('LoginValidate')
       ->setLogin($login)
  );

* This source code was highlighted with Source Code Highlighter.


Объясните, как по вашему поступить элегантно?
p.s. А, ну и почитайте, как их можно использовать… Первая ссылка google… fabien.potencier.org/article/17/on-php-5-3-lambda-functions-and-closures
Я удивлен, что статья попала на главную…

Причин две:
1) Статья совершенно не про «Замыкания в PHP»… Об этом хотябы говорит ваша фраза «Зачем нужны замыкания в PHP я понимаю слабо».
2) По поводу замыканий JS — полно статей на Хабре. Я негодую — что нового в этой статье?

Аннонимные функции у меня во FW используются так:
getElementObject('Form')
  ->onValidate(function($fields){
   //проверки
  })
  ->onSubmit(function($fields){
   //что делаем, если порядок
  })
  ->onError(function($fields){
   //что делаем, если всё плохо
  });


* This source code was highlighted with Source Code Highlighter.


Замыкания так:
$login = Auth::getLogin();

getElementObject('Form')
  ->onValidate(function($fields) use ($login){
    $newLogin = $fields->getElementObject('.name')->getValue();
    //Проверяем, что пользователь ввел не сам себя
    return $login != $newLogin;
  });


* This source code was highlighted with Source Code Highlighter.

Смысл этого в том, чтобы определять $login не внутри Validate функции.
… Я тут посчитал — ещё в прошлом году нормальных людей было 90%, за один год нац меньшинства выросли на 50% — это означает, что через 2 года будут в мире только одни нац меньшинства! Это какраз будет 2012й — это майя предсказывали! (С) Эрик Картман
Весь замысел этого всего — встройка в человеков чипов и тотальное слижение за каждым.
Изначально фильм был длительностью 3ч 23м. Но из настоящего фильма было вырезан 1ч 07м, оставив только боевик. Совсем не странно, что этот фильм вызвал столько споров — множество моментов было упущено из-за цензуры.
Последняя версия несколько лет давности.
Берите мороженное, Берите :))))
и давала… +50, +66 Мгц… О боже!
Взлетит или нет — это другой вопрос. А Везение и удача — пустые понятия, не имеющие к стартапам ничего общего.
Ещё один момент юзабилити — совсем не обязательно всё пихать в одну форму — можно разделить на 2.

Например, проставить метки и дату отлично впишется во второй шаг.

Смысл в том, что после написания текста — уже отчетливо понимаешь, какие метки для него можно использовать. В общем, не отвлекает.
Хороший пример подаете.

А автор, пишущий о юзабилити, из одного говна сделал другое. :)

Information

Rating
Does not participate
Location
Россия
Registered
Activity