Quando preciso usar uma estrutura? [fechadas]

15

Eu sou novo em programação web e, neste momento, estou aprendendo sobre PHP. Gostaria de saber quando preciso usar uma estrutura PHP como o CakePHP? Quais são as coisas que essa e outras estruturas PHP similares oferecem para mim? E é realmente importante usar uma estrutura para ser um profissional?

  • E posso criar minha própria estrutura para fornecer os recursos que eu gosto nela?
Goma
fonte
3
Quando você entender o que ele oferece, e puder contorná-lo quando necessário, use a estrutura [xyz]. Estruturas são ferramentas destinadas a pessoas qualificadas que sabem como usá-las e entendem as limitações de suas escolhas. Em nenhuma circunstância, aprenda um idioma estudando apenas uma estrutura. É como deliberadamente desligar os dedos dos pés ou a visão periférica. Dica, sessões comportar estranhamente, dependendo do que framework PHP você usa .. ter cuidado :)
Tim Publicar

Respostas:

10

Quando você estiver à vontade com o PHP, poderá começar a usar uma estrutura. E você sempre deve usá-los:

  1. É muito, muito mais rápido do que re-codificar tudo
  2. Facilita as modificações, como alterar bancos de dados ou alterar visualizações
  3. Trabalhar com outras pessoas também será mais fácil, pois elas costumam ser usadas para o uso de estruturas de padrões MVC.

Você pode criar sua própria estrutura, mas eu definitivamente não a recomendo. É complicado, já existem muitas estruturas boas por aí e não é provável que você encontre um recurso ausente. Além disso, eles geralmente oferecem maneiras de adicionar seus próprios recursos a eles, sem precisar criar um novo.

DistantEcho
fonte
2
+1 para Quando você estiver à vontade com o PHP, poderá começar a usar uma estrutura. Seu ponto 3) funciona bem apenas se as estruturas forem muito semelhantes. Eu acrescentaria "não crie uma estrutura antes de ter usado algumas diferentes"
peterchen
8
Discordo absolutamente da afirmação "você deve sempre usá-los". Eles não são adequados para cada projeto e muitas vezes acabam fazendo modificações mais difícil . Utilitários são muito mais valiosos do que estruturas.
22411 Nicole
+1 para @NickC, não posso concordar mais. Algumas estruturas afirmam ser dinâmicas e fáceis de mudar as coisas, mas então você chega a um determinado ponto e simplesmente ... não pode. Eu whinged muito sobre esse tipo de coisa :)
Steve Hill
Concordo que o MVC é um bom ponto em comum, permitindo que outras pessoas entrem no seu código com menos curva de aprendizado quando usadas corretamente. Mas o MVC é a estrela brilhante lá, a estrutura (ou a falta dela) é apenas a implementação.
Tim Post
Tudo isso é teórico e não funciona na prática. As estruturas PHP têm mais probabilidade de dificultar todas essas coisas. O aplicativo médio escrito pelo zero precisa de quinhentas a cinco mil linhas de código de estrutura. Essa é a média de trabalho de uma semana. Se for mais do que isso, você provavelmente está escrevendo uma biblioteca ou criando uma plataforma interna.
Jgmjgm 06/03/19
9

Crie algumas páginas sem uma estrutura ... você começará a escrever sua própria estrutura por tentativa e erro. Depois de fazer isso, vá para uma estrutura e aproveite quanto tempo economiza. Tentar criar sua própria estrutura pode ensinar algumas coisas e ajudá-lo a apreciar as estruturas que já existem.

Quando entrei no PHP, pensei que estruturas eram uma perda de tempo complicada. Agora, eu uso o CodeIgniter para projetos simples. Demora cerca de 1 minuto para começar a funcionar, você já tem uma tonelada de ótimas bibliotecas disponíveis. E, como um pôster anterior mencionado, a maioria das estruturas é extensível, portanto você sempre pode adicionar qualquer funcionalidade que desejar.

TaylorOtwell
fonte
2
Mas como posso garantir mais tarde que o código na estrutura é exatamente como eu quero? Quero dizer, todo programador tem seu próprio estilo, certo? E o quadro !!
Goma
1
@ Goma E o idioma? Ainda não encontrei um que faça tudo do jeito que eu quero. A estrutura apenas adiciona algo muito, muito semelhante (espero que em um nível um pouco mais alto de abstração). Sério, a codificação não é sobre "fazer com que tudo pareça / se comporte / seja exatamente como eu quero". Trata-se de criar algo que é útil, o código é apenas a responsabilidade com a qual nos sobrecarregamos, porque os benefícios superam o custo de ter esse código no primeiro lugar.
Christopher Creutzig
E agora @TaylorOtwell é o criador do Laravel ...
Hos Mercury
4

