Webly: Escolhendo Um Framework Php: A Difícil Missão - Webly

Ir para

Regras para postagem

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de PHP

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.
Página 1 de 1

Escolhendo Um Framework Php: A Difícil Missão Fiz minha decisão e vou contar os por quês Avaliar tópico: -----

#1 Membro offline   KeyMaster Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 185
  • Cadastrado: 18-outubro 08
  • Localização:Pedro Osório, RS
  • Interesses:Administração, Webdesign, Programação, Marketing, música. Esqueci de citar Administração

Ícone  Postou 20 janeiro 2009 - 03:43

[Este artigo está originalmente escrito em "Escolhendo um framework PHP: a difícil missão", meu blog pessoal. Boa leitura]




Escolhendo um Framework PHP: a difícil missão


Chegou o momento crucial de escolher um framework PHP para usar na minha empresa, me abraçar a ele e usá-lo agressivamente. A questão era qual framework escolher, pois são vários existentes por aí, como Symphony, Zend, Yii, CodeIgniter, Kohana e CakePHP. Analisei até mesmo o Ruby On Rails. Fiz minha decisão e vou explicar a seguir os “por quês”.

Existém dezenas de frameworks PHP pela internet, qualquer um que começa a ver a necessidade de organizar sua produção cria um sistema. Eu mesmo criei um baseado em View-Controller. Mas agora chegou o momento que não posso reinventar a roda e preciso escolher uma ferramenta de desenvolvimento que use o padrão MVC.

Experimentei alguns frameworks e outros descartei logo depois de uma boa pesquisada na internet.



Provavelmente vou errar em algo. Por favor comente para esclarecer qualquer problema. Além do mais, esta é a minha ótica, posso ter deixado algo passar.


A escolha do framework
O Symphony é um bom framework segundo a comunidade. Não o experimentei profundamente, mas por todos os reviews que vi, ele facilita bastante o processo de criação, com bibliotecas prontas, tornando tudo fácil na hora de desenvolver. Algumas questões, entretanto, me deixaram desconfortáveis. A primeira foi o fato de que alguns usuário dizerem que quando a aplicação aumenta de tamanho, fica difícil organizar o código. Não tome minha palavra por isto. Resolvi então colocar o Symphony no final da lista de frameworks.

O próximo framework é o Zend Framework (vamos chamá-lo ZF). Como todos sabem, o ZF é desenvolvido pela própria empresa que mantém o PHP, a Zend Technologies Ltd, e isto me deu muita segurança. Provavelmente é um framework que jamais perderá sua continuidade, a menos que a Zend termine.

O ZF, contudo, apresentou uma curva de aprendizado muito longa, tempo que eu não tenho agora. Além disto, não me pareceu muito prático, o próprio tutorial dá muitas voltas até você conseguir realmente fazer algo. Não gostei também das convenções de variáveis e funções, pois são usadas palavras e nomes pouco voltadas ao ser humano. Eu precisava de algo mais humano do que isto.

O Kohana é um framework muito promissor, ainda. Ele é uma variação do CodeIgniter, só que mantido por uma comunidade. Seu desenvolvimento não está maduro o suficiente, ainda criando recursos que já deveriam estar presente desde o início. Quanto à documentação, é um terror. Não consegui aprender muita coisa facilmente, os fóruns são nebulosos e o blog de tutoriais não ensina o básico. Resumo: má documentação. Daqui a um ano ele estará mais tragável, com certeza.

Depois destes, analisei o CakePHP e CodeIgniter e foram os finalistas. Falarei da minha decisão mais abaixo, depois de falar do Ruby On Rails.


O Ruby On Rails
Imagem
Rails

Aqui está o queridinho de uma grande comunidade de programadores na internet, o Ruby On Rails. Ruby nada mais é do que uma linguagem de programação como o PHP, voltada totalmente a classes e objetos. On Rails é o framework, assim como CakePHP, CodeIgniter e Kohana.

O Ruby On Rails me chamou muito a atenção pelo fato do sistema de Scaffolding. Basta você digitar um comando e o sistema cria todo o código para você, montando os views, controllers, models e formulários. Na verdade isto é muito usado por iniciantes, profissionais não usam esta ferramenta. Eu mesmo criei um blog sem saber nada de Ruby (a linguagem). Nada que você não crie usando o CakePHP, até porque este último é baseado no Rails.

No Rails eu também achei muito gostoso de lidar, embora sabendo quase nada da linguagem.

O grande problema que encontrei foi ter de aprender Ruby. Não quero neste momento aprender outra linguagem de programação. Depois, li na internet várias pessoas que usavam Ruby On Rails primeiro e começaram a migrar para o PHP, pois ainda é caro ter um site em Ruby On Rails devido à demanda de hardware. Dizem que a é consumido muita memória (não tomem minha palavra por isto). Fora o fato de que pouquíssimos servidores no Brasil suportam Ruby. Quem sabe daqui a um ano ou dois o mercado já esteja mais maduro.


