getProperty('_config'); $property->setAccessible(true); /** @var array<\Cake\Mailer\AbstractTransport|array> $configs */ $configs = $property->getValue(); $log = $this->emailLog = new ArrayObject(); foreach ($configs as $name => $transport) { if (is_object($transport)) { if (!$transport instanceof DebugKitTransport) { $configs[$name] = new DebugKitTransport(['debugKitLog' => $log], $transport); } continue; } $className = App::className($transport['className'], 'Mailer/Transport', 'Transport'); if (!$className || $className === DebugKitTransport::class) { continue; } $transport['originalClassName'] = $transport['className']; $transport['className'] = 'DebugKit.DebugKit'; $transport['debugKitLog'] = $log; $configs[$name] = $transport; } $reflection->setStaticPropertyValue('_config', $configs); } /** * Get the data this panel wants to store. * * @return array */ public function data() { return [ 'emails' => isset($this->emailLog) ? $this->emailLog->getArrayCopy() : [], ]; } /** * Get summary data from the queries run. * * @return string */ public function summary() { if (empty($this->emailLog)) { return ''; } return (string)count($this->emailLog); } }