Member of The Internet Defense League

Imagens na instalação da Symfony 1.2

By borfast

Mais uma daquelas notas mentais que podem ser úteis para outras pessoas. Como por vezes estou algum tempo sem iniciar novos projectos com a Symfony (o tempo é usado a trabalhar nos que já foram começados ou com outras frameworks), depois acabo por me esquecer de como resolvi os problemas. Assim ficam aqui registados e tenho onde vir ver imediatamente, sem ter que andar à procura.

Ao iniciar um projecto com a Symfony 1.x, as páginas criadas utilizam imagens que estão numa directoria "web/sf", a qual faz parte da estrutura de directorias da framework. Essa directoria deveria estar acessível logo à partida mas infelizmente não está. O raio da framework é muito esperta para criar symlinks para plugins que podemos nem sequer querer usar (Propel) mas para um raio de uma directoria que contém imagens que a framework usa imediatamente nas páginas que cria, já não. O resultado é que em vez de vermos a página janota que Symfony apresenta mal se cria um projecto, vemos uma página branca sem quaisquer imagens, sem a barra de debug... sem nada, só com uma mensagem a dizer que se não vemos imagens é porque algo está mal. Ena...

Como se isso não bastasse, a directoria que procuramos tem dois sítios possíveis para estar, dependendo se instalámos a framework a partir do PEAR ou se simplesmente a descomprimimos para algum lado.

Então vamos lá resolver isto...

No caso de descomprimirmos a framework algures, a coisa é simples. A directoria que queremos é a "data/web/sf", dentro da directoria resultante de descomprimir o .tgz (ou o .zip) que se vai buscar ao site.

Caso instalemos através do PEAR a situação complica-se um pouco, pois a symfony fica espalhada em (pelo menos) duas directorias. Ora temos coisas em /usr/share/php/symfony, ora temos outras coisas em /usr/share/php/data/symfony. Porreiro, não é? Especialmente quando a lógica nos diz que, se há uma directoria "symfony" dentro da directoria onde todas as outras tralhas de PHP estão (/usr/share/php), então é porque as coisas que procuramos da Symfony devem estar ali dentro, certo? Errado. Neste caso as imagens usadas nas páginas criadas por defeito pela framework estão mesmo dentro de uma outra directoria, especificamente a /usr/share/php/data/symfony/web/sf

Sabendo isto, basta criar um symlink para esta directoria "sf", dentro da directoria "web" do nosso projecto. Assumindo o caso da instalação pelo PEAR e a directoria correspondente:

  1. cd projecto/web
  2. ln -s /usr/share/php/data/symfony/web/sf .

E está feito. Refresh na página e temos imagens, como deviam aparecer logo, sem termos de andar a caçar directorias escondidas.
Outra opção é fazer o que eles sugerem nos tutoriais e manuais da Symfony, e configurar um virtual host para o projecto mas o problema mantém-se: convém saber onde raio está a directoria que tem as coisas da web.

Próxima paragem: caixinha de sugestões da Symfony...

1 comment

By fabiano (not verified)
3 years 49 weeks ago

Symfony

A instalação no ubuntu foi um sucesso, mas no windows me bati um pouco... Parabêns pelo artigo att