Os frameworks são realmente necessários em PHP?
Quais são as vantagens e desvantagens de usar um?
Os frameworks são realmente necessários em PHP?
Quais são as vantagens e desvantagens de usar um?
Respostas:
Não. Mas eles são legais.
Prós : economiza tempo sem precisar recriar o código por conta própria. Use a infinidade de recursos, funções e estruturas de dados criadas por outras pessoas que se aplicam ao seu projeto.
Contras : Não ter criado o código por conta própria pode ser uma perda em um nível melhor de entendimento sobre a base da qual seu projeto opera.
As estruturas de aplicativos da Web são tão boas quanto a sua experiência com elas.
Toda estrutura possui uma curva de aprendizado, até que você a supere, você provavelmente acabará fazendo coisas tão invertidas que nega todos os benefícios do uso de uma estrutura. Seu aplicativo será desnecessariamente lento para se desenvolver, o código será difícil de seguir e tudo será interrompido quando uma nova versão do framework for lançada. Eu recomendaria não tentar usar uma estrutura desconhecida (ou qualquer tecnologia desconhecida) para projetos com um prazo apertado.
Como alguém melhora a utilização de estruturas?
Você precisará criar um punhado de aplicativos horríveis e interagir. Eventualmente, você descobrirá as peculiaridades, e o uso de uma estrutura permitirá um tempo de desenvolvimento menor e um código melhor organizado.
Você deve usar uma estrutura PHP?
Todo mundo que codifica PHP suficiente acaba usando uma estrutura. A questão é: você usará sua própria estrutura ou uma desenvolvida por terceiros? Na minha experiência, você provavelmente nunca desenvolverá sua própria estrutura que corresponderá à robustez e qualidade de uma estrutura de terceiros. Dito isto, o desenvolvimento de sua própria estrutura parece ser um direito de passagem na comunidade PHP; portanto, não me deixe desencorajar você a escrever sua própria classe de abstração de banco de dados.
Aqui está um gráfico útil:
De acordo com Rasmus Lerdorf , você não precisa de nenhuma estrutura adicional, pois o próprio PHP é uma estrutura. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
Bem, isso realmente depende do tamanho do seu projeto. Como uma página inicial sem banco de dados e com mais de 10 páginas, uma estrutura será demais, principalmente porque as estruturas de molduras sempre precisam de muita configuração e personalização na maioria dos casos, para atender a necessidades específicas. E, em algumas situações, elas podem ser um pouco mais lentas do que várias páginas incluídas em um arquivo (pense em toda a estrutura necessária para carregar para usar seus recursos).
Agora, se você estiver planejando um site de tamanho médio / grande, com interações com bancos de dados, serviços da web etc. etc, precisará de uma estrutura para ajudá-lo a interagir com diferentes tecnologias e a organizar seu código de maneira que, quando as coisas quebrarem, você terá a habilidade de detectar e reparar rapidamente. Além disso, se você pensa em clientes, eles estão sempre mudando de idéia sobre o software; portanto, se o cliente precisar modificar ou adicionar um novo recurso, você não precisará passar por todo o seu código e pensar em como faço para conectar esse novo recurso a todos esse sphagetti.
Existem muitos outros prós e contras, mas esses foram os primeiros que me passaram pela cabeça.
Edit: Eu uso o framework symfony em bases diárias e também trabalhei com php para a universidade (eu tive alguns cursos sobre desenvolvimento web que não permitiam usar nenhum framework), então a maioria disso vem dessa experiência.
Ta brincando né?
A necessidade depende do uso. Computadores não são necessários para a humanidade, nem carros, etc.
Quanto às vantagens / desvantagens, cada uma é sua!
Eu gostaria de mostrar algum código de exemplo da minha própria estrutura:
class Product extends DatabaseRow {
public $name='';
public $price=0.0;
public $images=array();
public $description='';
public table(){
return 'products';
}
}
$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();
Veja o que eu fiz lá? Essa classe serve de modelo para uma loja. O que há de tão especial além de OO? Se a tabela ou qualquer coluna não existir, ela será criada dinamicamente. 0 scripts de instalação. Claro, esse é um recurso específico em minha estrutura. Mas você entendeu.
$p=new Product($the_id); $p->load();
O load()
é a mesclagem de uma linha, em vez de substituir a linha inteira.
Nem todos os aplicativos exigem uma estrutura, mas a maioria deles exige.
As vantagens são:
As desvantagens são:
Em suma, é melhor usar um.