CodeIgniter e os espaços

Ora uma das coisas que rapidamente comecei a utilizar foi o comando redirect e este mostrou um dos pequenos erros que se podem cometer sem nos apercebermos.

O comando redirect (e não ficaria espantado em relação a outros que modifiquem a tag <head>) só funciona se os ficheiros de código não contiverem linhas antes ou depois das tags de php.

Esquerda é correcto, o da direita dá problemas

Ora isto é fácil de passar despercebido se utilizarmos um IDE que não tenha número de linhas, e também pode surgir devido a alguns IDEs automaticamente adicionarem linhas após o fecho das tags no template de novo ficheiro php.

Os espaços após as tags também afectam do mesmo modo.

CodeIgniter

Ironia das ironias para alguém que teve formação académica em ASP.Net com C# e SQL Server, acabei por ficar a trabalhar em PHP, Java e MySQL em Linux. Agora  decidi “brincar” um pouco em casa com frameworks PHP. A que acabei por escolher para experimentar foi a CodeIgniter, que me parece razoável sendo apenas extras e não algo completamente novo com PHP como linguagem de programação.

A primeira barreira que encontrei foi o definir um .htaccess para tornar desnecessário o uso de index.php no endereço, isto deveria ter sido simples, mas o exemplo que fornecem não é grande espada no que toca a redireccionamentos para o javascript e css. Acabei por criar eu um desta forma:

RewriteEngine on
RewriteCond $1 !^(index\.php|incs/.*\.js|estilos/.*\.css|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

Isto serve para uma estrutura de directoria deste género:

Em que estilos serve para conter os css e o incs os ficheiros de javascript.

Isto não significa que tenha desistido completamente de ASP.Net, na realidade até estou muito curioso em relação ao MVC, um paradigma que gostei de utilizar em programação para desktop e que o CodeIgniter também utiliza.

Apache e Pando

E apenas um aviso, mas deve-se ter algum cuidado quando se utiliza o computador pessoal para realizar trabalho. No meu caso, eu tinha o Pando Media Booster instalado, e este por vezes usa a porta 443 o que impede o Apache de arrancar ou funcionar correctamente.

Pode-se nem ter propriamente a noção que está instalado, pois algumas aplicações com instalações web usam-no em vez de soluções tradicionais baseadas em bit torrents.