/** * * @return ClassesBuilder */ protected function writeClasses($force = false) { $n = 0; $classesBuffer = new TagProviderBuilder('', 'TagProvider', array(), '\\Pimple'); $buffer = array(); foreach ($this->classes as $class) { try { $class->write($force); if (strpos($class->getNamespace(), 'PHPExiftool\\Driver\\Tag') === 0) { if (!isset($buffer[$class->getProperty('GroupName')])) { $buffer[$class->getProperty('GroupName')] = array(); } $buffer[$class->getProperty('GroupName')][$class->getProperty('Name')] = $class->getNamespace() . '\\' . $class->getClassname(); } $this->output->write(sprintf("\rwriting class #%5d", $n++)); } catch (\Exception $e) { $this->output->writeln(sprintf("\n<error>Error while writing class %s</error>", $class->getPathfile())); } } $classesBuffer->setClasses($buffer); $classesBuffer->write(true); $this->output->writeln(''); return $this; }