* @license MIT */ class FileWriterGeneratorStrategy implements GeneratorStrategyInterface { /** * @var \ProxyManager\FileLocator\FileLocatorInterface */ protected $fileLocator; /** * @var callable */ private $emptyErrorHandler; /** * @param \ProxyManager\FileLocator\FileLocatorInterface $fileLocator */ public function __construct(FileLocatorInterface $fileLocator) { $this->fileLocator = $fileLocator; $this->emptyErrorHandler = function () { }; } /** * Write generated code to disk and return the class code * * {@inheritDoc} */ public function generate(ClassGenerator $classGenerator) { $className = trim($classGenerator->getNamespaceName(), '\\') . '\\' . trim($classGenerator->getName(), '\\'); $generatedCode = $classGenerator->generate(); $fileName = $this->fileLocator->getProxyFileName($className); set_error_handler($this->emptyErrorHandler); try { $this->writeFile("