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

Guia rápido

Home Características Cases Livro Curso Downloads Apps Docs Fórum

Conheça mais sobre com o livro:

  • Instalação e configuração;
  • Modelos, persistência e BD;
  • Componentes de apresentação;
  • Cadastros e listagens;
  • Logins, permissões, relatórios;
  • Desenvolvimento com Studio Pro.
Ver detalhes...


O guia rápido fornece os passos mínimos necessários para criar uma aplicação simples utilizando o Adianti Framework. Instalação
A instalação é bastante simples. Primeiro, baixamos o framework aqui;

Depois, criamos um diretório dentro da pasta httpdocs do apache ("samples" por exemplo) e descompactamos o framework dentro deste diretório, tornando-o disponível;
Em seguida, devemos nos certificar de que o apache tem habilitada a leitura dos arquivos .htaccess, uma vez que o framework utiliza este tipo de arquivo para proteger o acesso à determinadas pastas com arquivos de configuração, como app/config. A seguir, um trecho de código que deve estar no httpd.conf ou em algum VirtualHost, para habilitar esta configuração.
AllowOverride All
Além disso, lembre-se de habilitar a exibição de erros do PHP no php.ini durante o desenvolvimento do sistema. Quando o sistema entrar em produção, lembre-se de desligar esta diretiva e ligar o log de erros.
display_errors = On

A instalação está concluída. Agora vamos configurar a aplicação.
Para um maior entendimento sobre a estrutura de diretórios do framework, clique aqui.
Configuração de banco de dados
Agora que o framework está instalado, podemos criar a estrutura da base de dados. Primeiro, vamos criar um banco de dados simples em sqlite. Este banco de dados ficará localizado dentro do diretório app/database.
sqlite3 samples.db
sqlite> CREATE TABLE person (id serial, name text, address text, birthdate date, gender text);
Agora, temos de configurar o acesso ao banco de dados. Cada banco de dados utilizado pela aplicação é configurado em um arquivo INI localizado no diretório app/config. Este arquivo será nomeado samples.ini. Para outros bancos de dados como Postgresql ou Mysql, temos de preencher todos os parâmetros.
host = ""
name = "app/database/library.db"
port = ""
user = ""
pass = ""
type = "sqlite"
Criando as classes modelo
Agora é o momento de criar as classes do modelo da aplicação. Um modelo é derivado da classe TRecord do framework. Esta classe fornece métodos como store(), delete() e load() que manipulam um objeto na base de dados. O uso deste métodos está explicado no tutorial. O próximo arquivo está localizado no diretório app/model e é nomeado Person.class.php.
  1. <?php
  2. class Person extends TRecord
  3. {
  4.     const TABLENAME 'person';
  5.     const PRIMARYKEY'id';
  6.     const IDPOLICY =  'max'// {max, serial} 
  7.     
  8.     /**
  9.      * Constructor method
  10.      * @param $id Primary key to be loaded (optional)
  11.      */
  12.     public function __construct($id NULL)
  13.     {
  14.         parent::__construct($id);
  15.         parent::addAttribute('name');
  16.         parent::addAttribute('address');
  17.         parent::addAttribute('birthdate');
  18.         parent::addAttribute('gender');
  19.     }
  20. }
  21. ?>

A constante TABLENAME define o nome da tabela que a classe de modelo irá manipular e a constante PRIMARYKEY define o campo de chave primária. O framework não manipula chaves compostas. A constante IDPOLICY define a estratégia para geração de novos ID's. max+1 ou serial (deixa o campo de chave primária vazio e o banco de dados decide seu novo valor).

O método addAttribute() limita quais atributos deste objeto serão persistidos (gravados) na base de dados. Quaisquer atributos que não estejam no addAttribute() serão ignorados pelo mecanismo de persistência. Caso o addAttribute() não seja chamado nenhuma vez, todos atributos serão persistidos.
Criando controladores de página
Agora é o momento de criar um controlador de aplicação. A forma mais simples de escrever um controlador de aplicação é utilizando um controlador-padrão disponível no framework. O TStandardForm fornece uma abordagem-padrão para manipulação de formulários, enquanto o TStandardList fornece uma abordagem-padrão para manipulação de datagrids.

