Os frameworks são necessários no PHP? [fechadas]

9

Os frameworks são realmente necessários em PHP?

Quais são as vantagens e desvantagens de usar um?

Tayyab Gulsher Vohra
fonte
2
Recentemente correu por este post para que parece bastante perspicaz sobre o uso de PHP sem um quadro stackoverflow.com/questions/3655145/...
Matt Molnar

Respostas:

17

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.

Tim
fonte
11
mas o problema é que a cada dia há alots de enquadramentos Eu não sei qual usar
Tayyab Gulsher Vohra
4
@ Tayyab Você precisa usá-los todos!
Arnis Lapsa
11
A escolha de uma estrutura é para você decidir, com base nas necessidades do seu aplicativo e no seu estilo de codificação. Pergunte-se também: você precisa de uma estrutura para lançar seu próprio aplicativo ou um CMS (Joomla, Drupal, etc)?
Darren Newton
2
Você precisa ter cuidado com "incógnitas desconhecidas". Se você não usa uma estrutura, o risco de esquecer ou não saber sobre algumas coisas que as estruturas resolvem para você é grande. Por exemplo, você está lidando corretamente com a prevenção de ataques CSRF? Seu aplicativo funcionará sem essa prevenção, mas será facilmente invadido. Escolher uma estrutura principal (qualquer uma delas) significa que você se beneficia de tudo o que os aplicativos da Web precisam se preocupar, mesmo que você ainda não tenha aprendido.
Joeri Sebrechts 13/03/2019
9

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:

insira a descrição da imagem aqui

Jake McGraw
fonte
7

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

vartec
fonte
Bem pessoal eu sou um biginner e eu estou tentando escrever código eu sou novo para isso e eu quero ser um desenvolvedor do núcleo do PHP assim agradar caras me sugerir
Tayyab Gulsher Vohra
3
Esse artigo é de 2006 e está embaraçosamente desatualizado.
Jonathan Rico
11
@ JonathanRich: esse artigo pode até estar desatualizado, mas ainda é embaraçosamente interessante!
4

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.

guiman
fonte
11
Bem, eu sou um novato em PHP e não desenvolver qualquer coisa grande e ainda estou a confundir o que usar e que eu deveria ir para realmente eu sou totalmente em branco
Tayyab Gulsher Vohra
O primeiro passo seria não usá-las, aprender as tecnologias e como elas funcionam (php, framework, js, css, etc). Depois de entender as bases da programação php, use uma estrutura como Zend ou Symfony ou CakePHP para aprender como aumentar suas aplicações
guiman
2

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.

cristão
fonte
Eu quero lhe dizer uma coisa pessoal, na verdade eu estou usando 2 frameworks, um é codeigniter e o outro é yii, e quero me tornar um desenvolvedor principal, mas meus conceitos de OOP não são tão bons assim, a verdade é essa.
Tayyab Gulsher Vohra 06/04
Como você diferencia entre uma instrução 'UPDATE' e 'INSERT' no método $ p-> save ()?
Srisa
@Srisa - eu não defini um ID. Para fazer uma atualização, eu preciso: $p=new Product($the_id); $p->load();O load()é a mesclagem de uma linha, em vez de substituir a linha inteira.
Christian
2

Nem todos os aplicativos exigem uma estrutura, mas a maioria deles exige.

As vantagens são:

  • Não se repita - qualquer novo aplicativo terá funcionalidade em comum com muitos aplicativos existentes. Faz sentido evitar se repetir. Uma estrutura agrupa a funcionalidade necessária para a maioria dos aplicativos. Consequentemente, você economizará tempo (e dinheiro).
  • Não se preocupe - o desenvolvimento de software em geral pode ser bastante doloroso. Faz sentido automatizar as coisas mundanas. Uma estrutura cuida do encanamento, para que você possa se concentrar em ser profundamente criativo. Consequentemente, você economizará esforço (e dinheiro).

As desvantagens são:

  • Do nosso jeito ou não - Você pode ter que seguir as rígidas convenções da estrutura, que podem contrariar suas crenças dogmáticas sobre como as coisas devem ser feitas (e, consequentemente, enfurecê-lo).
  • Síndrome da estrutura adquirida - Você pode ficar muito dependente das estruturas para realizar as coisas mais simples. Você esquecerá como rotear solicitações, acessar bancos de dados, mapear objetos para consultas de bancos de dados, etc.

Em suma, é melhor usar um.


fonte