<?php
class ReportController
{
protected $source;
protected $data;
public function __construct(array $source, \Closure $transformer, $dataObject = null)
{
$this->source = $source;
$this->data = ($dataObject) ? new stdClass() : $dataObject;
$this->transform($transformer);
}
public function transform(\Closure $transformer)
{
array_walk($this->source, $transformer, "bob");
}
public function getData() {
return $this->data;
}
}
$source = [
['type'=>'open'],
['type'=>'closed'],
['type'=>'pending'],
['type'=>'accepted']
];
$transformer = function($ticket, $key, $data) {
var_dump($key, $data);
(isset($data[$ticket['type']]))? $data[$ticket['type']]++: $data[$ticket['type']]=1;
};
$report = new ReportController($source, $transformer);
var_dump($report->getData());
preferences:
58.69 ms | 402 KiB | 5 Q