CSV Export – Módulo para Kohana

Módulo para facilitar a exportação de registros via ORM para CSV.

Requisitos

  • Kohana 3.2
  • ORM Module

Instalação e configuração

Instalação

Faça download do módulo diretamente a partir do GitHub.

O módulo deve ser uma nova pasta dentro do diretório “modules” do framework, para isso você pode clonar ou adicionar um submódulo do git ao seu projeto.

No arquivo “application/bootstrap.php” você deverá configurar o novo módulo:

Kohana::modules(array(
  ...
  'csvexport'	=> MODPATH.'csv-export',
  ...
));

Configuração

Caso você possua alguma necessidade de configuração diferente do padrão do módulo, você pode copiar o arquivo de exemplo da configuração para sua aplicação e altera-lo conforme sua necessidade.

/modules/csv-export/config/csvexport.php

para

/application/config/csvexport.php
return array(
  // Caminho relativo onde serão gravados os arquivos .csv exportados, necessita da barra no final
  // Esse diretório não necessita ser criado, o módulo faz isso
  'export_dir' => 'export/csv/',
);

Como utilizar

Exemplo 1

$rows = ORM::factory('model')->find_all();
CSVExport::factory($rows);

Dessa forma será criado um arquivo .csv com nome único no diretório que estiver na configuração do módulo contendo todos os registros do seu model.

Exemplo 2

$rows   = ORM::factory('model')->find_all();
$fields = array(
  'id'   => 'ID',
  'nome' => 'Nome',
);
CSVExport::factory($rows, $fields);

Se adicionarmos um array contendo alguns campos da tabela, será criado um arquivo .csv apenas com os campos citados na declaração do array.

Exemplo 3

$rows   = ORM::factory('model')->find_all();
CSVExport::factory($rows, null, 'csv/lista.csv', true/false);

Podemos passar também o destino e nome do arquivo (‘csv/lista.csv’) que deseja ser criado, assim como um quarto parâmetro boleano que permite definir se será feito download do arquivo ou se retornará um link para o arquivo gerado.

Publicado em Kohana | Com a tag , | Deixar um comentário

Email Queue – Módulo para Kohana

Módulo simples para enfileiramento de envio de emails.

Os emails são gravados no banco de dados e uma cron cuida de envia-los.

Desenvolvido para Kohana 3.2, esse modúlo requer alguns outros módulos para total funcionamento.

Requisitos

Instalação e configuração

Instalação

Você pode clonar ou adicionar um submódulo do git ao seu projeto, desde que os arquivos sejam adicionados a uma nova pasta dentro do diretório “modules” do framework.

Faça download do módulo diretamente a partir do GitHub.

No arquivo “application/bootstrap.php” você deverá configurar o novo módulo:

Kohana::modules(array(
  ...
  'emailqueue'	=> MODPATH.'emailqueue',
  ...
));

Crie uma nova tabela em seu banco de dados com o nome que você preferir

CREATE TABLE `emailqueue` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `emailto` varchar(100) NOT NULL,
  `nameto` varchar(100) DEFAULT NULL,
  `emailfrom` varchar(100) NOT NULL,
  `namefrom` varchar(100) DEFAULT NULL,
  `emailreply` varchar(100) DEFAULT NULL,
  `namereply` varchar(100) DEFAULT NULL,
  `subject` varchar(255) NOT NULL,
  `message` mediumtext NOT NULL,
  `type` varchar(10) NOT NULL DEFAULT 'text/html',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

Configuração

Copie o arquivo de exemplo da configuração para sua aplicação

/modules/emailqueue/config/emailqueue.php

para

/application/config/emailqueue.php

Altere o arquivo de configuração conforme sua necessidade.

return array(
  // Nome da tabela onde ficaram gravados os emails a serem enviados
  'tablename'    => 'emailqueue',

  // Quantidade de emails que serão enviados por chamada da cron
  'amountToSend' => 100,
);

Como utilizar

Adicionando email à fila

EmailQueue::factory($assunto, $mensagem, $tipo)
  ->to($emailDestino, $nomeDestino)
  ->from($emailOrigem, $nomeOrigem)
  ->reply_to($emailResposta, $nomeResposta)
  ->save();

Configuração da Cron

Para que o envio de emails funcione adequadamente, você precisa configurar uma cron no seu servidor conforme o exemplo.

*/3 * * * * curl -o /tmp/emailqueue http://[endereço da aplicação]/emailqueue/sendEmails

Se desejar, você pode alterar o intervalo de tempo que para chamadas de envio, no exemplo as chamadas estão configuradas para ocorrerem a cada 3 minutos.

Publicado em Kohana | Com a tag , | Deixar um comentário