| Current Path : /home/rtorresani/www/vendor/magento/framework/ObjectManager/Profiler/ |
| Current File : //home/rtorresani/www/vendor/magento/framework/ObjectManager/Profiler/FactoryDecorator.php |
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\ObjectManager\Profiler;
class FactoryDecorator implements \Magento\Framework\ObjectManager\FactoryInterface
{
/**
* Name of the class that generates logging wrappers
*/
const GENERATOR_NAME = \Magento\Framework\ObjectManager\Profiler\Code\Generator\Logger::class;
/**
* @var \Magento\Framework\ObjectManager\FactoryInterface
*/
protected $subject;
/**
* @var Log
*/
protected $log;
/**
* @param \Magento\Framework\ObjectManager\FactoryInterface $subject
* @param Log $log
*/
public function __construct(\Magento\Framework\ObjectManager\FactoryInterface $subject, Log $log)
{
$this->subject = $subject;
$this->log = $log;
}
/**
* @param \Magento\Framework\ObjectManagerInterface $objectManager
*
* @return void
*/
public function setObjectManager(\Magento\Framework\ObjectManagerInterface $objectManager)
{
$this->subject->setObjectManager($objectManager);
}
/**
* {@inheritdoc}
*/
public function create($requestedType, array $arguments = [])
{
$this->log->startCreating($requestedType);
$result = $this->subject->create($requestedType, $arguments);
if ($requestedType !== self::GENERATOR_NAME) {
$loggerClassName = get_class($result) . "\\Logger";
$wrappedResult = new $loggerClassName($result, $this->log);
$this->log->stopCreating($result);
$result = $wrappedResult;
}
return $result;
}
}