예제 #1
0
# 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
예제 #2
0
    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()
예제 #3
0
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')