Total de visualizações de página

sexta-feira, 1 de abril de 2016

Programação mágica com o PHP


Introdução

Apresentação

Olá amigos do GDH

Gostaria de compartilhar com a comunidade do GDH alguns artigos sobre PHP. Embora este possa não ser o assunto principal deste site, neste momento senti que eu deveria fazer alguma coisa pelo portal que, nestes anos todos, nos serviu como fonte de informação, aprendizado e inspiração.
Neste artigo, no entanto, quero contar um pouco sobre o meu caminho até me tornar programador. Acredito que este relato possa servir como uma forma de me apresentar, antes de iniciarmos uma jornada pela programação mágica do PHP.
Meu nome é Ângelo, e já publiquei bons artigos neste site, pelo que fui bastante elogiado. Mas também já publiquei artigos ruins, que mereceram cada pedra atirada contra eles. Logo entenderão como me tornei programador, e espero que aquilo que pretendo publicar sobre programação esteja à altura da qualidade que o portal do GDH merece.
Sou amante do software livre, e este é um dos motivos que me aproximou do GDH. Tendo eu distribuído muitos Kurumins a amigos e em palestras. Mas é uma pena que eu tenha me tornado deficiente visual, e hoje me encontre totalmente cego. Isto me impossibilitou de utilizar o ambiente KDE. Por causa de dificuldades com o ambiente Gnome, apesar de ser bastante acessível, acabei me rendendo ao ambiente Windows.
Nesta época eu fazia alguns sites aqui e acolá, para amigos e pequenas instituições - típico adolescente micreiro. Ao ficar cego, no entanto, não podia mais ver as minhas próprias animações em Flash! Fazer sites se tornou uma tarefa difícil.
Mas mesmo estando totalmente cego, algumas pessoas ainda vinham me pedir ajuda com a publicação na Internet, e eu ainda guardava o sonho de fazer um portal.
Foi aí que a minha jornada pela programação começou.
A opção pelo PHP teve vários motivos. O principal é que PHP é software livre e, mesmo eu utilizando a plataforma Windows, poderia desenvolver em PHP. Comecei a ler alguns tutoriais na Internet e, sabendo que a maioria dos servidores têm o PHP à disposição, resolvi experimentar no servidor onde meu site estava hospedado. Enviei um documento semelhante a este:
<html>
   <head><title>Testando o PHP</title></head>
     <body>
       <?php print "Olá mundo!"; ?>
     </body>
</html>
Escrevi o documento com o bloco de notas e o salvei com a extensão ".php". Submeti o arquivo via FTP pelo Windows Explorer e abri o endereço no navegador e... funcionou!
Mas que beleza! Eu tinha à minha disposição uma poderosa ferramenta, e não precisava nada além de um bloco de notas. Durante muitos meses eu desenvolvi neste regime: enviando arquivo por arquivo ao servidor.
Quando percebi que o PHP teria futuro na minha vida, decidi instalá-lo no meu computador. Instalei o Linux com Gnome e bastaram alguns comandos para que o apt-get instalasse o famoso "LAMP" (Linux, Apache, MySQL e PHP). Mas eu já havia comentado da minha dificuldade com o ambiente Gnome e a impossibilidade de utilizar o KDE... então acabei por encontrar o XAMP, um pacote para Windows com o Apache, o MySQL e o PHP (e mais algumas coisas). E, a partir daí passei a ser um aprendiz PHP. Observe que o fato de desenvolver em Windows e depois colocar o trabalho para funcionar em um servidor Linux é uma maneira bastante segura de testar se aquilo que estamos desenvolvendo é de fato multi-plataforma.
Não vou entrar em detalhes sobre a instalação de um servidor com PHP. Existe documentação em abundância na rede sobre isto. Se você for atento, já notou as dicas contidas nesta apresentação. Também não vou discutir HTML, partindo do pressuposto de que o leitor já esteja familiarizado com ele. Por motivos óbvios, também será importante que o leitor tenha algum conhecimento sobre folhas de estilo em cascata (CSS) e com o JavaScript.
Tutoriais sobre PHP também existem em abundância na rede. Foi com eles que eu aprendi a programar e, se você ainda não conhece o PHP, poderá dar os primeiros passos com eles, assim como eu fiz. Acho até que você pode ir direto ao manual do PHP (existem diversos sites que o distribuem on-line ou para download) pois apesar de o Manual do PHP estar focado na documentação da linguagem, ele também possui uma boa introdução e muitos exemplos. Aliás, ter acesso ao Manual do PHP é essencial; sempre surgem dúvidas e mesmo para conhecer novas funções.
Um detalhe importante é que tudo o que eu viria a desenvolver desde então precisava ser acessível. Mas embora fosse óbvio, eu nunca tinha desenvolvido nada pensando na acessibilidade (e olha que eu já tivesse alguma deficiência visual!). Por isto eu posso compreender que os desenvolvedores e designers não percebam a importância da acessibilidade - assim como eu mesmo não percebia. Mas hoje sou obrigado a apelar para você, para que pense naqueles que participam do nosso universo em condições limitadas - seja lendo livros sem enxergar, seja se locomovendo sem as pernas, seja escrevendo sem as mãos, seja conversando sem ouvir...
Bem... foi assim que eu comecei, muito tempo, nenhum dinheiro, um acesso à internet... Onde eu queria chegar? Gostaria de criar um portal na Internet onde as pessoas pudessem criar seus próprios sites em poucos clicks. Ao mesmo tempo, a ferramenta deveria ser flexível o bastante para que um webdesigner pudesse ter toda a liberdade que desejasse para criar os layouts.
Destarte já temos alguns desafios importantes. O primeiro é encontrar uma forma segura para que um designer possa criar seu código sem interferir na programação PHP. Em um ambiente onde pretendemos ter múltiplos sites funcionando, a segurança é essencial.
Por falar em segurança, eis outro grande desafio: precisaremos de métodos razoavelmente práticos para determinar quem pode fazer o quê e aonde pode fazer. Isto inclui cadastrar usuários, fazer login, vincular usuários a grupos, etc.
E é claro que existem ainda muitos outros desafios igualmente importantes que, ao longo da nossa jornada pela "Programação Mágica com PHP" nós vamos discutir aqui.
Durante muitos anos eu fiz e refiz dezenas de tentativas. Comecei e recomecei o projeto, sempre descobrindo novas maneiras de solucionar os problemas. Apagava tudo e recomeçava do zero. Afinal, eu aprendi do zero e sozinho. E isto foi bom, pois assim não me prendi à estruturas já prontas e sempre me senti totalmente livre para experimentar de tudo.
Mas é claro que não vou discutir cada etapa da minha jornada. Vou apresentar a forma como atualmente o trabalho está funcionando. E sei que pode não ser a melhor forma, afinal, eu mesmo já experimentei diversas outras maneiras que funcionaram muito bem. Então, apesar de eu estar me comprometendo a expor este trabalho, quero que o leitor se sinta à vontade para dar suas sugestões e questionar os métodos adotados.
Apesar de ter tentado muitas formas diferentes de alcançar os mesmos objetivos, aos poucos algumas opções de estrutura e metodologias de trabalho foram se mostrando mais práticas e eficientes. Assim, a cada vez que o projeto ia sendo reescrito, cada vez mais coisas dos projetos anteriores iam sendo reutilizadas e cada vez mais a estrutura permaneceu semelhante. Isto é compreensível, afinal, algumas coisas foram se tornando óbvias: primeiro precisamos saber o que o usuário deseja ver; em seguida selecionamos algum módulo para recuperar ou construir o conteúdo necessário e, por fim, temos que colocar o conteúdo no modelo correspondente. Isto se refere às etapas que iremos percorrer ao gerar um documento. Mas também a forma de organizar os scripts e os dados em pastas, também isto foi tomando uma configuração que permaneceu bastante estável nos últimos anos.

