segunda-feira, 24 de novembro de 2014

Gerando as Entidades com Doctrine2 no Zend Framework2

01 - Configurar o arquivo /config/autoload/doctrine_orm.local.php

02 - No terminal (Linux/Mac)

cd /caminho/para/seu/projeto/root_do_projeto

03 -  vendor/bin/doctrine-module orm:convert-mapping --filter="NomeTabela" --from-database annotation module/NomeController/src/NomeController/Entity/

04 - Verificar se o arquivo foi criando em /module/NomeController/src/NomeController/Entity/

//Observações

01 - O nome da tabela

A tabela nome_tabela na geração da entidade dever ser nomeada NomeTabela.

02 - No terminal o comando vendor/bin/doctrine-module, mostra todas as funções disponíveis do doctrine2.

quinta-feira, 20 de novembro de 2014

Configurando Doctrine2 no Zend Framework2

01 - No diretório /config/autoload, criar o arquivo doctrine_orm.local.php:

<?php
return array(
    'doctrine' => array(
        'connection' => array(
            'orm_default' => array(
                'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
                'params' => array(
                    'host'     => '127.0.0.1', //Não usar localhost
                    'port'     => '3306',
                    'user'     => 'root',
                    'password' => '',
                    'dbname'   => 'nome_do_banco',
                    'driverOptions' => array(
                        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
                    )
                )
            )
        )
    ),
);
?>

02 - No diretório data criar a pasta DoctrineORMModule e dentra ela criar a pasta Proxy.

terça-feira, 18 de novembro de 2014

Instalando Doctrine2/Hounddog no Zend Framework 2

No zendframework

01 - Composer.json

{
"name": "zendframework/skeleton-application",
"description": "Skeleton Application for ZF2",
"license": "BSD-3-Clause",
"keywords": [
"framework",
"zf2"
],
"homepage": "http://framework.zend.com/",
"minimum-stability": "dev",
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": "2.*",
"doctrine/doctrine-module": "dev-master",
"doctrine/doctrine-orm-module": "dev-master",
"hounddog/doctrine-data-fixture-module": "dev-master"
}

}

No Terminal

02 - php composer.phar self-update

03 - php composer.phar install

04 - cd public

05 - php -S localhost:8888

No browser

06 - localhost:8888

No zendframework

07 - Em config/application.config.php

'modules' => array(
        'Application',
        'DoctrineModule',
        'DoctrineORMModule',
        'DoctrineDataFixtureModule'

    ),

segunda-feira, 17 de novembro de 2014

Instalando o Zend Framework2

Acesse o link:

01 - http://framework.zend.com/downloads/skeleton-app

No terminal (Linux/Mac)

02 - cd caminho/para/pasta/www

03 - git clone git://github.com/zendframework/ZendSkeletonApplication.git

04 - mv ZendSkeletonApplication/ zf2

05 - cd zf2

06 - php composer.phar self-update

07 - php composer.phar install

08 - cd public

09 - php -S localhost:8888

No browser

10 - localhost:8888

terça-feira, 28 de outubro de 2014

Paginação no Codeigniter

//Controller

public function index(){

$this->load->library('pagination');
$config['base_url'] = 'http://localhost/www/cipadrao/usuario/index/';
$config['per_page'] = 5;
$config['num_links'] = 5;
$config['total_rows'] = $this->count();

$limit[0] = $config['per_page'];
$limit[1] = $this->uri->segment(3) ? $this->uri->segment(3) : 0;

$this->pagination->initialize($config);

//selecionando os dados
$this->data['usuarios'] = $this->usuario->findAll(null, null, $limit);
$this->data['pagination'] = $this->pagination->create_links();
//padronizando o caminho da página
$page = setPage($this->data['module'], 'lista');
//chamando a page pelo template
$this->template->view($page, $this->data);
}

//retorna a quantidade de registros da consulta
private function count($where=null){
$this->load->model('usuario_model');
return $this->usuario_model->count($where);
}

//View

<table border="1" width="100%">
<tr>
<td>Id</td>
<td>Nome</td>
<td>Email</td>
<td>Alterar</td>
<td>Excluir</td>
</tr>
<?php
if(count($usuarios)){
foreach($usuarios as $usuario){
$buffer = null;
$buffer .= '<tr>';
$buffer .= '<td>'.$usuario['usuario_id'].'</td>';
$buffer .= '<td>'.$usuario['usuario_nome'].'</td>';
$buffer .= '<td>'.$usuario['usuario_email'].'</td>';
$buffer .= '<td><a href="'.base_url('usuario/edit/'.$usuario['usuario_id']).'">Alterar</a></td>';
$buffer .= '<td><a href="'.base_url('usuario/delete/'.$usuario['usuario_id']).'">Excluir</a></td>';
$buffer .='</tr>';
echo $buffer;
}
}
else{
echo 'Nenhum registro encontrado.';
}
?>
</table>
<br/>
<div id="pagination"><?php echo $pagination; ?></div>

domingo, 26 de outubro de 2014

HighCharts com Ajax/Codeigniter - Parte02

<?php

class Vendas{

public function dadosGrafico(){

$categorias[] = 'Semana 1' ;
$categorias[] = 'Semana 2' ;
$categorias[] = 'Semana 3' ;
$categorias[] = 'Semana 4' ;

$series_data[] = array('name' => 'Primeiro Mês', 'data' => array(rand(1,5), rand(5,10), rand(10,15), rand(15,20)));
$series_data[] = array('name' => 'Segundo Mês', 'data' => array(rand(1,5), rand(5,10), rand(10,15)));

$dados = array( 'series_data' => $series_data, 'categories' => $categorias);

echo json_encode($dados);

}

}

?>

sexta-feira, 24 de outubro de 2014

HighCharts com Ajax/Codeigniter - Parte01

//Na página HTML
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>

<div id="chartContainer" style="width:500px; height:500px;"></div>

//No arquivo JavaScript

//variaveis
var chart1;
var timeGrafico;

//chamando a função para atualizar o gráfico
$(function(){
     atualiza_chart();
});

//função para buscar os dados e atualizar as informações do gráfico
function atualiza_chart() {

        $.post(base_url+'vendas/dadosGrafico', {}, function(data) {
           
                var chart1 = new Highcharts.Chart({
                                chart: {
                                    renderTo: 'chartContainer',
                                    type: 'line',
                                },
                                title: {
                                    text: 'Titulo do Gráfico'
                                },
                                xAxis: {
                                    categories: data.categories
                                },
                                yAxis: {
                                    title: {
                                        text: 'Valores'
                                    }
                                },
                                series: data.series_data
            });
                                             
           //grafico se atualiza a cada 1minuto
           timeGrafico = setTimeout(function(){atualiza_chart()}, 60000 );

        }, 'json');

    }