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.
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.
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.
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 );
setembro 23rd, 2009 in
Dicas,
PHP | tags:
PHP |
No Comments
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.