Mas o que há de "mágico" em programar em PHP?

Uma das principais causas das diversas reformas no meu projeto - reformas que incluíram demolições e reconstruções - é que demorei muito para encontrar um jeito prático de adicionar funcionalidades sem ter que alterar tudo aquilo que já estava pronto. E eu só fiquei satisfeito quando aprendi a utilizar "Métodos Mágicos" disponíveis no PHP. Inclusive, tive que solicitar aos administradores do meu serviço de hospedagem para que fizessem o upgrade do PHP no meu servidor, pois o meu sistema passou a não funcionar em versões anteriores. No início ainda tentei encontrar alternativas para que as coisas funcionassem em versões mais antigas do PHP. Mas depois percebi que não fazia sentido todo o time do PHP desenvolvendo novas facilidades se nós não a utilizássemos por causa da preguiça dos administradores de servidores web!
Bem... é uma pena que não tenha tempo para escrever um guia de programação começando pelo A B C. Mas, se você já possui alguma experiência em programação, por exemplo com o JavaScript, acredito que não terá dificuldade para nos acompanhar, pois pretendo começar também com aquilo que para mim foi o início - são aspectos bastante básicos e que permaneceram até hoje em meu projeto.
Até aqui falei de um projeto... mas onde está este projeto? Ele ainda não está pronto!
Não está pronto por três motivos:
O primeiro é que, quando decidi compartilhar aquilo que estou desenvolvendo, fiz a loucura de, pela enésima vez, recomeçar tudo do zero. Só assim eu poderia ter a garantia de que tudo o que eu viesse a explicar correspondesse exatamente ao que estava sendo feito. Além disto, também tentei ao máximo discutir algum item levando em conta tudo o que já foi explicado anteriormente, mas evitando ao máximo contar com partes ainda não discutidas, não apresentadas. Já adianto que nem sempre isto será possível. Mas o fato de eu ter iniciado a construção documentando cada passo acho que foi essencial. Como não tive tempo de terminar a documentação... também não tive tempo de terminar o projeto!
O segundo motivo é que eu não enxergo e, por ter trabalhado estes anos todos sozinho, sempre esbarrei na parte visual do HTML, estilos CSS, etc. Espero que alguns leitores interessados possam me ajudar nesta parte, assim, também vou deixando claro que eu não pretendo ensinar programação, mas sim quero compartilhar aquilo que estou desenvolvendo para que, juntos, possamos formar uma comunidade de desenvolvimento.
Por fim, um bom projeto nunca estará totalmente acabado, pois sempre estará sendo aprimorado, novas funcionalidades estarão sendo acrescentadas...
Mas não se preocupem: em breve estarei apresentando um site com a semente deste projeto e um pacote com os scripts que já estão prontos.
Então vou ficando por aqui. Se você estiver curioso, nos encontraremos em breve.
Gostaria de agradecer a sua atenção e também agradecer à equipe do GDH, ao grande cacique Carlos Moremoto... e dizer que sou um Kurumim de cara pintada, orgulhoso por ser parte da tribo do GDH!

Nenhum comentário:

Postar um comentário