quinta-feira, 30 de setembro de 2010

Remover arquivos e e classes não utilizadas

Ola a todos, sempre quando precisei remover módulos não mais utilizados em minha aplicação eu tinha de entrar nas pastas dentro do lib ( form, filter e model) e remover os arquivos manualmente e também as suas routes.
A pouco um colega( Gilmar Pupo) me passou um comando para o Doctrine:
php symfony dotrine:clean-model-files


Obs - para que este arquivo funcione perfeitamente seu arquivo schema.yml deve estar atualizado.


Após feito isso basta remover os arquivos (que você deseja é claro) da sua aplicação que está localizada em  app/...
Também é necessário editar seu arquivo routing.yml que está dentro da pasta de sua aplicação/config/. então removendo as linhas referentes aos módulos não mais utilizados.


Abraço a todos

quarta-feira, 15 de setembro de 2010

Symfony - Ambiente de Debug na produção *_dev.php

Para o _dev.php funcionar em produção é só comentar o condicional 
no inicio do arquivo _dev.php ( linhas 1,2,3,4) que verifica o ip do usuário remoto. 



1. if (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1')))
2. {
3.   die('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
4. }
5.
6. require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
7.
8. $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);
9. sfContext::createInstance($configuration)->dispatch();

Auxílio para esta dica: Raphael Almeida Araújo

sábado, 4 de setembro de 2010

Symfony - o Arquivo de tradução mais completo da web

Para atualizar seu arquivo de tradução para português-Brasil cole o conteúdo que segue abaixo no arquivo localizado em : \lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\i18n\sf_admin.pt_BR.xml.
Este conteúdo deve ser colando substituindo todo o conteúdo do arquivo.



<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE xliff PUBLIC "-//XLIFF//DTD XLIFF//EN" "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd" >
<xliff version="1.0">
  <file original="global" source-language="en" datatype="plaintext">
    <header />
    <body>
      <!-- Actions -->
      <trans-unit>
        <source>New</source>
        <target>Novo</target>
      </trans-unit>
      <trans-unit>
        <source>Edit</source>
        <target>Editar</target>
      </trans-unit>
      <trans-unit>
        <source>Delete</source>
        <target>Remover</target>
      </trans-unit>
      <trans-unit>
        <source>List</source>
        <target>Listar</target>
      </trans-unit>
      <trans-unit>
        <source>Save</source>
        <target>Salvar</target>
      </trans-unit>
      <trans-unit>
        <source>Save and add</source>
        <target>Salvar e Adicionar outro</target>
      </trans-unit>
      <trans-unit>
        <source>Cancel</source>
        <target>Cancelar</target>
      </trans-unit>
      <trans-unit>
        <source>Choose an action</source>
        <target>Escolha uma opção</target>
      </trans-unit>
      <trans-unit>
        <source>go</source>
        <target>ir</target>
      </trans-unit>
      <trans-unit>
        <source>Actions</source>
        <target>Ações</target>
      </trans-unit>

      <!-- Filters -->
      <trans-unit>
        <source>Reset</source>
        <target>Limpar</target>
      </trans-unit>
      <trans-unit>
        <source>Filter</source>
        <target>Filtrar</target>
      </trans-unit>
      <trans-unit>
        <source>is empty</source>
        <target>Vazio</target>
      </trans-unit>
      <trans-unit>
        <source>from</source>
        <target>De</target>
      </trans-unit>
      <trans-unit>
        <source>to</source>
        <target>até</target>
      </trans-unit>
          
      <!-- List -->
      <trans-unit>
        <source>No result</source>
        <target>Nenhum resultado.</target>
      </trans-unit>
      <trans-unit>
        <source>Actions</source>
        <target>Ações</target>
      </trans-unit>
      <trans-unit>
        <source>(page %%page%%/%%nb_pages%%)</source>
        <target>(página %%page%%/%%nb_pages%%)</target>
      </trans-unit>
      <trans-unit>
        <source>asc</source>
        <target>asc</target>
      </trans-unit>
      <trans-unit>
        <source>desc</source>
        <target>desc</target>
      </trans-unit>

      <!-- Pagination -->
      <trans-unit>
        <source>First page</source>
        <target>Primeira página</target>
      </trans-unit>
      <trans-unit>
        <source>Previous page</source>
        <target>Página anterior</target>
      </trans-unit>
      <trans-unit>
        <source>Next page</source>
        <target>Próxima página</target>
      </trans-unit>
      <trans-unit>
        <source>Last page</source>
        <target>Última página</target>
      </trans-unit>
      <trans-unit>
       <source>1 result</source>
       <target>1 resultado encontrado</target>
      </trans-unit>
      <trans-unit>
       <source>results</source>
       <target>resultados encontrados</target>
      </trans-unit>
      <trans-unit>
       <source>[0] no result|[1] 1 result|(1,+Inf] %1% results</source>
       <target>[0] sem resultado|[1] 1 resultado|(1,+Inf] %1% resultados</target>
      </trans-unit>


      <!-- Form -->
      <trans-unit>
        <source>The item was created successfully.</source>
        <target>Item adicionado com sucesso.</target>
      </trans-unit>
      <trans-unit>
        <source>The item was updated successfully.</source>
        <target>Item atualizado com sucesso.</target>
      </trans-unit>
      <trans-unit>
        <source>The item was created successfully. You can add another one below.</source>
        <target>Item adicionado com sucesso. Você pode adicionar outro abaixo.</target>
      </trans-unit>
      <trans-unit>
        <source>The item was updated successfully. You can add another one below.</source>
        <target>Item atualizado com sucesso. Você pode adicionar outro abaixo.</target>
      </trans-unit>
      <trans-unit>
        <source>The item has not been saved due to some errors.</source>
        <target>Item não atualizado devido a erros.</target>
      </trans-unit>
      <trans-unit>
        <source>The item was deleted successfully.</source>
        <target>Item removido com sucesso.</target>
      </trans-unit>
      <trans-unit>
        <source>The item was deleted successfully.</source>
        <target>Ítem excluído com sucesso.</target>
      </trans-unit>
      <trans-unit>
        <source>You must at least select one item.</source>
        <target>Você deve selecionar pelo menos um ítem.</target>
      </trans-unit>
      <trans-unit>
        <source>You must select an action to execute on the selected items.</source>
        <target>Você deve selecionar uma ação a ser executada nos ítens selecionados.</target>
      </trans-unit>
      <trans-unit>
        <source>A problem occurs when deleting the selected items as some items do not exist anymore.</source>
        <target>Ocorreu um problema ao excluir os ítens selecionados pois alguns deles não existem mais.</target>
      </trans-unit>
      <trans-unit>
        <source>The selected items have been deleted successfully.</source>
        <target>Os ítens selecionados foram excluídos com sucesso.</target>
      </trans-unit>
      <trans-unit>
        <source>A problem occurs when deleting the selected items.</source>
        <target>Ocorreu um problema ao deletar os ítens selecionados.</target>
      </trans-unit>
    </body>
  </file>
</xliff>

sexta-feira, 3 de setembro de 2010

Symfony - Personalizar Todos os Formulários

Abra o arquivo localizado em lib\form\doctrine\BaseFormDoctrine.class.php, coloque seu comando dentro da function setup().
No exemplo abaixo estou ocultando os campos created_at e updated_at, de todos os meus módulos

abstract class BaseFormDoctrine extends sfFormDoctrine
{
public function setup()
{
unset ($this['created_at']);
unset ($this['updated_at']);
}
}

quarta-feira, 1 de setembro de 2010

Symfony - Internacionalização




Uma das grandes vantagens do Symfony é a sua facilidade para trabalhar com internacionalização, mas por algum motivo ou por ser novo ainda, as vezes falta algum passo em sua documentação para que o desenvolvedor chegue no seu propósito.


No caso da Internacionalização a primeira coisa que deve ser feita é alterar o arquivo apps/"sua_aplicação"/config/settings.yml. 
Devemos habilitar 2 parâmetros: um referente ao i18n e o outro ao culture. São eles:
all: 
  .settings: 
      i18n: on 
     default_culture: pt_BR 
A linha i18n serve para habilitar o suporte a internacionalização do symfony e a default_culture creio que dispensa explicações.
Após feito isso basta limpar o cache através do comando de linha "php symfony cc", e pronto sua aplicação está em Português Brasil.