15
respostas

Frameworks PHP

Olá pessoal, eu estou estudando tudo de PHP no alura. Estou estudando os frameworks no momento e já vi o CodeIgniter, agora estou no Laravel. Na minha experiência percebi que o CodeIgniter é uma grande escolha caso você queira um plus ao implementar em PHP puro. Já o Laravel é outro nível, muito bom e bem completo. Mas a minha pergunta é a seguinte:

Uma vez que eu escolha um framework, eu consigo fazer uma implementação que caso seja necessário, seja fácil mudar para outro framework ou realmente uma vez escolhido, caso queira mudar, tenho que reescrever boa parte da implementação?

O que eu percebi no Laravel é que ele só não tem o botão 'PRONTO'! kkkk, isso me deu medo nesta questão aí de mudança de framework.

O que vocês acham?

Por exemplo em JAVA como existe as especificações é possível utilizar frameworks e implementar de forma que a troca de um framework por outro seja tranquila, como por exemplo a especificação JPA.

15 respostas

Oi Alexandre, tudo bom?

Realmente, nesse ponto a galera do java tem uma boa vantagem. Na comunidade PHP a gente ainda não tem muito bem definida as ideias de especificação. Ultimamente o que tem rolado são algumas recomendações que a galera (e os frameworks) andam seguindo. Se você quiser pode dar uma lida no post que eu escrevi pro blog da alura sobre isso:

http://blog.alura.com.br/boas-praticas-de-desenvolvimento-php/

Mas como você pode perceber, são padrões de desenvolvimento. Padrão para auto-load, cache, etc. Nada como uma especificação igual a JPA. Isso faz com que a migração de framework possa vir a ser meio trabalhosa mesmo.

Oi André, tudo blz. Pois é, foi o que eu percebi estudando os frameworks. Acredito que um dos grandes motivos para o pessoal as vezes optar por JAVA, C#, etc.. seja por estas questões, mas isso não quer dizer que php com frameworks sejam uma má ideia, pelo contrário, na minha experiência até então a produtividade é bem grande com o Laravel por exemplo. Uma grande vantagem que eu percebi do php também é na questão de hosts para hospedar as aplicações com preços bem acessíveis.

É isso aí,

obrigado por responder.

Alexandre,

Hoje em dia o conceito de componentes PHP está muito bem difundido, então se você precisar trocar, por exemplo o componente de ORM ou de log no seu projeto, isso pode ser feito com menos trabalho, agora um framework fullstack é complicado.

Mas, em Java também não seria tão simples, trocar um sistema em JSF para SpringMVC, por exemplo.

Um paralelo do PHP que a gente pode fazer com as especificações Java são as PSRs citadas pelo André. Já existem algumas aprovadas e várias em desenvolvimento: http://www.php-fig.org/psr/

Legal Carlos vou dar uma olhada também. Eu terminei o curso de Laravel e achei um excelente framework. Vou começar a ler a documentação e ver os videos.

Você costuma usar qual framework em PHP?

Não fiz o curso ainda do ZEND, mas o que você diz a respeito dele?

O codeigniter achei bom também. Para o momento vou focar os estudos em LARAVEL e CODEIGNITER.

É isso aí.

Abraço.

Alexandre, não sou grande fã os frameworks fullstack. Sinceramente acho que eles tiram muito o controle da sua mão. Você ganha em produtividade, mas perde em performance.

O Symfony é sem dúvida meu preferido. CodeIgniter e CakePHP são muito conhecidos pro freelancers e criadores de projetos menores. São poucas as grandes organizações que o utilizam (confesso que não conheço nenhuma). Já o Symfony é utilizado pelo Spotify, Trivago, etc...

Além disso, o Symfony prega muito a ideia de componentes reutilizáveis, fazendo com que a troca deles seja fácil, entregando de volta ao desenvolvedor um pouco desse controle.

Tenho um projeto rodando em Laravel e nunca me deu problema, mas o ORM que vem com ele me dá vergonha. Active Record pra mim é um Anti-Pattern, independente do que qualquer um diga.

Já precisei mexer com CakePHP na empresa onde trabalho atualmente e não gostei nem um pouco. Muita coisa é feita 'automagicamente', e se você precisa de um comportamento diferente, reza... Além do fato de na versão 2 ser utilizada fortemente a 'programação orientada a array' famosa no PHP 4. =/

Já do Zend, ouvi falar bem, mas nunca utilizei. A reclamação que mais já li é a complexidade desnecessária pra tarefas simples, o que fez os autores desses comentários mudarem pro Symfony, que te dá os mesmos recursos, de forma mais direta.

O que eu recomendo mesmo é conhecer vários componentes, e talvez micro-frameworks (slim, silex, phalcon, etc.).

Desculpa o textão. Fui escrevendo conforme fui pensando. rsrsrs

Excelente Carlos. Pode escrever textão que pra mim é bom! Hehehehe

Eu tô com um sério dilema no PHP. Devido a essa lista gigante de framework eu fico meio que perdido em saber qual adotar. Eu gostei do codeigniter por praticamente rodar direto sem pre- requisitos, tendo o PHP já era . Porém cara o laravel é outro nível, muito mais prático, só que sinceramente me dá medo, porque a programação é mínima, só falta fazer café então eu não sei se isso impacta muito em velocidade, se isso eh considerável mesmo.

