예제 #1
0
 public function testGetGeneratedEntities()
 {
     $this->model = new \Magento\Framework\Code\Generator($this->ioObjectMock, ['factory', 'proxy', 'interceptor']);
     $this->assertEquals(array_values($this->expectedEntities), $this->model->getGeneratedEntities());
 }
예제 #2
0
    $className = $opt->getOption('c');
    if (empty($className)) {
        throw new \Zend_Console_Getopt_Exception('class is a required parameter');
    }
    $substitutions = ['proxy' => '_Proxy', 'factory' => 'Factory', 'interceptor' => '_Interceptor'];
    if (!in_array($entityType, array_keys($substitutions))) {
        throw new \Zend_Console_Getopt_Exception('unrecognized type: ' . $entityType);
    }
    $className .= $substitutions[$entityType];
    if ($opt->getOption('g')) {
        $generationDir = $opt->getOption('g');
    }
    AutoloaderRegistry::getAutoloader()->addPsr4('Magento\\', $generationDir . '/Magento/');
} catch (\Zend_Console_Getopt_Exception $e) {
    $generator = new Generator();
    $entities = $generator->getGeneratedEntities();
    $allowedTypes = 'Allowed entity types are: ' . implode(', ', $entities) . '.';
    $example = 'Example: php -f entity_generator.php -- -t factory -c \\Magento\\Framework\\Event\\Observer ' . '-g /var/mage/m2ee/generation' . ' - will generate file /var/mage/m2ee/generation/Magento/Framework/Event/ObserverFactory.php';
    echo $e->getMessage() . "\n";
    echo $e->getUsageMessage() . "\n";
    echo $allowedTypes . "\n";
    echo 'Default generation dir is ' . $generationDir . "\n";
    exit($example);
}
//reinit generator with correct generation path
$io = new Io(new File(), $generationDir);
$generator = new Generator($io, [Proxy::ENTITY_TYPE => 'Magento\\Framework\\ObjectManager\\Code\\Generator\\Proxy', Factory::ENTITY_TYPE => 'Magento\\Framework\\ObjectManager\\Code\\Generator\\Factory', Interceptor::ENTITY_TYPE => 'Magento\\Framework\\Interception\\Code\\Generator\\Interceptor', Mapper::ENTITY_TYPE => 'Magento\\Framework\\Api\\Code\\Generator\\Mapper', Repository::ENTITY_TYPE => 'Magento\\Framework\\ObjectManager\\Code\\Generator\\Repository', Converter::ENTITY_TYPE => 'Magento\\Framework\\ObjectManager\\Code\\Generator\\Converter', SearchResults::ENTITY_TYPE => 'Magento\\Framework\\Api\\Code\\Generator\\SearchResults', ExtensionAttributesInterfaceGenerator::ENTITY_TYPE => 'Magento\\Framework\\Api\\Code\\Generator\\ExtensionAttributesInterfaceGenerator', ExtensionAttributesGenerator::ENTITY_TYPE => 'Magento\\Framework\\Api\\Code\\Generator\\ExtensionAttributesGenerator']);
/** Initialize object manager for code generation based on configs */
$magentoObjectManagerFactory = \Magento\Framework\App\Bootstrap::createObjectManagerFactory(BP, $_SERVER);
$objectManager = $magentoObjectManagerFactory->create($_SERVER);
$generator->setObjectManager($objectManager);
예제 #3
0
 public function testGetGeneratedEntities()
 {
     $this->model = $this->buildModel($this->ioObjectMock, ['factory', 'proxy', 'interceptor'], $this->definedClassesMock);
     $this->assertEquals(array_values($this->expectedEntities), $this->model->getGeneratedEntities());
 }