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 Apps Docs 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-7-0. Páginas: 332. Autor: Pablo Dall'Oglio. Editora: Adianti. Ano 2017 (8ed).

  • Introdução, arquitetura e estrutura;
  • Banco de dados, modelos, e persistência;
  • Componentes de apresentação, templates;
  • Organização e controle, uso de templates;
  • Criando sistemas com templates;
  • Estudos de caso (biblioteca, controle de chamados).
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 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. Além disso, são abordados os principais arquivos do Framework que tratam da inicialização de uma aplicação, menus, layout, carregamento de bibliotecas, dentre outros.

O capítulo 3 aborda a integração com banco de dados. 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; conversões entre array e JSON. 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, formulários Bootstrap, componentes de entrada de dados, validações em formulários, componentes avançados (seleções, busca de registros, campo repetitivo, árvore, calendário, edição de HTML, listas de ordenação), criação de páginas passo a passo (wizards), datagrids, datagrids com campos de input, datagrids com imagens, datagrids com agrupamentos, e cálculos, e criação de relatórios e gráficos.

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 e produtos, contendo aspectos mais complexos, além de telas para edição, exclusão e seleção de registros em lote.

O capítulo 6 apresentará o template para criação de sistemas. O Adianti framework possui um template de criação de sistemas que oferece funcionalidades prontas como: controle de login, controle de permissões de acesso por usuários e por grupos de usuários, 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. Além disso, o template conta com um módulo de gestão de documentos e compartilhamento de documentos entre usuários, ferramentas de comunicação (troca de mensagens) entre usuários, e notificações do sistema, Este capítulo explicará como o template foi criado e ensinará a criar aplicações baseadas em templates.

O capítulo 7 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: internacionalização e envio de e-mails.

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

  • Melhorias gerais
    • Instruções de instalação atualizadas para Ubuntu 16.04;
    • Atualizadas explicações sobre o init.php;
    • Acrescentada explicação sobre o novo atributo "adianti_target_container".
  • Persistência
    • O modelo de classes e relacional foi atualizado com novas tabelas;
    • Melhoradas explicações sobre os conectores INI de base de dados;
    • Adicionadas novas variáveis no INI Oracle;
    • Novo exemplo: Update em lote;
    • Novo exemplo: Update em lote com chamadas estáticas;
    • Melhorado exemplo: Simplificado código-fonte de explicação da composição;
    • Melhorado exemplo: Simplificado código-fonte de explicação da agregação;
    • Melhorada explicação sobre composição eager load x lazy load;
    • Melhorada explicação sobre agregação eager load x lazy load.
  • Apresentação
    • Novo exemplo sobre o container Panel Group foi criado;
    • Exemplo sobre formulários rápidos foi totalmente reformulado, apresentando novos componentes e recursos;
    • Novo exemplo sobre formulários rápidos com abas foi criado;
    • Exemplo sobre formulários Bootstrap teve explicação aperfeiçoada;
    • Novo exemplo sobre formulário Bootstrap vertical;
    • Novo exemplo sobre formulário Bootstrap em colunas;
    • Novo exemplo sobre formulário Bootstrap inline;
    • Novo exemplo sobre a nova classe construtora de formulários Bootstrap (BootstrapFormBuilder);
    • Novo exemplo sobre formulário com campos repetitivos com botão para adicionar linhas;
    • Atualizado exemplo sobre máscaras com novas opções;
    • Exemplo sobre seletores foi reformulado com novas opções: enableSearch(), maxsize;
    • Exemplo sobre seletores automáticos foi reformulado com novas opções: combo que se transforma em multisearch, maxsize, seletores com máscaras de exibição;
    • Melhorias visuais no exemplo sobre editor HTML;
    • Melhorada explicação sobre listas de ordenação, agora com ações de troca (changeAction);
    • Exemplo MVC totalmente reconstruído, explicação refeita;
    • Novo exemplo sobre datagrids com cálculos entre campos, e totais gerais;
    • Exemplo sobre página passo a passo reconstruído, explicação reformulada;
    • Novo exemplo sobre o novo componente calendário;
    • Melhorado exemplo sobre template, agora usando o componente TActionLink;
    • Novo exemplo criado sobre uso de templates com matrizes;
    • Exemplo sobre gráficos de linhas totalmente reconstruído. Agora com Google charts;
    • Exemplo sobre gráficos de barras totalmente reconstruído. Agora com Google charts;
    • Exemplo sobre gráficos de pizza totalmente reconstruído. Agora com Google charts;
  • Organização
    • Melhorado exemplo sobre formulários, e datagrid padrão;
    • Melhorado exemplo sobre formulários, e datagrid manual;
    • Exemplo sobre datagrids de clientes reformulado;
    • Exemplo sobre formulário de clientes totalmente reconstruído agora com o novo componente BootstrapFormBuilder e campos multivalorados;
  • Template
    • Nova seção introdutória falando sobre os módulos disponibilizados no template;
    • Novas explicações sobre o novo formulário de preferências;
    • Novo módulo de comunicação: com modelos ER e de classes;
    • Novo módulo de comunicação: Gestão de documentos, com compartilhamento entre usuários;
    • Novo módulo de comunicação: Troca de mensagens entre usuários;
    • Novo módulo de comunicação: Notificações do sistema;
    • Reconstruída explicação sobre práticas responsivas para formulários.
  • Cases
    • Reconstruída explicação sobre a aplicação Library, que agora é sobre o Template, herdando recursos deste;
    • Atualizado o modelo de dados sobre a aplicação Library;
    • Reconstruída explicação sobre a aplicação Changeman, que agora é sobre o Template, herdando recursos deste;
    • Atualizado o modelo de dados sobre a aplicação Changeman;
  • 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.