og:image

PHP: Criando um catálogo de imóveis com o Phreeze parte I – Backend

Saindo do meu cenário profissional atual que é o desenvolvimento de software utilizando Java, irei demonstrar o uso de um framework PHP para geração automática de CRUDs .

Porque PHP? Vou procurar abordar diversas tecnologias neste site porém, quero que nosso primeiro tutorial seja algo prático e simples que possa servir de exemplo para iniciantes ou experientes no assunto. Além disso, com o uso do Framework, vamos reutilizar os serviços gerados com o mesmo na construção do Backend, Frontend e Mobile.

Qual framework vamos usar? Iremos utilizar o Framework Phreeze que será detalhado neste artigo porém, algumas customizações e melhorias foram realizadas criando assim uma versão modificada do framework oficial. Enviei um e-mail para o Phreeze, explicando a modificação para este tutorial, mesmo o framework possuindo licença que permita tal modificação.

Que aplicação vamos criar? Vamos realizar a construção de um catálogo de imóveis. No caso, este catálogo poderia ser usado para qualquer tipo de produto. Não vamos nos preocupar com as funcionalidades em si. Basicamente o sistema será composto por:

  • Backend: Responsável pela área administrativa da aplicação. O mesmo será responsável pelo cadastramento dos imóveis, categoria dos imóveis e manutenção das informações.
  • Frontend: É a área disponibilizada para os usuários na web, nela serão mostrados os imóveis, detalhamento das informações e possíveis métodos de contato.
  • APP Mobile: Será a aplicação mobile. Iremos permitir que os usuários utilizem a aplicação em seus celulares, conectando a mesma em um serviço disponibilizado na web ou localmente. Permitiremos a busca de imóveis, detalhamento dos imóveis e possíveis métodos de contato.

 

Ferramentas necessárias para realização deste artigo

XAMPP: É um ambiente de PHP que possuí as seguintes ferramentas no pacote: Apache, PHP, MySQL e Perl.

– PHPMyAdmin: É um administrador web do MySQL. O mesmo já vem distribuído com o XAMPP portanto se optar pelo uso do mesmo, você não precisará se preocupar com isso.

MySQL Workbench: Esta ferramenta não é obrigatória, porém acho muito útil para realizar a modelagem do banco de dados.

 

Conhecendo o Phreeze Framework

O Phreeze framework é utilizado para a construção de aplicações PHP. A grande vantagem é a geração dos CRUDs que tem como significado a tradução livre para o português de Criar, Ler, Atualizar e Remover registros no banco de dados ou seja, tarefas básicas para manutenção de um aplicativo serão geradas de forma instantânea pelo framework economizando assim, tempo na construção de uma aplicação.

Phreeze trabalha apenas com o banco de dados MySQL e sua interface gráfica é baseada no framework Bootstrap. O mesmo pode ser utilizado para fins pessoais ou comerciais. O Framework é composto basicamente de três componentes:

  • Arquitetura MVC (Modelo, Visão e Controlador).
  • Técnica ORM (Mapeamento Objeto Relacional) para manipulação do banco de dados através de clases PHP.
  • Phreeze Builder – É a “ferramenta” utilizada para a geração da aplicação de forma automatizada.

 

Detalhando o Phreeze Builder

Basicamente, o Phreeze Builder analisa o banco de dados e gera uma aplicação CRUD para ser utilizada. A aplicação gerada deve ser ajustada posteriormente de acordo com as necessidades de negócio. No nosso caso, vamos realizar pequenas alterações para o entendimento da aplicação gerada pelo framework no próximo tutorial.

Como dito anteriormente, vamos utilizar a versão do Phreeze modificada porém, a versão oficial pode ser aplicada na realização deste tutorial levando em consideração que os itens listados abaixo não estão na versão oficial. Utilizando a versão oficial, podem ocorrer divergências nas figuras demonstradas neste artigo.

  • Autenticação Padrão.
  • Validação de Campos Obrigatórios.
  • Tradução para Português do Brasil

 

Preparando a Infraestrutura necessária