CakePHP vs CodeIgniter
Estes dois frameworks foram os que mais me chamaram a atenção depois de tudo que li. Tanto o CakePHP, que é baseado na facilidade de desenvolvimento do Ruby On Rails, quanto o CodeIgniter, que é uma “máquina de velocidade”, são muito elogiados em reviews e textos pela internet.

Em praticamente tudo o CakePHP é superior ao CodeIgniter. O sistema dele faz uso de um método que eles próprios chamam de automagic (automágica, óbvio). Fiz buscas complexas no banco de dados em mais de uma tabela sem escrever uma linha SQL sequer. Estou acostumado a escrever dezenas de linhas SQL e, pode acreditar, fiquei maravilhado com o sistema deste framework.

O CodeIgniter é um framework adorado por todos que o usam. Um dos grandes diferenciais dele é sua velocidade algumas vezes maior que os concorrentes. Os testes de benchmark são errôneos, e vou falar sobre isto depois. A documentação é exemplar. Com tudo, contudo, ele é muito cru. É necessário várias configurações. É necessário baixar e instalar plugins diversos, ao contrário do CakePHP, que já está tudo lá.


Layouts
O CakePHP possui um sistema de layouts nativo. É possível criar uma página default, padrão, e o framework se encarrega de carregá-lo automaticamente em todas as Views.

No CodeIgniter, você precisa chamar a view em todos os métodos do Controller. Para criar um layout padrão, você cria um arquivo chamado cabeçalho, outro rodape, então faz um include no topo e outro no rodapé do View. Em todos os Views. Diversas pessoas criaram sistemas e plugins para melhorar isto. No CakePHP já está tudo lá.


Documentação
Quanto ao CakePHP, muitos falam mal da sua documentação. Afirmo que era péssima mesmo, mas agora está beeem melhor. A versão 1.2 trouxe diversas melhorias, e uma delas foi nos documentos. A única dificuldade eque tive foi quanto a mudar layout inicial (não sabia onde estava o arquivo) e desligar o debug. Postei a solução aqui.

Isto não significa que você não vai conseguir entender nada nos documentos do CakePHP, muito pelo contrário. Está bem explicado e há uma imensidão de tutoriais pela internet. Existem inclusive livros somente sobre este framework.

A documentação oficial do CodeIgniter é melhor que a do CakePHP. Acredito que por ser um framework de um empresa, a EllisLabs, eles pagam bem as pessoas para escrever cuidadosamente e extensivamente. Só por isso, e por ser retida por uma empresa, temos alguns contras.


Futuro
CodeIgniter é mantida pela EllisLabs, que também tem o CMS ExpressionEngine (que nunca usei nem sei como é). Embora haja um fórum dedicado a novas idéias, acredito que há um pensamento comercial maior do que suprir as necessidades da comunidade. Eles podem de uma hora para outra resolver cortar custos e parar o desenvolvimento, e nós vamos ficar chupando dedo.

O CakePHP, por outro lado, é mantida por uma comunidade aberta, fazendo seguro o futuro do framework.


Velocidade do frameworks
Ooook, aqui nós temos um aparente problema. Veja pela internet as dezenas de Benchmarks e testes de velocidade (este, por exemplo) de frameworks PHP e você verá que o CodeIgniter processa requisições algumas vezes mais rápido que o Cake. Isto me encomodou bastante, ao ponto de eu decidir pelo CodeIgniter por uns instantes, até procurar mais sobre o assunto.

O problema do CakePHP, de fato, não é o processamento geral de banco de dados ou amostragem. O problema dele é antes disto tudo, são as verificações no core do sistema, verificações estas que acontecem antes de carregar qualquer controller, model ou view. É aquilo que torna o sistema automático e facilita o desenvolvimento para você.

Muitos vão torcer o nariz aqui, mas a questão é que quando a aplicação aumenta de tamanho consideravelmente, o CakePHP aumenta sua velocidade. Não que aumente a velocidade, mas sim que o processamento de dados é rápida, o que “demora” é a preparação do sistema (menos de 1 segundo), que será a mesma em aplicações grandes ou pequenas.

Os testes que vi foram todos baseados em “Hello Worlds” e condições não muito reais. Um dos caras em uma lista de discução diz que usa o CakePHP em um site com 400.000 usuários cadastrados e não teve problemas, ele se saiu muito melhor que o imaginado. Ele acrescentou que 4 segundos carregamento 400.000 usuários não deve encomodar ninguém. Isto não vai encomodar a mim.

Ainda, quanto à velocidade, pessoalmente, se a Mozilla Foundations, que cuida do Firefox, usa o CakePHP como framework para distribuir as centenas de plugins para nós e não foi prejudicada, não vejo como o CakePHP pode me prejudicar. Assim, a questão de velocidade morre por aqui.


