A melhor parceira de TI para o seu negócio English version

php, framework, mvc, pdo, active record, front controller, ide, rad, web, multiplataforma, geração de código, desenvolvimento rápido, relatórios, formulários, listagens, datagrids, gráficos, banco de dados, análise, projeto, orientação a objetos, padrões de projeto, design patterns, delphi, delphi for php O livro aborda o Adianti Framework, que é um framework de código aberto, orientado a objetos, implementado em PHP 5 pela Adianti Solutions. Adianti Framework é um framework baseado em componentes e orientado à eventos que utiliza padrões de projeto popularmente conhecidos como o MVC (Model View Controller), Front Controller e padrões de projeto para ORM (Mapeamento Objeto Relacional) como Active Record e Repository. Home Características Cases Livro Curso Downloads Docs Apps Fórum

Adianti Framework para PHP - edição impressa
Adianti Framework para PHP é uma arquitetura open-source baseada em padrões de projeto, voltada para a criação ágil de aplicações de negócio em PHP. Busca reduzir os custos de desenvolvimento por oferecer componentes de alto nível para criação de formulários, datagrids, relatórios e outros.
ISBN: 978-85-914354-6-3. Páginas: 320. Autor: Pablo Dall'Oglio. Editora: Adianti. Ano 2016 (7ed).

  • Introdução, arquitetura e estrutura;
  • Banco de dados, modelos, e persistência;
  • Componentes de apresentação, templates;
  • Organização e controle, uso de templates;
  • Estudos de caso (biblioteca, controle de chamados);
  • Criando sistemas com templates.
Ver amostra Ver sumário

Como adquirir!

  • Preço do livro: R$ 64,00;
  • Pague com ;
  • Entrega por PAC para todo o Brasil;
  • Frete fixo para todo o Brasil.
Como comprar...

Kit do desenvolvedor:

Todo o material que você precisa para aprender e desenvolver em um único kit. Pague 2 leve 3:

  • Livro Adianti Framework (enviado gratuitamente no Kit);
  • Curso em Video Aulas;
  • IDE Adianti Studio Pro;
Ir para a loja...

Outros livros do mesmo autor

Conheça a resenha