Precisamos primeiramente de um banco de dados devidamente configurado com as tabelas corretamente criadas. Levando em consideração que não conhecemos o perfil dos nossos leitores, vamos realizar o passo a passo de todas as etapas.

1 – Inicie o XAMPP: Abra o XAMPP Control e inicie o servidor Apache e o MySQL. Caso você esteja utilizando o Apache e MySQL instalados manualmente, verifique se o serviço está rodando. No caso da utilização do XAMPP Control, verifique se os serviços estão iniciados e em quais portas os mesmos estão rodando. No nosso caso, o apache está rodando na porta 9999 e o MySQL na 3306 conforme a Figura 1.

xampp-control

Figura 1. XAMPP Control

2 – Vá até ao PHPAdmin para realizar a criação do Banco de Dados do nosso tutorial. Se você utilizou o XAMPP você pode acessar a url: http://localhost:[porta]/phpmyadmin clique em Base de Dados e crie um banco chamado imoveis conforme a Figura 2. Clique em criar.

criacao-banco

Figura 2. Criação do banco de dados com PHPMyAdmin

3 – Pronto! Nosso banco está criado, agora é necessário realizar a criação das tabelas. Para modelagem do banco, utilizei a ferramenta MySQL worckbench descrita anteriormente. Nossos tabelas foram desenhadas de acordo com a visualização da Figura 3 :

diagrama_modelo_dados

Figura 3. Diagrama de Modelo de Dados

Note que foram criadas duas tabelas referentes ao usuário (user) e função (role). Essas tabelas são responsáveis por guardar as informações dos usuários e suas funções, é através das funções que os usuários irão ou não acessar determinados itens da aplicação.

4 – Execute o script abaixo no seu banco de dados, ele irá criar e popular as tabelas utilizadas na autenticação, caso as tabelas não sejam carregadas, não será possível autenticar no sistema. Por conta da autenticação padrão, todas as telas geradas só serão acessíveis por usuários autenticados no sistema. No caso da parte administrativa que permite o acesso nas telas de funções e usuários, o usuário deverá estar autenticado com a função de administrador.

Como a execução de scripts no MySQL Workbench pode ser mais complexa do que a execução no PHPMyAdmin, realizei a execução do nosso script diretamente no PHPMyAdmin.

No PHPMyAdmin, clique no banco de dados imoveis no painel da esquerda, posteriormente clique na aba SQL, cole o script abaixo e clique em executar. Você também, poderia salvar o script com a extensão .sql e importar utilizando a aba importar.


SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; 
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; 
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

