quinta-feira, 1 de outubro de 2015

Instalando o Laravel 5.1

Passo a passo para a instação do Laravel 5.1 em ambiente Linux e Mac:

1 - Abra a terminal

2 - Acessando o diretório dos seus projetos:
cd /var/www/html


3 - Baixando/Instalando o Laravel:
composer create-project laravel/laravel --prefer-dist


4 - Alterando no nome da pasta do framework:
mv laravel/ projeto

5 - Acessando a pasta do framework:
cd /projeto

6 - Iniciando o framework:
php artisan serve

7 - Verificando se a instalação está correta, abra a navegador e acesse: 
http://localhost:8000/

terça-feira, 1 de setembro de 2015

Instalando o composer como variavel global

Para instalar o composer como váriavel global em ambiente linux/mac faremos seguiremos o passo-a-passo abaixo:


1 - Baixando e instaçando o composer:curl -sS https://getcomposer.org/installer | php
2 - Movendo o composer para a pasta correta:
sudo mv composer.phar /usr/local/bin/composer
3 - Digite composer no terminal e verifique se a instalação aconteceu da forma correta.

Mais informações:

https://getcomposer.org/doc/00-intro.md

segunda-feira, 18 de maio de 2015

Codeigniter em Português

Traduzindo todas as mensagens do codeigniter para português.

01 - Baixe o pacote .zip do link abaixo.
https://github.com/CIBr/CodeIgniter-Portuguese-BR

02 - Descompacte o pacote e mova a pasta portuguese-br para diretório application/language/ do seu projeto.

03 - No arquivo application/config/config.php troque o valor do array $config['language'] para portuguese-br.

04 - Realize os testes.

Obs: No link passado também existe a forma de utilizar o pacote de tradução. Créditos para Infog.

terça-feira, 14 de abril de 2015

Criando uma rota Literal no Zend Framework 2

Acessando a url: http://localhost:8888/usuario

1 - Em module/Application/config/module.config.php

//Definindo o namespace

namespace Application;

//Registrando a rota

'router' => array(

        'routes' => array(

            'home' => array(

                'type' => 'Zend\Mvc\Router\Http\Literal',

                'options' => array(
                    'route' => '/',
                    'defaults' => array(
                        'controller' => 'Application\Controller\Index',
                        'action' => 'index',
                    ),
                ),
            ),
            'usuario' => array(
                'type' => 'literal',
                'options' => array(
                    'route' => '/usuario', // Não esquecer da barra "/"
                    'defaults' => array(
                        'controller' => 'Application\Controller\Usuario',
                        'action' => 'index',
                    ),
                ),
            ),

//Registrando o controller

'controllers' => array(
        'invokables' => array(
            'Application\Controller\Index' => 'Application\Controller\IndexController',
            'Application\Controller\Usuario' => 'Application\Controller\UsuarioController'
        ),
    ),


2 - Em module/Application/src/Application/Controller/ criar arquivo UsuarioController.php

<?php

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class UsuarioController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel();
    }
}
?>

3 -  Em module/Application/view/application/ (nome do modulo Application) criar pasta usuario (nome do controller UsuarioController) e dentro o arquivo index.phtml (nome do método indexAction).

//Digite o código html para teste

<h1>Usuário</h1>

4 - No Linux/Mac

cd /var/www/html/seu_projeto/public

php -S localhost:8888

5 - No browser digite a url: http://localhost:8888/usuario

segunda-feira, 13 de abril de 2015

Flash Messages no Zend Framework 2

//No Controller

public function deleteAction() {
        //pegando o parametro vindo do $_GET
        $id = $this->params()->fromRoute('id', 0);
        //instanciando e enviando a entidade para o serviço
        $service = $this->getServiceLocator()->get('service');
        $delete = $service->delete($id);
        if ($delete == null) {
            $this->flashMessenger()->addSuccessMessage('Registro excluído com sucesso!');
        } else {
            $this->flashMessenger()->addErrorMessage('Não foi possível excluir o registro!');
        }
        return $this->redirect()->toRoute('usuario', array('controller' => 'usuario', 'action' => 'index'));
    }

//Na view

<?php
    echo $this->flashMessenger()->renderCurrent('error', array('alert', 'alert-danger'));
    echo $this->flashMessenger()->renderCurrent('success', array('alert', 'alert-success'));

?>

quarta-feira, 1 de abril de 2015

Mudança de Template no Zend Framework 2 (setTemplate)

//Controller

use Zend\View\Model\ViewModel;

public function indexAction(){

     $view = new ViewModel(array('msg'=>'layout login'));
     $view->setTemplate('layout/login');
     return $view;

}

//Em view/layout

01 - Criar o arquivo login.phtml

02 - Coloque no arquivo

<?php echo $this->msg; ?>

sexta-feira, 20 de fevereiro de 2015

Configurando DataFixture no Zend Framework2

01 - No arquivo module.config.php do módulo:


'doctrine' => array(
        'fixture' => array(
            __NAMESPACE__.'_fixture' => __DIR__ . '/../src/'.__NAMESPACE__.'/Fixture',
        ),
    ),

02 - No terminal (Linux/Mac) dentro da pasta do seu projeto zend framework execute:

vendor/bin/doctrine-module data-fixture:import

quinta-feira, 29 de janeiro de 2015

Gerando Getters and Setters com Doctrine2 no Zend Framework 2

No terminal (Linux/Mac), rode o seguinte comando:

vendor/bin/doctrine-module orm:generate-entities --filter="Tabela" --generate-annotations="true" --generate-methods="true" module/Tabela/src/

PS: Nome da Tabela sempre em maiúsculo.

Redirecionando Controller no Codeigniter

01 - Vá em /application/config/routes.php

02 - Adicione o seguinte indice ao array $route

$route['admin'] = "usuario"; 

Agora quando for digitado admin na url, o codeigniter irá redirecionar para o controller usuario.

quarta-feira, 28 de janeiro de 2015

Configuração Doctrine no module.config.php no Zend Framework 2

No arquivo module.config.php do seu Modulo, após o indice view_manager colocar a seguinte configuração:

'doctrine' => array(
        'driver' => array(
            __NAMESPACE__ . '_driver' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'cache' => 'array',
                'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
            ),
            'orm_default' => array(
                'drivers' => array(
                    __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
                )
            )
        )

    ),

segunda-feira, 26 de janeiro de 2015

Assets Helper

01 - /application/config/autoload.php

$autoload['helper'] = array('url', 'modulo', 'assets');

02 - Na root criar a pasta assets e criar os arquivo com o nome do controller, por exemplo:
usuario.css
usuario.js
cliente.css
cliente.js

03 - /application/helper/assets_helper.php

<?php

    if ( ! defined('BASEPATH')) exit('No direct script access allowed');
   
     //carregando o .css/.js referente ao modulo, caso existam
     function moduleAssets(){
         $CI = & get_instance();
         $controller = $CI->uri->segment(1) == false ? 'usuario' : strtolower($CI->uri->segment(1));
         $css = "assets/css/{$controller}.css";
         $js = "assets/js/{$controller}.js";
         $files = null;
         if(file_exists($css)){
             $files .= "<link rel='stylesheet' type='text/css' href='".base_url($css)."' />\n";
         }
         if(file_exists($js)){
             $files .= "<script src='".base_url($js)."'></script>\n";
         }
         return $files;
     }

?>

04 - View

<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Codeigniter Assets</title>

<?php echo moduleAssets(); ?>

</head>

quarta-feira, 21 de janeiro de 2015

Integração MailChimp com Codeigniter

01 - Fazer o download da classe do MailChimp para o Codeigniter:
https://github.com/waynhall/CodeIgniter-Library-for-MailChimp-API-v1.3


02 - Coloque a classe MCAPI no diretório /application/libraries /

03 - Configuração de conexão com o MailChimp