O livro Adianti Framework: Framework para PHP é uma obra completa sobre o Adianti Framework escrita pelo criador do framework (Pablo Dall'Oglio) e que aborda todos os aspectos relacionados ao framework (instalação, configuração, persistência, apresentação, controle e automação).

O capítulo 1 explica as características gerais do framework, sua arquitetura, estrutura de diretórios, e como se dá o fluxo de execução de uma aplicação.

O capítulo 2 explica como se dá a instalação dos pré-requisitos do framework (ambiente), bem como o próprio o framework, nos sistemas operacionais windows e linux. Neste capítuo, é explicado a criação de uma página de entrada para a aplicação nos ambientes web e desktop; a criação de templates para apresentação web e desktop; e a criação de um controlador de página simples.

O capítulo 3 aborda a criação de classes Active Record para manipulação de modelos. Para tal, será apresentado um modelo orientado a objetos, bem como seu correspondente modelo relacional. Será visto como configurar o acesso ao banco de dados e como executar os exemplos. Após, serão abordadas diversas operações comuns que podem ser realizadas via objetos como: criação, carregamento e exclusão de registros; leitura, contagem, alteração e exclusão de coleções; lazy load; registro de logs; encapsulamento; critérios de seleção de registros. Ao fim, será apresentado como o framework manipula relacionamentos da orientação a objetos (associação, agregação, composição) por meio dos objetos Active Record.

O capítulo 4 aborda componentes de apresentação. Assim, será visto desde a criação de um controlador de páginas simples, definição de ações do usuário, criação de containers (tabela, painel, notebook, scroll, frame), diálogos (informação, erro, questão), formulários de entrada de dados, componentes de entrada de dados, validações em formulários, componentes avançados (seleções, busca de registros, campo repetitivo, árvore, edição de HTML, listas de ordenação), criação de páginas passo a passo (wizards), datagrids, ações em datagrids, criação de relatórios, e integrações com jQuery.

O capítulo 5 abordará a integração dos componentes de apresentação com o banco de dados. Assim, será visto como criar formulários e datagrids alimentando e lendo registros da base de dados por meio de padrões como o Active Record e Repository. Neste capítulo será apresentado como utilizar controladores padrão oferecidos pelo framework, que aceleram a criação de formulários e listagens, e também como criar controladores manuais de páginas, quando desejamos ter maior controle sobre as operações realizadas, bem como interceptar as operações realizadas. Neste capítulo serão criados formulários e datagrids para cadastro e manipulação de registros de clientes, contendo aspectos mais complexos.

O capítulo 6 apresentará alguns estudos de caso: a aplicação library, um sistema para gestão de bibliotecas; changeman, um sistema para gestão de mudanças (chamados, tickets). Para essas aplicações, será apresentado a sua documentação (diagrama de classes, modelo relacional, diagrama de casos), bem como alguns aspectos específicos dessa aplicação como: criação de controlador de login, permissões por perfil de usuários, utilização de diferentes templates, definição da página de entrada do sistema, criando um controlador de login, controle de permissões separado por páginas, internacionalização e envio de e-mails.

O capítulo 7 apresentará a criação de sistemas por meio de templates. O Adianti framework possui templates de criação de sistemas que oferecem funcionalidades prontas como: controle de login, controle de permissões de acesso, montagem dinâmica de menus, cadastro de usuários, cadastro de programas, cadastro de grupos, cadastro de permissões de acesso, logs de acesso, logs de alteração de registros, e logs de SQL. Este capítulo explicará como o template foi criado e ensinará a criar aplicações baseadas em templates.

Conheça alguns depoimentos

(enviados por e-mail ou pesquisa de opinião com compradores do livro)

"A propósito, estou gostando bastante do framework, é simples o suficiente pra se acostumar em 2 ou 3 dias de coding e é extremamente completo e clean.
Gostei da estrutrura que deixa o código elegante e é facilmente expansível pra qualquer necessidade.
Bom, como sou um cara 110% backend (já tentei me aventurar em frontend e não gostei nada nada !) caiu como uma luva aqui !
Abraço,"

Rafael Lupo


"Estou gostando muito do Framework, livro e IDE que você desenvolveu. Atualmente eu sou Consutor SAP/ABAP, mas sempre que pinta um freela eu não me contenho e pego o serviço, essa ferramenta ira facilitar bem minha vida, inclusive eu estava lutando para aprender o EXTJS para fazer um projeto, mas devido ao tempo não consegui aprender adequadamente e mudei para o seu Framework e em duas semanas adiantei muito o projeto e agora com o Studio pro eu acho que vou voar auhauhauhauh."

Wendel Pereira Paiva


"Gostei do livro, muito interessante, aliás comprei todos, eu tenho pouca experiencia em programação e orientado a objetos, muito recente, você já pensou na possibilidade de criar alguns videos para completar o aprendizado? Um abraço."

Anônimo


"O conteúdo do livro está muito bem detalhado e como exemplos práticos. Acho que esse tipo de abordagem muito produtiva. E a constituição do framework com o uso dos componentes e padrões de projeto está facilitando e muito o desenvolvimento. Sem duvida nenhuma, é uma das minhas primeiras opções na programação de sistemas em PHP5."

Anônimo


"O livro abrange bem as questões do framework e achei que todas as questões propostas foram bem explicadas. Só fico triste porque comprei o livro de 1ª edição e agora não tenho acesso às explicações escritas da atualização do framework que saiu na 2ª edição. Faz um plano especial aí Pablo."

Eliezer de Morais Silva


"Excelente livro. Indico a todas as pessoa que queiram ingressar na área de PHP e conhecer um bom framework, independente de nível (básico ou avançado). O Livro aborda o conceito de orientação a objetos de forma bastante clara. Eu já havia lido vários outros livros sobre POO, mas fiquei surpreso com a didática do Pablo. Excelente. Indico a todos."

Anônimo


"O livro trás uma abordagem panorâmica do framework. É uma leitura empolgante que trás novas descobertas e abre novos horizontes a cada novo capitulo, sem dúvida ao termino do livro obtive um renascimento profissional pois não só havia entendido como trabalhar com o framework. Eu abri completamente minha 'cabeça' no que diz respeito a organização de um projeto de Software."

Anônimo


"Forma junto com o Adianti framework e com o Adianti Studio Professional um trio poderosíssimo! O framework agiliza o desenvolvimento das aplicações, o Studio entra como uma ferramenta facilitadora do trabalho e o livro torna o aprendizado muito rápido. Tudo por um custo bem acessível. Simplesmente perfeito."

Fernando Augusto Pereira da Fonseca


"Ótimo contexto, possuindo uma didática exemplar, abrangendo não somente o framework, mas também padrões de projeto e exemplos de utilização do nosso dia-a-dia."

Anônimo


"Livro muito prático. Vai direto aos tópicos mais importantes para você começar imediatamente uma aplicação utilizando o framework."

Alan Morato


"Estou me adaptando muito bem ao Adianti Framework e gostei muito do kit de desenvolvimento. Há tempos eu estava tentando uma alternativa para migrar meus sistemas para web, mas o adianti é uma mão na roda. Vou indicar aos meus colegas. Eu estou saindo do Delphi e vejo muita semelhança, programo em delphi faz apenas 6 anos, é uma ferramenta excelente, mas o PHP e com o Adianti framework, a produtividade aumenta significativamente. Talvez eu apanhe um pouco para as soluções de nf-e e cupom fiscal, mas nada que um esforço e dedicação nao resolva. Enfim, vc fez um trabalho excelente, um framework php voltado à aplicações de gestão."

Danilo Emanuel


Conheça o histórico de edições

  • Um novo exemplo foi construído para demonstrar o uso de Prepared Statements com a PDO;
  • Um novo exemplo foi construído para demonstrar o carregamento de objetos com o novo operador find();
  • Um novo exemplo foi construído para demonstrar a alteração de objetos com o novo operador find();
  • Um novo exemplo foi construído para demonstrar o novo método de registro de logs TTransaction::setLoggerFunction();
  • Um novo exemplo foi construído para demonstrar o novo método de conversão de dados TRecord::toJson();
  • Um novo exemplo foi construído para demonstrar o novo conceito de Hook Methods em Active Record: onBeforeLoad(), onAfterLoad(), onBeforeStore() onAfterStore(), onBeforeDelete(), e onAfterDelete();
  • Um novo exemplo foi construído para demonstrar o novo método de contagem de objetos: User::where('age', '>', 18)->count();
  • Um novo exemplo foi construído para demonstrar o novo método de carregamento de coleções: Product::where('name', 'LIKE', '%computer%')->load();
  • Um novo exemplo foi construído para demonstrar o novo método de carregamento paginado: Product::where('name', 'LIKE', '%computer%')->take(3)->skip(3)->orderBy('price', 'asc')->load();
  • Um novo exemplo foi construído para demonstrar o novo método estático de exclusão de coleções: User::where('age', '>', 100)->delete();
  • Um novo exemplo foi construído para demonstrar a exibição de notebooks no formato Bootstrap;
  • Um novo exemplo foi construído para demonstrar a postagem estática (sem recarga) de formulários;
  • Um novo exemplo foi construído para demonstrar a exibição de formulários no formato Bootstrap;
  • Um novo exemplo foi construído para demonstrar os novos formatos de máscara de input;
  • Um novo exemplo foi construído para demonstrar a abertura de janelas em qualquer ponto do processo;
  • Um novo exemplo foi construído para demonstrar Datagrids no formato Bootstrap;
  • Um novo exemplo foi construído para demonstrar Datagrids com imagens de produtos;
  • Um novo exemplo foi construído para demonstrar Datagrids com barras de progresso;
  • Um novo exemplo foi construído para demonstrar a construção de telas para edição em lote de produtos;
  • Um novo exemplo foi construído para demonstrar a construção de telas com exclusão em lote de registros;
  • Um novo exemplo foi construído para demonstrar a construção de telas para seleção de múltiplos registros;
  • Uma nova seção foi construída para demonstrar o registro de logs de acesso;
  • Uma nova seção foi construída para demonstrar o registro de logs alteração de registros;
  • Uma nova seção foi construída para demonstrar o registro de logs de SQL;
  • Uma nova seção foi construída para demonstrar as novas telas de consulta de logs;
  • Novas explicações foram adicionadas para explicar como criar um programa usando o Template;
  • Novas explicações foram adicionadas para explicar como criar um novo Template;
  • O antigo capítulo 7 (Criando aplicações com o Studio Pro) foi transformado em PDF e agora será distribuído para quem adquirir o livro, por isso o livro diminuiu o número de páginas, porém possui mais conteúdo.
  • Em homenagem ao PHP, que pulou a 6a versão, pularemos a sexta edição do livro;
  • No capítulo 1, a explicação sobre a estrutura de diretórios foi atualizada conforme a nova versão;
  • No capítulo 2, a explicação sobre o index.php foi atualizada conforme a nova versão;
  • No capítulo 2, foi acrescentada uma explicação detalhada sobre a estrutura do novo libraries.html, que carrega as bibliotecas necessárias para o funcionamento do framework;
  • No capítulo 2, foi acrescentada uma explicação sobre o init.php, novo arquivo de inicialização do framework a partir da versão 2.0;
  • No capítulo 3, foi acrescentada explicação sobre como ligar Prepared Statements nas operações envolvendo banco de dados na nova versão;
  • No capítulo 3, um novo exemplo foi criado para demonstrar como obter informações de uma transação ativa com o banco de dados;
  • No capítulo 3, o exemplo sobre critérios (TCriteria) foi atualizado para explicar a utilização de BETWEEN, de funções de banco de dados, e também de subselects;
  • No capítulo 4, foi criado um exemplo para demontrar a criação de diálogos de input por meio do novo componente TInputDialog;
  • No capítulo 4, foi criado um exemplo para demonstrar a utilização de ícones vetoriais (Glyphicons da bootstrap e Font Awesome) e também de diferentes estilos CSS em botões;
  • No capítulo 4, foi criado um exemplo que demonstra a criação de agrupamento de ações em datagrids por meio de menus popups;
  • No capítulo 4, foi criado um exemplo que demonstra a criação de ações condicionais em datagrids, ou seja, ações que são exibidas mediante determinadas condições lógicas;
  • No capítulo 4, foi criado um exemplo que demonstra a habilitação de popover sobre linhas de datagrids;
  • No capítulo 4, o exemplo sobre geração de relatórios foi atualizado para funcionar em servidores Windows (paths);
  • No capítulo 4, a tabela de componentes foi atualizada para apresentar os novos componentes;
  • No capítulo 4, o exemplo sobre formulários rápidos (quick forms) foi atualizado para apresentar o novo componente TColor, e também a possibilidade de acrescentar mais de um campo por linha em um quick form;
  • No capítulo 4, o exemplo sobre formulários customizados foi simplificado (removido autocomplete, que foi transferido para outro exemplo);
  • No campítulo 4, o exemplo FormStaticSelectionView foi atualizado para apresentar o novo componente TMultiSearch;
  • No campítulo 4, o exemplo FormDBManualSelectionView foi atualizado para apresentar o novo componente TMultiSearch alimentado a partir do banco de dados manualmente;
  • No campítulo 4, o exemplo FormDBAutoSelectionView foi atualizado para apresentar os novos componente TDBMultiSearch e TDBEntry;
  • No capítulo 4, o exemplo sobre formulários decorados foi melhorado nos aspectos visuais;
  • No capítulo 4, foi removido o notebook dos exemplos FormValidationView, FormEnableDisableView, e FormSeekButtonView;
  • No capítulo 4, o exemplo sobre datagrids rápidas foi atualizado para comportar a explicação do método TDataGrid::enablePopover(), que habilita um popover genérico sobre uma datagrid;
  • No capítulo 4, os exemplos DatagridCheckView e DatagridInputView foram atualizados para usar TForm::addField(), no lugar de TForm::setFields();
  • No capítulo 4, o exemplo sobre interações dinâmicas foi atualizado para demonstrar a possibilidade de usar dialogs nas ações de saída de campo;
  • No capítulo 5, o exemplo StandardDataGridView agora usa TQuickForm;
  • No capítulo 5, o exemplo CompleteDataGridView agora usa TQuickForm;
  • No capítulo 5, foi criado um exemplo sobre formulário de produtos, que demonstra a criação de um formulário de produtos usando TStandardForm, com uploade de imagens;
  • No capítulo 5, foi criado ProductList, que demonstra a criação de uma datagrid de produtos utilizando a classe TStandardList, com vários campos de filtro;
  • No capítulo 5, foi criado um exemplo que demonstra a renderização de HTML para visualizar dados do banco de dados sobre a situação de um cliente;
  • No capítulo 6, as explicações sobre o mecanismo de login do Library foram atualizadas, conforme as mudanças da nova versão;
  • No capítulo 6, uma nova seção foi incluída para explicar sobre o Template ERP II (template bootstrap 3 com características responsivas);
  • O guia de referência rápida ao final foi removido para dar espaço aos novos exemplos, uma vez que o mesmo está disponível em PDF no site.
  • Foi acrescenada uma nova seção completa ao livro, com várias páginas explicando o funcionamento da nova ferramenta de desenho de relatórios dinâmicos: Adianti PDF Designer;
  • Foi acrescenada uma nova seção completa ao livro, com várias páginas explicando como criar uma aplicação com controle completo de permissões por usuários e por grupos, baseado no Template ERP;
  • O guia de referência ao fim do livro foi atualizado com os métodos desta nova versão;
  • Uma explicação sobre formulários do tipo Mestre/Detalhe doi adicionada;
  • Vários formulários tiveram a aparência melhorada por utilizarem os novos estilos CSS: tform, tformtitle e tformaction;
  • Um novo exemplo foi criado para demonstrar a busca do primeiro e último IDs de objetos de uma classe (TRecord::getFirstID() e TRecord::getLastID());
  • Um novo exemplo foi criado para demonstrar como transformar um Active Record em array e vice-versa (TRecord::toArray() e fromArray()).
  • Foi acrescentada uma explicação sobre o método TRecord::addAttribute();
  • Um novo exemplo foi criado para demonstrar a utilização dos novos métodos de persistência para composições loadComposite(), saveComposite(), e deleteComposite().
  • Um novo exemplo foi criado para demonstrar a utilização dos novos métodos de persistência para agregações loadAggregate(), e saveAggregate().
  • Um novo exemplo foi criado para demonstrar a utilização de caixas horizontais.
  • Um novo exemplo foi criado para demonstrar a criação de tabelas com múltiplas colunas.
  • Um novo exemplo foi criado para demonstrar a criação de tabelas com células mescladas.
  • Um novo exemplo foi criado para demonstrar como habilitar/desabilitar e limpar campos de um formulário em tempo de execução (sem recarga).
  • Um novo exemplo foi criado para demonstrar como criar campos de entrada de dados em datagrids.
  • Um novo exemplo foi criado para demonstrar o novo componente TSortList, que permite definir a ordenação de valores.
  • Um novo exemplo foi criado para demonstrar um formulário passo a passo estático.
  • Um novo exemplo foi criado para demonstrar uma tela passo a passo com postagem entre diferentes formulários.
  • Um novo exemplo foi criado para demonstrar a criação de documentos PDF criados pela nova ferramenta Studio PDF Designer. Este exemplo contém formas (retângulos, elipses), e substituição de textos;
  • Um novo exemplo foi criado para demonstrar a criação de documentos PDF criados pela nova ferramenta Studio PDF Designer. Este exemplo demonstra a criação de um relatório tabular;
  • Um novo exemplo foi criado para demonstrar a criação de documentos PDF criados pela nova ferramenta Studio PDF Designer. Este exemplo demonstra a criação de uma Nota Fiscal Eletrônica;
  • Os exemplos sobre campos de seleção (estática, automática) foram atualizados para demonstrar o funcionamento dos novos componentes TSelect e TDBSelect;
  • O exemplo sobre datagrid de clientes foi alterado para refletir o novo recurso, que permite buscar informações de objetos relacionados diretamente em uma coluna de datagrid (Ex: "city->name")
  • O exemplo sobre botão de busca de registros (seekbutton) foi alterado para demonstrar a utilização do novo componente TDBSeekButton;
  • O exemplo sobre multifield foi atualizado para demonstrar a utilização de campos obrigatórios;
  • O exemplo sobre listagens padrão foi alterado para utilizar uma ordenação padrão (parent::setDefaultOrder('id', 'asc'));
  • O exemplo sobre transformações de colunas (column transformers) de datagrid foi alterado para trocar também a cor do fundo da linha.
  • No exemplo sobre associação, os métodos estavam setCategory() e getCategory(), quando na verdade é set_category() e get_category();
  • A explicação sobre os arquivos index.web.php, index.gtk.php e facade.js foi atualizada para refletir as mudanças da nova versão do framework;
  • A sessão sobre estrutura de diretórios foi atualizada com app/view, app/resources e app/output;
  • Foi acrescentada uma explicação sobre o arquivo engine.php, o motor de execução web do framework;
  • Exemplos de conectores Oracle e Sql Server foram adicionados no capítulo sobre persistência;
  • Foi acrescentada uma instrução para utilizar (char="ISO") nos arquivos de configuração Mysql quando o charset for ISO;
  • Foram acrescentados três exemplos que demonstram o carregamento, a contagem e a exclusão de objetos usando o novo recurso de fluent interface, adicionado nesta versão;
  • Foi acrescentado um exemplo de uso do container TWindow;
  • Foi adicionada uma explicação sobre o funcionamento do autoloading das classes no capítulo 2;
  • Foi documentado como utilizar ações no botão de fechamento de diálogos (Error Dialog);
  • Foi criado um novo exemplo, demonstrando como utilizar uma separação MVC total no framework, sem a criação do visual da aplicação (View) no método construtor das classes controladoras (FormReusableControl);
  • Foi criado um novo exemplo, para demonstrar a utilização do componente de edição de HTML (THtmlEditor).
  • Foi criado um novo exemplo, para demonstrar o funcionamento do novo componente que permite a exibição de árvores (TTreeView).
  • Foi criado um novo exemplo para demonstrar o uso de datagrids com rolagem e header fixo;
  • Foi criado um exemplo para demonstrar o uso de funções transformadoras em datagrids;
  • Foi criado um exemplo que demonstra o uso de checkbuttons dentro de datagrids;
  • Foi criado um exemplo que demonstra a possibilidade de definir uma máscara para digitação de valores numéricos em componentes TEntry;
  • Foi criado um exemplo para demonstrar a utilização de templates HTML e estilos CSS para decorar objetos do framework, neste caso um formulário;
  • Os exemplos sobre datagrid foram atualizados para incluir alguns detalhes da nova versão, que permite que ações em datagrid sejam executadas mantendo os parâmetros de paginação. Assim, ao excluir um registro de uma datagrid, o usuário permanecerá na mesma página;
  • O exemplo de Datagrid de clientes foi atualizado para permitir a ordenação por uma coluna associada (coluna de outra tabela);
  • Um novo exemplo foi escrito na seção sobre persistência para demonstrar o carregamento de coleções com propriedades (limit, offset, order);
  • Um novo exemplo foi escrito para demonstrar a funcionalidade de interações em formulários de maneira dinamica;
  • Três novos exemplos foram preparados para demonstrar a funcionalidade de gráficos;
  • O exemplo de datagrid de clientes foi atualizado. Agora possui filtragem no topo e exportação para CSV:
  • Um novo exemplo foi escrito para demonstrar a edição inline de datagrids;
  • O exemplo sobre formulário personalizado foi atualizado para incluir os novos componentes (TSpinner e TSlider);
  • O exemplo sobre formulário personalizado foi atualizado para demonstrar a nova nova funcionalidade de tooltip/dica de preenchimento ($widget->setTip()) que está disponível;
  • O exemplo sobre validações em formulários foi atualizado para incluir o novo validador TNumericValidator que está disponível.
  • Um novo exemplo foi escrito para demonstrar como criar um componente novo no espaço da aplicação;
  • O exemplo de datagrid de clientes foi atualizado para demonstrar como filtrar a datagrid por uma informação associada (tabela relacionada);
  • O guia de referência da API foi incluído ao final do livro.