segunda-feira, 29 de julho de 2013

Aplicação PHP rodando no Linux com banco de dados SQL Server no Windows

Olá galera,

Nesse post vou compartilhar uma solução para o caso de uma aplicação PHP rodando no Linux e o SQL Server no servidor Windows.

O primeiro ponto é ter instalado o pacote php5-sybase. Esse pacote fornece o módulo de conexão com bancos Sybase e SQL Server. No Ubuntu, basta executar o comando abaixo caso não o possua instalado.

sudo apt-get install php5-sybase

Supondo que nossa aplicação seja UTF-8 e o banco esteja usando collation Latin1_General_CI_AS. Assim que a aplicação for executada, todas as strings vindas do banco que possuem acento não vão ser exibidas.

Para solucionar o problema, vamos precisar editar um arquivo de configuração do FreeTDS. Para quem não conhece, o FreeTDS é um conjunto de bibliotecas que permite que seus programas "conversem" nativamente com SQL Server e Sybase.

No comando abaixo estou usando o VIM mas fique a vontade para utilizar editor um de sua preferência.

sudo vim /etc/freetds/freetds.conf

No trecho de configurações globais, altere o tds version para 7.0 e logo abaixo dessa linha acrescente client charset = UTF-8. Após a alteração o arquivo deve ficar similar ao trecho abaixo com as alterações em vermelho.

# Global settings are overridden by those in a database
# server specific section
[global]
    # TDS protocol version
        tds version = 7.0
        client charset = UTF-8

OBS: Não altere e nem remova os outros parâmetros nesse arquivo.

Com essa alteração o problema dos acentos devem ser resolvidos. Essa solução foi testada em servidores Ubuntu e CentOS mas deve funcionar com as demais distribuições Linux.

Bem pessoal, espero que a dica tenha sido útil.

Um abraço e até próxima.

terça-feira, 16 de julho de 2013

OpenLayers 3, o que vem por aí !!!

Olá galera,

Fiquei um tempo distante e sem postar nada devido a estar enrolado com alguns projetos. Estou dando uma passada rápida para falar sobre o OpenLayers 3 que se encontra em fase alpha.

No post Criando um cluster com Openlayers, há um bom trecho de código exibindo como é feito na versão 2.

O OpenLayers 3 foi reescrito completamente com base nas tecnologias mais recentes como HTML5, WebGL e CSS3. O que pude perceber nessa nova versão é que o código ficou muito mais limpo e simplificado. Abaixo segue um trecho de código na nova versão

  map = ol.map({
    renderTo: 'map',
    layers: [ol.layer.osm()],
    center: [5, 45],
    zoom: 10
  });
  

O mesmo código pode ser escrito da seguinte forma.

  map = ol.map()
    .renderTo('map')
    .layers([ol.layer.osm()])
    .center([5, 45])
    .zoom(10);
  

Caso alguém queira iniciar os teste com a nova versão, basta inserir o código abaixo dentro da tag <head/>

  <link rel="stylesheet" href="http://ol3js.org/en/r3.0.0-alpha.3/build/ol.css" type="text/css">
  <script src="http://ol3js.org/en/r3.0.0-alpha.3/build/ol.js"></script>
  

Fiz um pequeno exemplo de como ficaria o código final que pode ser baixado aqui.

Um abraço e até a próxima.