Publicando um projeto desenvolvido em ZF em um shared host

Para a grande maioria que utiliza um shared host, publicar um projeto desenvolvido com Zend Framework pode ser uma dor de cabeça, pois a estrutura recomendada de diretórios pede que a pasta da sua aplicação e do framework fiquem um nivel abaixo do nivel da pasta publica (wwwroot ou public), e muitos shared hosts não permitem que você faça isso.

Uma das formas de resolver este problema sem mudar toda a estrutura recomendada pelo ZF é colocar toda a estrutura da forma como é gerada pelo Zend Tool (ou criada manualmente) no diretório raiz do servidor web e usar um .htaccess para redirecionar todas as requisições para o ZF de forma correta. O .htaccess ficaria assim:

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

Estas regras simplesmente direcionam todas as requisições da raiz do seu diretório web para o diretório public que contem o index.php que inicializa a aplicação. Solução simples e que funciona muito bem.

Traduzindo as mensagens do componente Zend Validate

Começamos a pouco tempo um projeto para traduzir e manter um repositório com as mensagens de tradução do Zend Validate. O projeto que já conta com 3 colaboradores alem de mim, já percorreu uma boa trilha (ainda há muito o que fazer). Vou mostrar aqui como usar as mensagens traduzidas do nosso repositório.

O primeiro passo, obvio, é fazer o download dos arquivos no github. Após isso, no seu bootstrap, adicione um método _initTranslate e no escopo dele instancie o Zend Translate passando por parâmetro o arquivo baixando do repositório, após isso defina sua instância do Zend Translate como padrão para o componente Zend_Validate_Abstract, como no exemplo abaixo:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
       
        public function _initTranslate()
        {
                $translate = new Zend_Translate(
                        ‘gettext’,
                        APPLICATION_PATH . ‘/../data/translate/validate/pt_br.mo’
                );
                Zend_Validate_Abstract::setDefaultTranslator($translate);
        }
       
}

Prontinho, agora todas as suas mensagens de validação estarão em português.

Ah, se você quiser colaborar com o projeto, entre em contato, toda ajuda é sempre bem vinda. :)

Tradução para as validações do Zend Framework

Estou disponibilizando a todos os arquivos de tradução das mensagens do Zend Framework, inclusive peço a ajuda de quem estiver utilizando pra podermos deixarmos este arquivo sempre atualizado, ou seja, colaborações são muito bem vindas.

Para downloads e colaborações: http://github.com/diegoholiveira/Zend-Validate—Messages-pt-br

Em breve irei postar um tutorial sobre como usar este arquivo.

Checando a conexão com a internet usando PHP

Durante o desenvolvimento de um projeto de uso interno de um cliente, precisei verificar se existia conectividade com a internet pra sincronizar e atualizar dados. A maneira mais rapida que eu encontrei pra isso foi o trecho abaixo:

$isConnected = ( fsockopen("www.google.com", 80) ? true : false );

Usando o Ez Components com o Zend Framework

Nenhum framework é perfeito, todos sabemos disso, e exatamente por isso em alguns casos torna-se necessario juntar peças de um e de outro pra poder obter um bom resultado.
Em busca de um bom componente pra trabalhar com geração de graficos acabei encontrando o framework / biblioteca Ez Components, pra quem não conheçe eu recomendo muito dar uma olhada: http://ezcomponents.org. No Ez temos uma otima biblioteca de graficos, e decidi por fim a usa-la no meu projeto.

Para integra-la com o Zend Framework é muito simples, visto que o ZF facilita muito as coisas. Depois de ter feito o download copie a pasta do Ez Componentes para pasta library da sua aplicação.
Após isso abra o arquivo de inicialização da sua aplicação, como eu estou usando o ZF 1.8 meu arquivo chama-se Bootstrap.php, porem se você tiver usando o Zf 1.7 ou anterior a ideia é a mesma.

No meu bootstrap eu já tinha um metodo de inicialização pro autoloader, chamado _initAutoloader, que configura o autoload padrão do ZF, neste mesmo incrementei o autoload do Ez Componentes, ficando assim:

protected function _initAutoloader()
{
        // Autoloader dos recursos padrões
        $autoloader = new Zend_Application_Module_Autoloader(array(
                ‘namespace’     => ,
                ‘basePath’      => APPLICATION_PATH
        ));
       
        // Configurando o autoloader do EzComponents
        require_once ‘ezc/Base/src/base.php’;
        $loader = Zend_Loader_Autoloader::getInstance();
        $loader->pushAutoloader(array(‘ezcBase’, ‘autoload’), ‘ezc’);
}

O que metodo pushAutoloader faz é registrar o metodo estatico autoload da classe ezcBase como autoloader padrão para as classes que inicial com ezc, e isso é feito usando a função spl_autoload_register() da SPL.

Prontinho. Agora é só usar o Ez Components a vontade.

←Older