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?
php
frameworks
Goma
fonte
fonte
Respostas:
Quando você estiver à vontade com o PHP, poderá começar a usar uma estrutura. E você sempre deve usá-los:
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.
fonte
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.
fonte
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.
fonte
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.
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).
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.
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.
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.
fonte
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_assoc
se 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.fonte
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.
fonte
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
fonte
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.
fonte
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.
fonte