for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Maslosoft\Manganel\Helpers;
use Maslosoft\Mangan\Events\Event;
use Maslosoft\Mangan\Helpers\FinderEvents;
use Maslosoft\Manganel\Interfaces\ModelsAwareInterface;
/**
* Finder events helper supporting multiple models.
* Requires finder to implement `ModelsAwareInterface`
*
* @see ModelsAwareInterface
* @author Piotr Maselkowski <pmaselkowski at gmail.com>
*/
class MultiFinderEvents extends FinderEvents
{
protected function trigger($finder, $event)
assert($finder instanceof ModelsAwareInterface);
foreach ($finder->getModels() as $model)
Event::trigger($model, $event);
}
protected function handle($finder, $event)
if (!$this->handleOne($model, $event))
return false;
return true;
protected function handleOne($model, $event)
if (!Event::hasHandler($model, $event))
return Event::handled($model, $event);