CREATE TABLE IF NOT EXISTS `imoveis`.`role` (
  `r_id` INT NOT NULL AUTO_INCREMENT,
  `r_name` VARCHAR(45) NOT NULL,
  `r_can_admin` TINYINT(4) NOT NULL,
  `r_can_edit` TINYINT(4) NOT NULL,
  `r_can_write` TINYINT(4) NOT NULL,
  `r_can_read` TINYINT(4) NOT NULL,
  PRIMARY KEY (`r_id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8 
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `imoveis`.`user` (
  `a_id` INT NOT NULL AUTO_INCREMENT,
  `a_username` VARCHAR(255) NOT NULL,
  `a_password` VARCHAR(255) NOT NULL,
  `a_first_name` VARCHAR(255) NOT NULL,
  `a_last_name` VARCHAR(255) NOT NULL,
  `a_role_id` INT NOT NULL,
  PRIMARY KEY (`a_id`),
  INDEX `fk_user_role_idx` (`a_role_id` ASC),
  CONSTRAINT `fk_user_role`
    FOREIGN KEY (`a_role_id`)
    REFERENCES `imoveis`.`role` (`r_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8 
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `imoveis`.`tipo_imovel` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `descricao` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8 
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `imoveis`.`imovel` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `titulo` VARCHAR(45) NOT NULL,
  `descricao` VARCHAR(255) NOT NULL,
  `data_disponibilidade` DATETIME NOT NULL,
  `imagem` LONGTEXT NULL,
  `valor` DECIMAL(19,2) NOT NULL,
  `email_contato` VARCHAR(255) NOT NULL,
  `telefone_contato` INT NOT NULL,
  `tipo_imovel_id` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_imovel_tipo_imovel1_idx` (`tipo_imovel_id` ASC),
  CONSTRAINT `fk_imovel_tipo_imovel1`
    FOREIGN KEY (`tipo_imovel_id`)
    REFERENCES `imoveis`.`tipo_imovel` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8 
COLLATE = utf8_general_ci;

INSERT INTO `imoveis`.`role` (`r_id`, `r_name`, `r_can_admin`, `r_can_edit`, `r_can_write`, `r_can_read`) VALUES
(1, 'Leitura', 0, 0, 0, 1),
(2, 'Gravação', 0, 0, 1, 1),
(3, 'Edição', 0, 1, 1, 1),
(4, 'Administrador', 1, 1, 1, 1);

INSERT INTO `user` (`a_id`, `a_role_id`, `a_username`, `a_password`, `a_first_name`, `a_last_name`) VALUES
(1, 1, 'user', '!!!$2y$10$dD8mzFLNOawieVTRVuncAOO7UINnpm7wlnBao70FZXOf4Nd9iuTfa', 'User', 'User'),
(2, 4, 'admin', '!!!$2y$10$MOEhiKLYZqd6qH.IPSAFwuaQAHBSmqEnN5sKqxcPZ8fpFU.t5s7eO', 'Admin', 'User');

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Após a execução, note que as tabelas foram criadas com sucesso conforme demonstrado na Figura 4.

tabelas-criadas

Figura 4. Tabelas da aplicação criadas.

Agora temos toda a estrutura criada para receber o Phreeze Builder e posteriormente criar nossa aplicação. Relembrando, temos um servidor Apache rodando com PHP, um banco de dados MySQL rodando com suas tabelas e atributos criados para gerar nossa aplicação.

Gerando a aplicação com Phreeze Builder

Muito bem, chegamos até aqui com nossa infraestrutura criada e devidamente configurada. Agora, mãos à obra! Vamos realizar o download do Phreeze Builder. Para gerar a autenticação padrão para sua aplicação, você deve baixar a versão modificada por nós através do link: Phreeze Versão Carpanese TI ou então, utilizar a versão oficial do framework clicando neste link: Phreeze Versão Oficial.

1 – Com a versão do Phreeze escolhida, descompacte a mesma no diretório de aplicações apontadas no seu apache. Por padrão, a pasta será: [Instalação do XAMMP]/htdocs. Renomeie o diretório descompactado para Phreeze conforme Figura 5.

htdocs-phreeze

Figura 5. Phreeze no servidor

2 – No navegador, acesse a URL do framework http://localhost:[porta]/phreeze/builder conforme imagem abaixo. O resultado será a exibição inicial do Builder visualizada na Figura 6.

phreeze-url

Figura 6. Página inicial do Phreeze Builder

3 – Precisamos inserir os dados de acesso do nosso banco de dados para que o gerador verifique as tabelas e realize a geração da aplicação para nós. Abaixo, a Figura 7 exibe o formulário preenchido com os dados padrão da instalação do XAMPP. Preencha os campos e clique em Analisar Banco de Dados.

phreeze-passo1

Figura 7. Phreeze Builder: Informações do banco de dados

4 – O Phreeze analisou nosso banco de dados e trouxe para nós o resultado desta verificação. O resultado apresentado será o exibido na Figura 8:

phreeze-passo2

Figura 8. Resultado da análise do banco de dados.

Esta tela refere-se a utilização da versão modificada do Phreeze, o resultado com a versão oficial seria mais simples e menos detalhada. Na versão alterada, inserimos a descrição dos passos para facilitar o entendimento dos usuários do framework. Vamos entender cada um dos passos:

Passo 1 – Autenticação Padrão: Este passo deve ser seguido, caso você já tenha um banco de dados rodando. Como no nosso exemplo o script fornecido já contempla a autenticação, não será necessário executar este passo no nosso tutorial.

Passo 2 – Selecione as Tabelas: Neste passo, vamos selecionar as tabelas para geração da aplicação. Este passo é útil caso você já tenha um banco de dados criado e gostaria que o gerador só crie a aplicação para determinadas tabelas ou então, você pode ter evoluído o banco de dados e necessita gerar os CRUDs apenas para aquelas tabelas que foram inseridas no banco de dados ou então, sofreram evolução.

Note que no nosso caso as tabelas role e user, são desabilitadas por padrão. Isto ocorre pois os modelos, interfaces e controle já são gerados por padrão na aplicação independentemente de selecionar ou não esta opção. O sistema permite a alteração de nomes como por exemplo o nome no singular do TipoImovel, o mesmo pode ser modificado desde que respeite as regras de acentuação e espaços ou seja, você poderia mudar o nome para Tipo mas jamais para Tipo de Imóvel pois isso impactaria diretamente na geração dos CRUDs interferindo assim no seu perfeito funcionamento.

Passo 3 – Opções da Aplicação: Neste passo, você deve selecionar as opções para a geração da aplicação. Vamos detalhar cada uma delas:

  • Geração do Pacote: Você define aqui, o que você deseja que seja gerado. Até o final deste artigo, iríamos utilizar a opção Default porém, verifiquei que o site do Savant Template Engine não está mais ativo. Restando duas opções, vamos utilizar o Blade visto que pelo estudo realizado, a terceira opção que é o Smarty, gera uma pequena perda de performance na aplicação. Nada impede que você realize os testes com todos os templates, estudando cada um e verificando qual você se adapta melhor.Note também, que há opções de geração para a camada de modelo apenas, que é útil caso você evolua as tabelas do banco de dados.
  • Nome da Aplicação: Pode manter o padrão mas caso queira, você pode alterar. Este nome será utilizado como link do menu para página principal.
  • Contexto de URL da Aplicação: É o contexto que sua aplicação vai ficar no servidor. Você pode modificar desde que seja respeitado letras minúsculas e que a palavra não contenha espaços e acentuação.
  • Caminho do /Phreeze/libs: É o caminho do framework no servidor. Você pode manter este caminho padrão. Note que para sua aplicação funcionar, as libs do Phreeze devem estar contidas no servidor.
  • Embutir Framework: Está opção inclui o arquivo .phar do framework na aplicação. Até o fechamento deste artigo, está opção não estava funcionando totalmente portanto, recomendo o uso da opção padrão Não. Irei verificar o problema, corrigir e gerar uma nota neste post posteriormente. Lembre-se de sempre acompanhar o repositório oficial do nosso site e também o repositório oficial do framework.
  • Long Polling: Deixe esta opção desativada. Todas as opções inseridas aqui, podem ser modificadas posteriormente.

 

As configurações do passo 3 devem estar conforme a Figura 9 :

phreeze-passo3

Figura 9. Opções da geração da aplicação no Phreeze Builder

5 – Clique em Gerar Aplicação: Um zip com a aplicação foi automaticamente gerada. Descompacte a mesma no seu diretórios de aplicativos do apache, o mesmo que possuí o Phreeze (htdocs).

Pronto! Você gerou sua primeira aplicação com o Phreeze. Fácil não?

Acesse a sua aplicação pelo browser pela URL: http://localhost:[porta]/imoveis o resultado deverá ser exibido conforme Figura 10.

aplicacao-gerada

Figura 10. Aplicação gerada rodando.

Note que a página inicial exibe uma série de informações sobre os frameworks e tecnologias utilizadas na geração da aplicação. Faça a leitura e busque entender o máximo sobre a arquitetura do aplicativo.

Conforme dito, se você utilizou a versão modificada do framework, ao clicar em um link no menu você pode verificar que a autenticação é requerida. Neste caso, você pode se logar com dois usuários que são usuário: user e senha: pass ou então se logar como administrador com usuário: admin senha pass.

A versão da aplicação gerada neste tutorial encontra-se disponível no github. Para baixar o zip com a Tag específica desta versão Clique Aqui.

No próximo tutorial, vamos montar um ambiente de trabalho utilizando uma IDE para desenvolvimento, entender como funciona o permissionamento da aplicação em relação a autenticação e detalhar as tecnologias utilizadas pelo framework e assim, daremos continuidade no nosso tutorial para Frontend e Aplicação Mobile.

Espero que este tutorial tenha sido útil e esclarecedor, em caso de dúvidas você pode utilizar o campo de comentários, pois o mesmo será respondido o quanto antes. Não deixe de curtir nossa página clicando no botão curtir no menu lateral da página.

Em caso de sugestões ou reclamações, utilize o formulário de contato deste site. Até breve.

Tiago Carpanese
Tiago Carpanese
Criador deste site, apaixonado por tecnologia, busco contribuir para a segregação do conhecimento. Não deixe de curtir este site no Facebook clicando em Curtir na Barra da Direita. Siga-me no Twitter para ficar por dentro das novidades. Não deixe de comentar !
  • Helder Pontes

    Amigo Tiago, Em localhost a aplicação funcionou perfeito. O que é necessário (o que devo alterar) para disponibilizar a aplicação em um servidor para acesso WEB. Coloquei em um servidor, porém, Só abre a tela de apresentação, quando tento acessar os formulários não abre.

    Att,

    Helder

    • Tiago Carpanese

      Helder, você deve disponibilizar no mesmo diretório do seu aplicativo, o phreeze. Por exemplo, se você colocou o aplicativo na pasta public_html do servidor, você deve copiar a pasta phreeze para lá também. Outro ponto a ser observado, é que as configurações do banco de dados devem ser informadas no arquivo machine_config.php. Espero ter ajudado.

  • Fabricio Ribeiro

    Como resolvo este erro?

    • Tiago Carpanese

      Amigo, tem que ver como está seu relacionamento. Deveria aparecer uma combo para selecionar. Você já cadastrou um histórico e um cliente?

      • Fabricio Ribeiro

        Já sim, inclusive se eu utilizar o php generator for mysql gera certo. Porém o phreeze não da certo. Até tentei ver na estrutura mas não entendi bem.

    • Paulo Victor Marques Viana

      Também estou tendo esse problema…Como resolveu?

      • http://www.ticarpa.com.br Tiago Carpanese

        Olá.

        Na parte embutir framework, está mantendo a opção não?

        Após gerar, é necessário mover o framework para mesma pasta onde está o seu aplicativo.

        Ex: pasta htdocs deve ter o app imoveis e o phreeze.

        Erro 500 é algo que não saiu como esperado no servidor. Já tentou usar o console do Chrome “firebug” para ver o problema?

        Aguardo para ajudar.

      • juniorgeba

        Também estou com o mesmo problema.

  • Gustavo Cristofori

    Estou usando o Wamp server, pelo que entendi é só copiar a pasta do phreeze em www se for isso fiz certo mais da erro 500 ao abrir phreeze/builder

    • Tiago Carpanese

      Isso, basta copiar a pasta phreeze em www e chamar http://localhost/phreeze/builder/ ou colocando a porta. Qual a versão do PHP?

      • Benevalter Bento Jr

        Olá Tiago, estou com o mesmo problema do erro 500 ao tentar abri o builder. Estou usando wamp com php 5.6. O que posso fazer pra resolver?

  • Yuri Morais

    Como faço para alterar o layout ? mudar o template as cores e etc?

  • Yuri Morais

    Tiago, Como faço para alterar o layout ? mudar o template as cores e etc?

    • Tiago Carpanese

      Olá. No caso, é gerada uma pasta bootstrap com o css dentro. Veja aqui http://getbootstrap.com/getting-started/ que possuí os css e temas para o bootstrap. Basta trocar. Os css estão mimificados (Aumentam a performance do site) por isso fica mais complexo de alterar.

  • hpabrasil

    Ola amigo muito bom estou com dificuldades para achar o api rest ful
    pois voce nao demonstrou ela conforme citou “. Este artigo irá tratar
    exatamente o Frontend visando que nossa api
    Restful já está disponível em nosso Backend conforme o artigo Criando um Catálogo de Imóveis com o Phreeze – Backend ”

    por favor me indique o link de download da API RESTFUL so me falta ela . aguardo e obrigado

  • hpabrasil

    Mais especificamento onde encontro essa api? http://www.ticarpa.com.br/demo/imoveis/API/imovels

  • Valter Ferreira Martins

    Olá, boa tarde.

    Consegui ir até a parte da geração da aplicação, mas ao clicar no link de qualquer página nada aparece e me acusa o Erro no servidor 500.

    Como resolvo isso?

    • http://www.ticarpa.com.br Tiago Carpanese

      Olá.

      Na parte embutir framework, está mantendo a opção não?

      Após gerar, é necessário mover o framework para mesma pasta onde está o seu aplicativo.

      Ex: pasta htdocs deve ter o app imoveis e o phreeze.

      Erro 500 é algo que não saiu como esperado no servidor. Já tentou usar o console do Chrome “firebug” para ver o problema?

      Aguardo para ajudar.

    • Tiago Carpanese

      Olá.

      Na parte embutir framework, está mantendo a opção não?

      Após gerar, é necessário mover o framework para mesma pasta onde está o seu aplicativo.

      Ex: pasta htdocs deve ter o app imoveis e o phreeze.

      Erro 500 é algo que não saiu como esperado no servidor. Já tentou usar o console do Chrome “firebug” para ver o problema?

      Aguardo para ajudar.

  • Blanvi

    Olá Thiago, o meu deu um errodo tipo

    Warning: require_once(verysimple/Phreeze/Phreezable.php): failed to open stream: No such file or directory in /home/u211750636/public_html/libs/Model/DAO/UserDAO.php on line 5

    Fatal error: require_once(): Failed opening required
    ‘verysimple/Phreeze/Phreezable.php’
    (include_path=’/home/u211750636/public_html/libs/:/home/u211750636/public_html/../phreeze/libs:/home/u211750636/public_html/vendor/phreeze/phreeze/libs/:.:/opt/php-5.5/pear’)
    in /home/u211750636/public_html/libs/Model/DAO/UserDAO.php on line 5

    pode ajudar?

    • Tiago Carpanese

      Você colocou a pasta phreeze no mesmo diretório que o seu aplicativo?

      Ele não encontrou o phreezelibsverysimplePhreezePhreezable.php

      A pasta do seu app e do phreeze deve estar conforme a imagem abaixo no seu servidor.

  • Paulo Salvador

    Alguém conseguiu fazer um mestre-detalhe com o phreeze?

  • http://www.rangelweb.net46.net Rangel Prado

    Boa tarde!

    Estou tentando, mas me aparece esse erro!!!

    The requested URL /phreeze/builder/analyze was not found on this server.

    Tenho que fazer outra alteração?

    Obrigado

    • http://www.rangelweb.net46.net Rangel Prado

      Bom, eu pesquisei e descobri que tem que ativar modo de escrita!!

      Pra quem tiver o mesmo problema, fica a dica.

      Valeu.

      • Hugo Fernandes

        Ativei o modo Rewrite do apache o não consigo executar o phreeze.

  • Felipe Assunção

    Boa tarde, tentei mas obtive um erro. Alguem sabe como resolver ?

    getdate() [function.getdate]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘America/Sao_Paulo’ for ‘-3.0/no DST’ instead in zip.lib.php at line 69

    • http://micillo.xyz Vitor Micillo Junior

      Isso é simples de resolver, abre o arquivo zip.lib.php e na linha 69 coloca essa linha antes:
      date_default_timezone_set(‘America/Sao_Paulo’);

      Abraço

      • Felipe Assunção

        Obrigaado Cara. Consegui criar a aplicação. Consigo abri-la no navegador, mas no momento que clico nos links de imoveis/tipoImoveis aparece essa msg:
        Fatal error: Can’t inherit abstract function IDaoMap2::GetFieldMaps() (previously declared abstract in IDaoMap) in C:xampphtdocsimoveislibsModelDAOImovelMap.php on line 23

        • http://micillo.xyz Vitor Micillo Junior

          Parece que ele não esta conseguindo herdar a função, isso as vezes ocorre quando esquecemos por exemplo de dar um extend em uma classe, pode ser que ele não esta encontrando porque a pasta do phreeze não esta junto, tenta recriar o projeto so que incluindo as libs junto do projeto

        • Tiago Carpanese

          Felipe, você deve ter gerado com o zip como dependência, veja que a opção embutir framework deve estar como não. Teste assim colocando a pasta do phreeze no mesmo diretório da sua app.

        • Felipe Assunção

          Gerei sem embutir o framework, e agt tentei embutindo ele. mas nos dois jeitos apareceu esse erro no momento em que clico nos links. :
          obs: instalei o xampp, deixei a pasta do phreeze no htdocs, e o .zip gerado pelo builder extrai numa pasta chamada imoveis, tambem dentro do htdocs.

  • Wesley Teixeira

    Bacana as alterações que você fez no phreeze, mais observei uma coisa, quando logo como demo, mesmo com somente a opção de visualizar habilitado, ele consegue deletar e criar novos registros, você já percebeu isso?

    • Tiago Carpanese

      Na verdade está habilitado para tipo de imóvel pois não coloquei permissão no mesmo. Para imóveis, é necessário logar para adicionar ou remover.

      • juniorgeba

        Boa tarde Tiago, quando eu logo como user ele permite que eu tanto adicione, quando edite e delete quando este usuário está para somente leitura, como resolver isso????

  • Charles Berta

    mudei no imovellistview.blade.php para mostra todos os campos principalmente o tipoImovelId mas na tabela esta mostrado o código do tipoImovelId e não a descrição como devo fazer pra trocar o codigo pela descrição

  • Lucas Oliveira

    #1062 – Duplicate entry ‘1’ for key ‘PRIMARY’ quando vou inserir o codigo no phpmyadmin da esse erro

    • Tiago Carpanese

      Está dando o ero pois já existe um registro com Id 1. O que está executando especificamente?

  • Adolfo Neto

    Olá Tiago… Mto bom o seu tutorial

    Após me logar com usuário Admin, ir ao menu Admin Usuários (admin ou funções), está apresentando o seguinte erro.

    file_get_contents(C:xampphtdocsimoveis/views/userlistview.blade.php): failed to open stream: No such file or directory in blade.php at line 113

    Como faço para resolver?

    • Tiago Carpanese

      O que tem na linha 113 do blade.php? Não está conseguindo achar o que está declarado nesta linha.

  • Jr Girotto
  • J. Ferreira da Silva

    Oi gostaria se possível de ver algum exemplo no prheeze com o login antes da pagina inicial pois não to conseguindo.
    Desde já agradeço!

  • Milton Pinto Junior

    Clico em Inicie Agora e abre outra janela Vamos Lá… e volta para Inicie Agora.

    • Tiago Carpanese

      O incie agora é apenas uma URL amigo. Se apareceu está tudo ok.

  • Hebert Almeida

    Boa noite! Tiago quando eu mudo o nome do banco de dados o phreeze cria a aplicação porém os links para as páginas de cadastro quando clico dão página não encontrada, agora se eu coloco o nome do banco de dados como imoveis não tenho erros. Existe alguma alteração no phreeze que você customizou que gere isso? Obrigado!

    • Tiago Carpanese

      Provavelmente você executou o script SQL de segurança e manteve o nome imoveis nele, tente executar com o nome do seu banco.

      • Hebert Almeida

        Cara muito obrigado! funcionou aqui, porém quando fiz um teste com o sistema que o phreeze gerou num domínio ele apresenta erros de autenticação quando estou no 4G já no wifi não acontece erro nenhum. Você já viu isto antes? Obrigado!

  • Computação Ifto

    Olá Tiago! tudo bem? Estou Usando PHP 7, porém na hora de gerar a aplicação com a versão modificada está gerando um warning, de tag depreciada, com isso não gera a aplicação. tem como resolver? e postar novamente.

  • Hebert Almeida

    Pessoal consegui sanar as os erros da minha aplicação teste, porém quando fiz um teste subindo a aplicação em um servidor da locaweb estou recebendo o erro “An unknown error occured” somente quando eu edito um registro quando eu adiciono um registro não recebo o erro. No meu localhost a aplicação funciona perfeitamente, alguém já passou por este problema.

    Obrigado!