goncin@wordpress.com:~$ _

Linux, programação e toda sorte de nerdices

Arquivos de tags: asp clássico

Aproveitando “layouts” implementados em ASP em aplicações PHP

Hoje, quase sem querer, descobri uma solução inusitada que me poupou muito tempo e esforço. Senta que lá vem história…

O caso

Estava eu trabalhando num hotsite para um congresso internacional. Uma outra pessoa fez todo o layout e as páginas informativas, tendo ficado por minha conta desenvolver o processo de inscrição dos participantes.

O problema

O layout e as páginas informativas foram feitas em ASP (clássico), e eu vou desenvolver o procedimento de inscrição em PHP. As páginas da inscrição devem seguir o look and feel das demais páginas, aproveitando cabeçalho, rodapé e menus.

A solução

No código-fonte ASP, havia três includes:

<!--#include file="cabecalho.asp"-->
(...)
<!--#include file="menu.asp"-->
(...)
<!--#include file="rodape.asp"-->

Para não ter de refazer em PHP esses três arquivos, que, aliás, estavam alocados em outro servidor, achei por bem pegar o conteúdo deles, já devidamente processados, e injetá-los no layout para ser usado com PHP. Assim, esses três includes transformaram-se em:

<?php echo file_get_contents('http://servidor/caminho/cabecalho.asp'); ?>
(...)
<?php echo file_get_contents('http://servidor/caminho/menu.asp'); ?>
(...)
<?php echo file_get_contents('http://servidor/caminho/rodape.asp'); ?>

Funcionou, foi uma boa sacada, mas isso resolvia apenas parte do problema. Como os arquivos incluídos estavam em outro servidor em relação ao meu script PHP, os hiperlinks e os caminhos para as imagens ficaram quebrados. Foi necessário incluir o caminho para o servidor nas tags a e image. Nada que um str_replace não dê jeito.

<?php
  $include = file_get_contents('http://servidor/caminho/cabecalho.asp');
  $include = str_replace(array('src="', 'href="'),
    array('src="http://servidor/caminho/', 'href="http://servidor/caminho/') , $include);
  echo $include;
?>
(...)
<?php
  $include = file_get_contents('http://servidor/caminho/menu.asp');
  $include = str_replace(array('src="', 'href="'),
    array('src="http://servidor/caminho/', 'href="http://servidor/caminho/') , $include);
  echo $include;
?>
(...)
<?php
  $include = file_get_contents('http://servidor/caminho/rodape.asp');
  $include = str_replace(array('src="', 'href="'),
    array('src="http://servidor/caminho/', 'href="http://servidor/caminho/') , $include);
  echo $include;
?>

E voilà! Tudo funcionando, sem precisar reimplementar do zero o layout em PHP. 🙂 Agora posso me concentrar apenas em gerar o conteúdo.

Anúncios

Por que o ASP clássico ainda sobrevive?

Eis uma questão para a qual não encontrei ainda uma resposta única. Lançado em dezembro de 1996 (segundo informações da Wikipédia), o ASP clássico é hoje um pré-adolescente rebelde que deveria ter morrido ainda criança, mas nunca chegará à idade adulta com maturidade.

Acredito que ele tenha-se tornado popular entre os programadores Visual Basic que, pela necessidade de fazer alguma coisa para a emergente web da época, encontraram naquele um caminho fácil e rápido (mas não necessariamente melhor). Muitos desses profissionais (?!) encontraram ali sua zona de conforto e, diante do passar dos anos e do surgimento de novas tecnologias, preferiram continuar no bom e velho modus operandi.

A Microsoft, creio, também concorreu para a sobrevida dessa obsoletice. Ao introduzir o framework .NET, fê-lo de forma abrupta, sem que os desenvolvedores houvesse tido um caminho suave de transição. Diante da constatação de “ter que aprender tudo de novo”, afinal, “já deu um trabalhão aprender da primeira vez, entender como funciona”, a gente preferiu continuar vendendo sites novos baseado em tecnologia e código velhos.

O resultado de tudo isso são milhões de linhas de código legado, ao qual alguém precisa dar manutenção. E eis que acabei de me tornar mantenedor de alguns milhares dessas linhas.

%d blogueiros gostam disto: