# importa dependências from Compiler import Compiler from Module.Module import Module # Modulo (Geral) from Module.Adapter.Adapter import Adapter # Adapter (Core) from Module.Entity.Entity import Entity # Entity (MVC) from Module.Entity.Entity import Atributo # Entity (MVC) # Adaptador de Banco de Dados adapter = Adapter('localhost', 'testebd', 'root', '') # Modulo Core core = Module('Core') core.addFiles(adapter) # Modulo Carros entCarro = Entity('Carro') entCarro.addAtributos( Atributo('id', Atributo.TYPE_INT, None, True, True, True, False), Atributo('nome', Atributo.TYPE_VARCHAR, 180), Atributo('modelo', Atributo.TYPE_VARCHAR, 100), Atributo('marca', Atributo.TYPE_VARCHAR, 100), Atributo('placa', Atributo.TYPE_VARCHAR, 100), Atributo('cor', Atributo.TYPE_VARCHAR, 100) ) entCarro.createModel() entCarro.generateCreateTable() modCarros = Module('Carros') modCarros.addFiles(entCarro) # Compila o resultado
def generate(self): """ Método para gerar o módulo. """ # Apaga a pasta onde serão salvos os arquivos: if os.path.isdir(self.diretorio): os.system("rd %s /s /q" % self.diretorio) # Cria novamente a pasta: os.mkdir(self.diretorio) # Cria a pasta 'Module': os.mkdir('%s/Module' % self.diretorio) # Cria os módulos dentro da pasta 'diretorio/Module': for module in self.modules: # Cria a pasta do módulo: os.mkdir('%s/Module/%s' % (self.diretorio, module)) # Cria o arquivo init: init = Init( self.author, self.emailAutor, '%i/%i/%i' % (date.today().day, date.today().month, date.today().year)) # Cria os arquivos do módulo: for arquivo in module.files: # Cria o arquivo da entidade do módulo: arqEntidade = open( '%s/Module/%s/%s' % (self.diretorio, module, "%s.php" % arquivo), 'w', encoding="utf8") arqEntidade.write(arquivo.generate()) arqEntidade.close() # Adiciona o arquivo ao init do módulo: init.addDependencias('%s.php' % arquivo) # Cria o arquivo modelo caso exista if (type(arquivo) == type(Entity(""))): if (arquivo.haveModel): arqModel = open( '%s/Module/%s/%s' % (self.diretorio, module, "%sModel.php" % arquivo), 'w', encoding="utf8") arqModel.write(arquivo.generateModel()) arqModel.close() # Adiciona o arquivo ao init do módulo: init.addDependencias('%sModel.php' % arquivo) # Cria o auto create table if (type(arquivo) == type(Entity(""))): init.createTable(arquivo) # Cria um arquivo init para o módulo: arqInit = open('%s/Module/%s/__init__.php' % (self.diretorio, module), 'a', encoding="utf8") arqInit.write(init.generate()) arqInit.close()
from Module.Compiler.Compiler import Compiler from Module.Module import Module from Module.Adapter.Adapter import Adapter from Module.Entity.Atributo import Atributo from Module.Entity.Entity import Entity from Module.Metodo.Metodo import Metodo entCarro = Entity('Carro') entCarro.addAtributos( Atributo('id', Atributo.TYPE_INT, None, True, True, True, False), Atributo('nome', Atributo.TYPE_VARCHAR, 180), Atributo('modelo', Atributo.TYPE_VARCHAR, 100), Atributo('marca', Atributo.TYPE_VARCHAR, 100), Atributo('placa', Atributo.TYPE_VARCHAR, 100), Atributo('cor', Atributo.TYPE_VARCHAR, 100) ) entCarro.createModel( metodos = [ Metodo('buscarPorNomeMarca', ['nome', 'marca'], \ "return $this->buscar(\"nome = '{$nome}'\", \"marca = '{$marca}'\")[0];\ return $this->buscar(\"nome = '{$nome}'\", \"marca = '{$marca}'\")[0];\ return $this->buscar(\"nome = '{$nome}'\", \"marca = '{$marca}'\")[0];\ return $this->buscar(\"nome = '{$nome}'\", \"marca = '{$marca}'\")[0];\ return $this->buscar(\"nome = '{$nome}'\", \"marca = '{$marca}'\")[0];", True) ] ) modCarros = Module('Carros') modCarros.addFiles(entCarro) comp = Compiler('teste_model')