[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Соеобразный адаптер
Ron
Всем првет!

Как считаете, вот такая конструкция имеет место быть, или это как раз и есть тот самый говнокод? ))

<?php
class
test
{
public function doSomethingAwesome($param, callable $callback = NULL)
{
$param += $param;
if($callback !== NULL)
{
$callback($param, $this); //$this or another object.
}
else
{
echo "default behavior"; //Yes, me shouldn't use outputs inside the class. ;)
}
}


public function logger($toDb)
{
/*INSERT INTO .... bla-bla-bla*/
echo $toDb;
}
}


$a = new test();

$a->doSomethingAwesome(10, function($param, $obj){
/*Do something with $param here*/
$obj->logger('The number is ' . $param);
});

$a->doSomethingAwesome(10);

Задача соорудить некий динамический адаптер между методами одного (или даже разных) классов. Цель не загромождать бизнес-логику при стандартном поведении. Которое будет выполняться, конечно же, в большинстве случаев. Замыкание больше как отработка исключительных ситуаций.

Приведенный выше пример не конкретная задача. Просто концепт.



chee
Ron, пытался делать что-то подобное, но в итоге сделал вывод, что это лишнее, лучше уж использовать события.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Ron
chee, имеется ввиду это? http://php.net/manual/ru/book.event.php

Что-то я не пойму как юзать... Судя по всему свирепая ботва! )
Invis1ble
Цитата (Ron @ 17.11.2015 - 21:38)
имеется ввиду это? http://php.net/manual/ru/book.event.php
chee
Ron, в процедурном программировании это хуки, в ООП Наблюдатель

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Ron
chee, я понял, спасибо! ) А то и смотрю, чего-то не то, или я уж совсем ничего не понимаю. )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.