A minha questão é a seguinte. Eu fiquei muito tempo parado na questão de estudos, trabalhei com programação para uma coisa bem específica por um bom tempo e agora eu resolvi estudar PHP pra poder desenvolver projetos web simples, nada complexo, tipo sistema de padaria..Rsss.

No meu caso o q vc faria? O que o mercado de PHP usa no geral?

Já estudei PHP, codeigniter e LARAVEL.

O mercado usa muito mais Symfony ou micro frameworks. Laravel teve uma boa ascensão mas hoje já ouço falar bem menos. O ideal mesmo é dominar BEM o PHP sem frameworks, pra que os frameworks realmente facilitem sua vida, e não criem outros obstáculos.

Vejo o tempo todo pessoas agarradas em projetos porque não saber resolver problemas simples, porém específicos, nos quais os frameworks não podem ajudar.

Se realmente quiser estudar um framework fullstack, o Symfony é sem dúvida o melhor. Agora, minha recomendação é: Muito fundamento e PHP puro. No máximo micro framewoks.

:-D

Legal Carlos, você falou uma coisa interessante: PHP puro. Você estuda o PHP direto pelo site mesmo do php ou leu ou lê algum livro mais avançado?

Pois é Carlos, o problema de um framework como o LARAVEL é que deixa o cara preguiçoso e sem conhecer a linguagem a fundo. Eu achei ele fantástico, mas não domino o PHP e isso me incomodou. Antes mesmo de você falar sobre PHP puro eu ja tava pensando que deveria treinar como PHP puro mesmo pra entender a linguagem por inteiro e depois ir pros Frameworks.

Valeu pelas dicas.

Alexandre, tem muitos livros muito bons de PHP. Eu to lendo um fantástico atualmente: PHP Moderno.

Mas, vou confessar pra você. Aprendi mais PHP estudando outras linguagens, como Java e C#.

O PHP nem sempre foi orientado a objetos, então muitos cursos, livros e exemplos de PHP ainda têm aquele gostinho de orientação a array. Estudando outras linguagens aprendi mais sobre orientação a objetos, design patterns, solid, etc. e aplico com PHP.

Pegar projetos mais complexos pra fazer também é bem legal.

Faz todos os cursos de boas práticas aqui. Mesmo que não seja em PHP, depois é só mudar a linguagem, e isso é o de menos.

Estuda bastante as novidades do PHP 7 e do 7.1 também. Tá bem legal.

Pois é Carlos, eu vi muito essa questão de arrays nos cursos da Alura inclusive, hehehee. Pra quem vinha de JAVA aonde pra tudo tem classe, eu estranhei um pouco, mas estou me acostumando ainda e vejo muita dificuldade em criar classes tipo pojos do java no PHP porque com o framework isso é inutil hehehehe, você cria um controller ou model e estende da classe padrao e pronto, ta la tudo o que vc precisa, heheheehe, não da nem pra brincar de querer fazer getters e setters kkkkk. Vc só precisa mexer mesmo quando um model tem relação com outro, ai vc faz a associação como esta no banco de dados.

Mas eu vou estudar o PHP puro aplicando o conceito de orientação a objeto, design patterns e solid, ai depois brinco com os frameworks.

Valeu novamente.

Quase choro quando vejo código assim. Kkkkk

Acredite, vale mais a pena criar seus getters e setters. Com Symfony não tem essa mágica, e suas entidades são mapeadas pelo Doctrine, que pra você que veio de java, vai lembrar o Hibernate.

Não utilize arrays deliberadamente, pq, acredite, não é normal programar assim. Rsrsrsrs

Abraços

Legal Carlos, mesmo sem mexer ainda, já gostei do Symfony então! hehehe. Porque sinceramente, não vi sentido em aplicar SOLID e DESIGN PATTERN nesses frameworks tipo LARAVEL. Massa!

Sobre o livro 'PHP MODERNO' achei interessante, vou comprar mais pra frente. O mesmo autor é fundador do framework 'SLIM' e do site boas práticas:

http://br.phptherightway.com/

Obrigado pelas dicas.

Abraço.

Fico feliz em ver que ainda há bons programadores vindo pro PHP.

:-D

Abraços e bons estudos, Alexandre!

É isso ai.

Abraço e bons estudos tb!

Poxa 5 anos atrás e eu falando sobre Frameworks PHP....hehehehe. Vinicius eu sou o cara que faz uns comentários no YOUTUBE dos seus videos hehehe. Estou voltando a estudar programação e estudando PHP do zero. Eu até fiz um projeto em Laravel mas DAQUELE JEITO..rss. É um excelente FRAMEWORK no sentido de rapidez pra levantar um sistema, mas se você não tem uma base legal de PHP e Orientação a Objetos vai começar a fazer uns códigos BARRIGUDOS (Controller de 5 mil linhas....rsss) e foi justamente isso que acabei percebendo. Vou dar uma olhada mais pra frente no synfony, mas para o momento, o meu primeiro filho ta em LARAVEL, mas quero fazer outros projetos e testar outros caminhos. Passou-se 5 anos e eu praticamente não estudei quase que nada(depois que lança o app, nunca tem fim as melhorias hehehehe), mas agora quero recuperar o tempo perdido e fazer uma imersão em PHP. Parabéns pelo os seus cursos de fundamentos em PHP, estão fazendo toda diferença pra mim. É isso aí, valeu.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software