Os controladores de aplicação são salvos no diretório app/control. Neste caso, a classe PersonForm é salva no arquivo app/control/PersonForm.class.php. Todos os controladores de aplicação possuem um método construtor. No método construtor, definimos a estrutura visual da aplicação. O controlador-padrão TStandardForm fornece métodos como setDatabase() e setActiveRecord() que definem o nome da base de dados (veja os arquivos INI) e a classe de Active Record que irá manipular os dados do formulário. O uso dos controladores-padrão é explicado no tutorial.

O próximo passo é criar o formulário. Existem muitas maneiras de se fazer isso. Geralmente utilizamos a classe TForm juntamente com a classe TTable ou TPanel. Mas se precisamos criar um formulário rapidamente, podemos utilizar a classe TQuickForm. Este contêiner organiza os campos do formulário de uma forma padrão. O método addField() é usado para adicionar campos no formulário. Cada campo pode utilizar um diferente componente do toolkit (TEntry, TDate, TCombo, etc). Podemos ver os widgets disponíveis no tutorial. O botão de salvar no formulário chama o método-padrão onSave() fornecido pela classe TStandardForm.
  1. <?php
  2. class PersonForm extends TStandardForm
  3. {
  4.     protected $form// form
  5.     
  6.     function __construct()
  7.     {
  8.         parent::__construct();
  9.         
  10.         parent::setDatabase('samples');
  11.         parent::setActiveRecord('Person');
  12.         
  13.         $this->form = new TQuickForm('form_person');
  14.         $id        = new TEntry('id');
  15.         $name      = new TEntry('name');
  16.         $address   = new TEntry('address');
  17.         $birthdate = new TDate('birthdate');
  18.         $gender    = new TCombo('gender');
  19.         $options = array('M'=>'Male','F'=>'Female');
  20.         $gender->addItems($options);
  21.         $this->form->addQuickField('id',        $id,        100);
  22.         $this->form->addQuickField('name',      $name,      200);
  23.         $this->form->addQuickField('address',   $address,   200);
  24.         $this->form->addQuickField('birthdate'$birthdate100);
  25.         $this->form->addQuickField('gender',    $gender,    200);
  26.         $this->form->addQuickAction('Save',
  27.                new TAction(array($this'onSave')), 'ico_save.png');
  28.         parent::add($this->form);
  29.     }
  30. }
  31. ?>
Definindo o menu da aplicação
Agora é o momento de definir o menu da aplicação. O menu da aplicação é definido no arquivo menu.xml e é usado pelos frontend-padrão fornecido pelo framework. Isto significa que é somente uma recomendação, por que você pode definir outros frontend usando HTML/CSS. A aplicação lê o menu.xml e apresenta o menu para o usuário.
  1. <menu>
  2. <menuitem label='Register'>
  3. <menu>
  4. <menuitem label='Person'>
  5. <menu>
  6. <menuitem label='Form'>
  7. <icon>app/images/ico_store.png</icon>
  8. <action>PersonForm</action>
  9. </menuitem>
  10. </menu>
  11. </menuitem>
  12. </menu>
  13. </menuitem>
  14. </menu>
Rodando a aplicação
Agora chegou o momento de rodar a aplicação. Para tal, abrimos o navegador a acessamos o diretório da aplicação sob o httpdocs do apache. Nesse momento, o frontend index.php é carregado.
http://localhost/samples
Controle de permissão de acesso
Agora que você criou um exemplo simples e conseguiu executá-lo, provavelmente você irá querer implementar mais controles, como formulário de login, e permissões por usuários ou grupos, para que somente alguns usuários possam acessar alguns conteúdos. Você não precisará implementar estes controles, pois já disponibilizamos eles, por meio do Template Template ERP, que na verdade é próprio framework, com uma camada adicional que fornece um controle de permissão de acesso por usuários e por grupos.
Leia este artigo sobre como criar uma aplicação com o Template.
Adianti Template ERP
Outros exemplos
Para aprender mais sobre o Adianti Framework, disponibilizamos várias aplicações de exemplo.
Clique neste link e confira no menu à esquerda.