quinta-feira, 6 de fevereiro de 2014

Autenticação e ACL com Laravel 4.1 - Parte 1

Olá galera,

Hoje daremos início a uma série de vídeos tutoriais onde abordaremos sobre autenticação e ACL com Laravel 4.

Antes de iniciarmos, será necessário que você faça o download do código que iremos utilizar clicando aqui.

Nesse primeiro vídeo, vamos mostrar a aplicação sendo acessada sem nenhum controle. Somente nos próximos vídeos, adicionaremos um login, uma senha e perfis de usuários. Vamos seguir também o modelo de dados conforme a figura abaixo.

Recomendo que a visualização do vídeo seja feita em alta resolução, de preferência em HD, por conta dos códigos exibidos.

Um grande abraço a todos e até a próxima.

sábado, 1 de fevereiro de 2014

Linha de comando para backup e restauração com PostgreSQL

Olá galera,

Apesar de ser um assunto já batido na internet, acho que vale a pena mostrar exemplo e detalhar cada parâmetro do comando.

Por questões de comodidade, as vezes utilizo o pgAdmin para criar e restaurar backups. O problema de utilizá-lo é que um backup gerado em uma determinada versão do pgAdmin não pode ser restaurado em uma versão superior.

Utilizaremos duas ferramentas do próprio PostgreSQL: pg_dump e pg_restore. Vale lembrar que para executar os comandos abaixo, você deve estar usando o usuário postgres.

pg_dump -Ft -f meu_arquivo.tar nome_do_banco

No comando acima, estamos gerando o backup do banco no formato tar através do parâmetro -Ft e o parâmetro -f determina o nome do arquivo de saída. Segue abaixo a listagem de parâmetros do pg_dump.

  • -p, --port=PORT porta do servidor do banco de dados
  • -i, --ignore-version ignora a versão do servidor
  • -h, --host=HOSTNAME host do servidor do banco de dados
  • -U, --username=NAME conecta ao servidor do banco de dados com um usuário específico
  • -W, --password solicita a senha do usuário
  • -d, --dbname=NAME conecta ao banco especifícado
  • -v, --verbose modo verboso
  • -F, --format=c|t|p especifíca o formato de saída (custom, tar, plain text)
  • -c, --clean limpa (apaga) o schema antes de recriar
  • -b, --blobs inclui blobs no dump
  • -f, --file=FILENAME nome do arquivo de saída
pg_restore --dbname=nome_do_banco --verbose path_para_o_arquivo/meu_arquivo.tar

Neste comando, estamos restaurando o backup com o parâmetro dbname especificando o nome do banco de dados. Segue abaixo a listagem de parâmetros do pg_restore.

  • -p, --port=PORT porta do servidor do banco de dados
  • -i, --ignore-version ignora a versão do servidor
  • -h, --host=HOSTNAME host do servidor do banco de dados
  • -U, --username=NAME conecta ao servidor do banco de dados com um usuário específico
  • -W, --password solicita a senha do usuário
  • -d, --dbname=NAME conecta ao banco especifícado
  • -v, --verbose modo verboso

Essas ferramentas são bastante úteis, principalmente quando não temos interface gráfica.

Um abraço e até a próxima!

domingo, 26 de janeiro de 2014

Enviando e-mail com Laravel 4

Olá galera,

No post de hoje vamos mostrar como enviar e-mail usando o Laravel 4 com SMTP. Vamos aos códigos.

No arquivo app/routes.php. Crie duas novas rotas.

    Route::get('form', 'ContatosController@form');
    Route::post('send', 'ContatosController@send');
  

Dentro de app/controllers, crie o ContatosController.php e adicione o código abaixo.

    <?php
    class ContatosController extends BaseController {
      public function form()
      {
        return View::make('contatos.form');
      }

      public function send()
      {
        $input = Input::all();
        Mail::send('emails.contatos.index', $input, function($message) {
          $message->to('email@dominio_do_site.com.br')->replyTo(Input::get('email'))->subject('Contato do site');
        });
        return Redirect::to('form');
      }
    } 
  

Criei o controller bem simples, mas você pode adicionar validações e messagens de erro e sucesso. Note que na linha 12, estou capturando do formulário o e-mail informado.

Crie dentro de app/views/contatos, o arquivo form.blade.php. Como criar o formulário não é o foco desse post, vou deixar que você monte um formulário a sua escolha. Para exemplificar, vou adotar que o formulário tenha os seguintes campos: nome, email, telefone, assunto.

Crie dentro de app/views/emails/contatos, o arquivo index.blade.php e adicione o código abaixo.

    <!DOCTYPE html>
    <html lang="pt-br">
      <head>
        <meta charset="utf-8">
      </head>
      <body>
        <h2>Dados do contato</h2>
        <p>Nome: {{ $nome }}</p>
        <p>E-mail: {{ $email }}</p>
        <p>Telefone: {{ $telefone }}</p>
        <p>Assunto: {{ $assunto }}</p>
      </body>
    </html>
  

Perceba que estou usando como nome das variáveis os nomes dos campos do formulário.

Se você fizer o submit vai notar que não funciona, pois não temos os parâmetros do e-mail configurado. O arquivo a ser configurado é o app/config/mail.php. Para exemplificar, vamos usar a configuração de dois servidores de hospedagem.

Primeiro a configuração para o KingHost.

    <?php
    return array(
      'driver' => 'smtp',
      'host' => 'smtp.dominio_do_site.com.br',
      'port' => 465,
      'from' => array('address' => 'email@dominio_do_site.com.br', 'name' => 'Meu site'),
      'encryption' => 'ssl',
      'username' => 'email@dominio_do_site.com.br', //Utilize um e-mail criado com o seu domínio
      'password' => 'minha_senha', //Utilize a senha do e-mail criado
      'sendmail' => '/usr/sbin/sendmail -bs',
      'pretend' => false,
    );
  

Segundo a configuração para o HostGator.

    <?php
    return array(
      'driver' => 'smtp',
      'host' => 'gator2024.hostgator.com',
      'port' => 465,
      'from' => array('address' => 'email@dominio_do_site.com.br', 'name' => 'Meu site'),
      'encryption' => 'ssl',
      'username' => 'meu_usuario', //Utilize o usuário informado na criação da conta do HostGator
      'password' => 'minha_senha', //Utilize a senha recebida por e-mail pelo HostGator
      'sendmail' => '/usr/sbin/sendmail -bs',
      'pretend' => false,
    );
  

A configuração do mail.php vai depender muito do servidor onde a aplicação vai ser hospedada.

Espero que vocês tenham gostado e qualquer dúvida é só postar no blog.

Grande abraço a todos e até a próxima.

segunda-feira, 20 de janeiro de 2014

Tutorial GeoServer - Estilos

Olá galera,

Após um longo período sem postar nada devido a merecidas férias, estamos retornando para dar continuidade a série de vídeos tutoriais sobre o GeoServer. Hoje abordaremos sobre estilos.

Os arquivos utilizados no vídeo tutorial podem ser baixados aqui. Fiquem a vontade para enviar dúvidas ou sugestões.

Um grande abraço a todos e até a próxima.

quinta-feira, 2 de janeiro de 2014

Tutorial GeoServer - Grupo de Camadas

Olá galera,

Dando continuidade a série de vídeos tutoriais sobre o GeoServer, hoje iremos abordar sobre agrupamento de camadas.

Qualquer dúvida é só enviar seu comentário.

Um grande abraço a todos e até a próxima.