Desenvolvimento
Visivelmente, é muito mais rápido desenvolver qualquer sistema no CakePHP do que no CodeIgniter. Eles trás bibliotecas prontas, processa todas as variáveis do sistema para você, já tem pronto os sistemas para lidar com diversos bancos de dados, trás métodos fáceis de lidar com Ajax, elementos HTML, tudo prontinho.

No CodeIgniter, você terá de instalar novos plugins obrigatoriamente, a menos que você deseje botar a mão na massa e programar a fundo para criar novos recursos. Ele é bem mais cru.

Pessoalmente, achei muito gostoso de programar no CakePHP, tanto quanto no Ruby On Rails e, só para comentar, o CakePHP foi, de fato, criado baseado na facilidade do Rails.


A decisão
Com vitória de 1 voto a 0, decidi que o meu framework de trabalho será o CakePHP!

ImagemCakePHP

Comecerei a desenvolver usando este framework e postarei tutoriais e dicas sobre este. Não vou descartar o CodeIgniter nem o Symphony. Futuramente vou dar uma revisitada no Kohana para ver como anda.

Até a próxima.
Lula, Lula, beijomeliga

http://www.eualexandre.com.br
0

#2 Membro offline   Rafael Moura Ícone

  • Follow me - twitter.com/rhmoura
  • Ícone
  • Grupo: Moderadores
  • Posts: 583
  • Cadastrado: 17-julho 06
  • Sexo:Male
  • Localização:Cuiabá - MT
  • Interesses:Programação Web, principalmente se for PHP, C#, CSS, JQuery...

Postou 23 janeiro 2009 - 04:35

Legal seu post, juro que tb senti muita confiança no ZF, porém estou sentindo dificuldade em fazer e aprender algumas muitas coisas. Eu vou dar uma estudada no CakePHP, espero gostar dele tb...
Poste seu tutorial aqui no Webly e ganhe uma graninha no seu próprio adsense :)
http://forum.webly.com.br/index.php?showtopic=16220
O iEvolution agora é Webly a "Internet + Humana"
http://www.webly.com.br/
Não respondo dúvidas por MP. O fórum ta aqui pra isso...
"Todas as coisas, portanto, que quereis que os homens vos façam, vós também tendes de fazer do mesmo modo a eles."
0

#3 Membro offline   TIagoFaustino Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 4
  • Cadastrado: 26-setembro 07

Postou 11 março 2009 - 07:03

Eu fiz a mesma coisa que vc há umas semanas atrás.

Sempre fiz sistemas PHP até de certa forma organizados, com as classes todas direitinho, com pouca macarronada.
Mas o que sempre me incomodou foi em relação ao MVC. Ai vi que a maneira mais aproveitável seria usando os frameworks do mercado.

Pesquisei igual a vc e tive a mesma conclusão: CakePHP.

Até agora só estou encontrando boas surpresas enquanto desenvolvo.

Paginação, validação de campos, configuração de mensagens para os usuários, relacionamento entre as tabelas, upload de arquivos, configuração de layouts, elements. Os helpers (html, de form, etc..)... Enfim, é muito show!

A única coisa mesmo q me incomoda é a velocidade para carregar as páginas enquanto desenvolvo com ele. Mas acabei percebendo q isso vai mais da minha máquina q do próprio framework. Quando subi meu sistema para o meu provedor, não vi graaaandes dificuldades em relação a velocidade, alguns formulários abriram até bastante rápido. Ah, o Cake tmb tem um lance de cache, q acredito seja interessante estudar.

Enfim, o CakePHP tem tudo para crescer. É realmente muito legal desenvolver com ele.
Ah, se quiser acompanhar meu delicious com relação ao Cake: http://delicious.com...austino/cakephp

Abraços.
0

#4 Membro offline   KeyMaster Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 185
  • Cadastrado: 18-outubro 08
  • Localização:Pedro Osório, RS
  • Interesses:Administração, Webdesign, Programação, Marketing, música. Esqueci de citar Administração

Postou 12 março 2009 - 12:02

Muito obrigado por seu comentário.

O CakePHP é, com certeza, um belo de um framework. É gostoso trabalhar com ele.

Pessoal, se puderem, postem também comentários no post original em meu blog.
Lula, Lula, beijomeliga

http://www.eualexandre.com.br
0

#5 Membro offline   Splash Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 23
  • Cadastrado: 28-agosto 09
  • Sexo:Male
  • Localização:Porto Alegre/Rio Grande do Sul
  • Interesses:PHP, MySQL, ActionScript, haXe, AutoIt, AutoHotKey, C++, HTML, JavaScript, CSS...

Postou 28 agosto 2009 - 12:23

Só acrescentando...
existe o Sphagetti* também, é um framework nacional que foi
lançado recentemente. :)

As principais vantages dele são a simplicidade e suporte em português.

Abraços
...
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)