$config = array(
            'apikey' => 'db5b0123456789621651ca27f7c7657-us8', //API KEY do MailChimp
            'secure' => FALSE //default
        );

        $this->load->library('MCAPI', $config, 'mail_chimp');

        $list_id = 'b2d4012345'; //LIST ID do MailChimp


04 - Testando se a conexão com o MailChimp está correta:

$conexao = $this->mail_chimp->ping();
var_dump($conexao);

Irá retornar Everything's Chimpy! se tudo estiver correto ou FALSE caso encontre alguma falha na conexão.

05 - Exemplo simples de como cadastrar os dados no MailChimp:

        $email = trim($this->input->post('email'));

        $merge_vars = array(
            'FNAME'=> trim($this->input->post('nome')),
            'LNAME'=> trim($this->input->post('sobrenome')),
            'MMERGE4' => trim($this->input->post('telefone'))
        );
 

        //todos os parametros são obrigatórios
        $listSubscribe = $this->mail_chimp->listSubscribe($list_id, $email, $merge_vars); 


06 - Para mais informações consultar: https://apidocs.mailchimp.com/api/1.3/

segunda-feira, 29 de dezembro de 2014

Instanciar Model em uma Library no Codeigniter

//application/libraries

<?php

class Auth{
  
    private $CI;
  
    public function __construct() {     
        $this->CI =& get_instance();     
    }  
  
    public function check(){      
        $this->CI->load->model('usuario_model');
        $check = $CI->usuario_model->find();
        return $check;
    }
}

sexta-feira, 26 de dezembro de 2014

Instanciar Library em um Helper no Codeigniter

//application/helpers/

function setPagination($total_rows){

$CI =& get_instance();

$CI->load->library('pagination');
$config['base_url'] = _SERVER.'/www/cipadrao/usuario/index/';
$config['first_link'] = 'Primeiro';
$config['last_link'] = 'Último';
$config['next_link'] = 'Próximo';
$config['prev_link'] = 'Anterior';
$config['per_page'] = _PER_PAGE;
$config['num_links'] = _NUM_LINKS;
$config['total_rows'] = $total_rows;

return $CI->pagination->initialize($config);

}

quarta-feira, 24 de dezembro de 2014

Paginação/Pagination Helper no Codeigniter

//config/constants.php
define('_SERVER', 'http://'.$_SERVER['SERVER_NAME']);
define('_PER_PAGE', 3);
define('_NUM_LINKS', 5);

//Controller
public function index(){
//criando paginação
$this->load->helper('pagination_helper');
$total_rows = $this->count();
$limit[0] = _PER_PAGE;
$limit[1] = $this->uri->segment(3) ? $this->uri->segment(3) : 0;
setPagination($total_rows);
//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);
}


//Pagination_helper
function setPagination($total_rows){
$CI =& get_instance();
$CI->load->library('pagination');
$config['base_url'] = _SERVER.'/usuario/index/';
$config['first_link'] = 'Primeiro';
$config['last_link'] = 'Último';
$config['next_link'] = 'Próximo';
$config['prev_link'] = 'Anterior';
$config['per_page'] = _PER_PAGE;
$config['num_links'] = _
$config['total_rows'] = $total_rows;
return $CI->pagination->initialize($config);
}

terça-feira, 9 de dezembro de 2014

Flashdata Messages no Codeigniter

//Controller
<?php
public function excluir($cliente_id){
        $this->load->model('cliente_model');
        $delete = $this->cliente_model->delete($cliente_id);
        if($delete){
            $this->session->set_flashdata('sucesso', 'Cliente excluído com sucesso.');
        }
        else{
            $this->session->set_flashdata('erro', 'Não foi possível excluir o cliente.');
        }
        redirect('cliente');
    }
?>

//View
<?php
        if($this->session->flashdata('erro')){
            echo '<div class="erro">'.$this->session->flashdata('erro').'</div>';
        }
        if($this->session->flashdata('sucesso')){
            echo '<div class="sucesso">'.$this->session->flashdata('sucesso').'</div>';
        }
?>

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