Como Niphra disse, só comece a usar um framework quando você puder usar o PHP sem um framework (ou seja, acessar o banco de dados, enviar cabeçalhos e conteúdo, processamento de strings, manipulação de dados etc.). No que diz respeito às suas perguntas:

  • Quando eu preciso usar uma estrutura PHP como o CakePHP? Quando seu projeto cresce além de alguns arquivos PHP; o momento em que você começa a separar fortemente a lógica em elementos distintos e a funcionalidade de modularização / compartilhamento (sessões etc.) é quando você deve usar uma estrutura.

  • Quais são as coisas que essa e outras estruturas PHP similares oferecem para mim? Abstração; em vez de interagir diretamente com o banco de dados, você pode usar um ORM (Object-Relational Mapping) para gerenciar a estrutura e os relacionamentos entre seus dados no banco de dados. A maioria das estruturas em muitos idiomas fornece ORMs para facilitar a interação com a camada de banco de dados do seu aplicativo. Da mesma forma, as estruturas frequentemente separam as camadas de resposta à interação do usuário. A separação mais comum é o paradigma Model View Controller (MVC), que, para ser breve, abstrai a lógica do banco de dados no Model (uma interface para o ORM, em muitos casos), processando solicitações e interagindo com os Models no Controller e o renderização do HTML / PDF / imagem / etc. na vista. As estruturas geralmente fornecem outras ferramentas, como roteamento (para permitir o processamento complexo do URI da solicitação (EG: mapeando a solicitação "http://example.com/users/1 "para os usuários do controlador, que pesquisam o modelo do usuário com o ID 1) e uma abstração de sessões e outras estruturas básicas.

  • E é realmente importante usar uma estrutura para ser um profissional? Não necessariamente; estruturas tornam a vida mais fácil; mas você não precisa usar um para ser um profissional. As estruturas fornecem abstração e padronização úteis, mas na maioria dos casos não são um requisito.

punhal
fonte
3

Depois de ler algumas das respostas, gostaria de dizer primeiro que muitas vezes você não tem muita opção sobre qual estrutura usar ou se usará uma ou não (como profissional). Não quero intimidá-lo, mas você precisará construir um entendimento suficiente do PHP para permitir a mudança de uma estrutura para outra, bem como usar mais de uma estrutura ao mesmo tempo.

quando eu preciso usar uma estrutura PHP como o CakePHP?

Não há uma resposta universal para isso. Como profissional, você terá a tarefa de resolver problemas específicos e esse será o fator decisivo para quando e o que é de cada projeto, especialmente se um cliente tiver uma demanda específica. Mas de um modo geral, você sempre usará alguma forma de estrutura com PHP, a menos que esteja modificando ou estendendo um aplicativo preexistente que tenha sua própria estrutura (como Wordpress ou PHPBB).

Quais são as coisas que essa e outras estruturas PHP similares oferecem para mim?

Como dito por dirk, eles oferecem abstração. O que isso significa é que eles adotam procedimentos comuns de várias etapas e tentam torná-los o mais simples e otimizados possível. Em resumo, eles tentam apresentar soluções de adição de água para tarefas comuns.

E é realmente importante usar uma estrutura para ser um profissional?

De um modo geral, não, não é importante usar uma estrutura para ser um profissional. Mas, realisticamente, você não terá muita carreira se não estiver familiarizado com pelo menos algumas estruturas comuns. PHP sem uma estrutura é como C ++ sem uma biblioteca std. Você não precisa e pode realmente fazer mais sem ele, pois estará usando diretamente a funcionalidade de bloco de builing de nível inferior da linguagem, mas levará muito mais tempo para fazer a mesma coisa.

E posso criar minha própria estrutura para fornecer os recursos que eu gosto nela?

Sim. De fato, você provavelmente acabará fazendo isso, mesmo que não intencionalmente. Por isso, não quero dizer uma estrutura abrangente de tudo, mas mais como uma bolsa de ferramentas básicas de funções e scripts que executam tarefas que não são comuns ou genéricas o suficiente para serem manipuladas pela estrutura média. O meu é basicamente composto de vários sistemas de arquivos, manipulação de processos e rex-ex tid-bits com alguns utilitários diferentes de curvatura e fluxo / soquete.

JSON
fonte
1

Comum de uma pessoa que passou anos invadindo minhas próprias maneiras de conversar com um banco de dados e com APIs on-line e só agora estou começando a usar estruturas, use-as quando você tiver pelo menos uma compreensão do que elas estão fazendo, se possível.

Não pule imediatamente para o RedBean em sua primeira vez trabalhando com um banco de dados, trabalhe primeiro com o banco de dados manualmente. Dessa forma, você terá um entendimento completo do que está realmente buscando e fazendo no banco de dados, o que pode realmente ajudar na escalabilidade. Você também pode criar sua própria solução quando a estrutura usada não fizer algo que você precisa fazer.

Depois de entender o que está acontecendo, use uma estrutura! Isso torna as coisas muito mais fáceis. A loucura com o armazenamento de uma consulta, em seguida, looping sobre os resultados com mysql_fetch_assocse foi embora, reduzido a uma única chamada: $book = R::load( "book", $id ). Você será muito mais produtivo e poderá corrigir erros futuros ou adicionar recursos futuros com muito mais facilidade.

TheLQ
fonte
1

Use uma estrutura quando conhecer as tecnologias subjacentes o suficiente para saber o que a estrutura faz por você e por que isso é bom (ou ruim).

Uma estrutura é uma espécie de meta-ferramenta, que permite que você trabalhe com suas ferramentas (idioma, banco de dados) um pouco mais rápido, sem precisar se preocupar com alguns detalhes do que está fazendo, o que é bom se você realmente conhece o seu Ferramentas.

O que você NÃO quer que aconteça é que você aprende a estrutura em vez das ferramentas e se torna canalizado para uma certa maneira de fazer as coisas, e acaba não dominando realmente as linguagens e os conceitos subjacentes - deve ser um ferramenta, não uma muleta.

Eli
fonte
1

Quando você se encontrar fazendo a mesma coisa repetidamente, olhe em volta e veja se existe uma estrutura que faz as mesmas coisas redundantes que você acabaria fazendo por conta própria. Não use apenas uma estrutura por causa do hype. Pessoalmente, gosto do CodeIgniter e do "framework PHP MVC no-framework" de Rasmus Lerdorf http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

programador
fonte
Eu escrevi várias 'estruturas sem estrutura' para facilitar a adição de novos recursos a sites principalmente estáticos (e enormes) que simplesmente não podem ser facilmente transportados para qualquer tipo de sistema de gerenciamento / publicação, para que eles tenham seus usos. Mas eu não lançaria o meu próprio para um projeto totalmente novo (eu usaria o CI se uma estrutura fosse necessária).
Tim Post
@ Tim Post Normalmente, nunca há uma resposta em preto e branco para esta pergunta. Tudo depende do projeto em questão, a postagem original não forneceu detalhes sobre um projeto específico.
Programador
1
Parece que recebi um voto negativo de um fanático do framework, bom!
Programador
Não fui eu :) Alguém pode ter reagido ao link que você postou sem realmente entrar em detalhes sobre o assunto.
Tim Post
@ Tim Post Heh! Foi por isso que fiz questão de separar esses dois comentários. : D
programador
-1

Eu recomendo pensar cuidadosamente por que você usaria o framework x, y ou z. Toda estrutura não fornece apenas funcionalidade, que você não precisa se implementar, mas também uma maneira de pensar. Basta olhar para Spring, JEE, Rails ou Django. Quatro estruturas que fornecem o suficiente para interromper um aplicativo da Web em pouco tempo.

Mas todos os quatro promovem sua própria maneira de pensar sobre como os aplicativos da web devem ser construídos. E se isso não atender às suas necessidades ou combinar com seu sabor, será difícil levar as coisas adiante.

Essa tem sido uma comparação muito radical, mas talvez a criação de uma pequena biblioteca atenda melhor às suas necessidades. Mas conhecer estruturas certamente o ajudará a trabalhar em equipes maiores ou encontrar novos empregos, pois isso mostra que você está interessado no desenvolvimento de software como um todo.

Florian Salihovic
fonte
-2

Estruturas são sempre boas de usar desde o início. Promove a reutilização do código, melhor legibilidade e economiza um pouco de tempo de desenvolvimento.

Não tenho muita experiência com PHP, mas gostaria de incentivar qualquer uso de estrutura.

Pierre Pretorius
fonte
Por que os votos negativos?
Pierre Pretorius