Pergunta

Comecei a escrever alguns aplicativos no PHP e estou me familiarizando com o idioma. Alguém me contou sobre CakePHP e CodeIgniter. Eu queria entender melhor como isso poderia me ajudar e se vale a pena gastar tempo para aprender uma estrutura?

Foi útil?

Solução

Quais são os benefícios do uso de estruturas MVC PHP?

Bem, existem muitos benefícios no uso de estruturas PHP, vamos ver alguns dos principais benefícios de usá -los.

  1. Essas estruturas PHP seguem algum padrão de design; portanto, quando você usa uma estrutura, precisa seguir a convenção de codificação, o que torna seu código limpo e extensível para fins futuros.
  2. As estruturas PHP populares como CakePhp, CodeIgniter, Zend Framework, Symfony Siga Model View View Controller (MVC) Padrão de design que separa a lógica de negócios da interface do usuário, tornando o código mais limpo e extensível.
  3. Como todos podem adivinhar, essas estruturas contêm muitas bibliotecas para facilitar seu trabalho. Por exemplo: Para validar um formulário, você não precisa escrever o código do cenário de codificação normal (sem usar uma estrutura), apenas algumas linhas de código que chamam a biblioteca geralmente é suficiente para isso.
  4. Enquanto trabalha em um grande projeto em uma equipe, uma estrutura MVC PHP será uma ótima ferramenta para o desenvolvimento, pois você pode atribuir um desenvolvedor para desenvolver uma parte de um módulo para um desenvolvedor e a integração será bastante fácil desses módulos desenvolvidos no nível final .
  5. Essas estruturas do MVC realmente ajudam você a desenvolver o projeto rapidamente, se você conhece bem uma estrutura, nunca se preocupará com o prazo final do projeto.
  6. A maioria dessas estruturas de MVC usa abordagem de URL clara, tornando seu projeto da web amigável para SEO.

Verifica artigo

Outras dicas

Minha filosofia é que você deve usar apenas algo quando resolver uma necessidade que atualmente possui.

Existe uma tendência real, principalmente neste reino, de simplesmente usar uma estrutura para usar uma ou porque você sente que deveria estar usando algo. Eu desencorajo essas práticas. Também as estruturas que eu acho que têm mais valor quando você fez as coisas da maneira mais difícil, para ter uma boa compreensão de quais problemas você tem e como a estrutura pode ajudá -lo nessa situação. A escolha da estrutura depende da situação.

Tudo dito, o padrão MVC com aplicativos da Web é útil, por isso certamente não machucaria você aprender pelo menos um. No entanto, eu cumpriria uma estrutura bastante minimalista. Codeigniter vem à mente aqui.

Por fim, o outro perigo com estruturas é que elas podem ser tão invasivas que você não está mais fazendo PHP, está fazendo CakePhp, Symfony ou qualquer outra coisa. Isso não é necessariamente um problema, mas o perigo de ser tão invasivo é que você não tem uma boa base no PHP e, se quiser mudar, será simplesmente muito difícil que nunca seja capaz de fazê -lo.

Uma das grandes vantagens das estruturas PHP é que elas minimizam a reinventar a roda em um grande número de necessidades comuns de aplicativos da Web. Questões de segurança, manuseio de exceção gracioso, URLs repousantes e reutilização de código em todo o site são considerações bastante universais.

Pode ser mais fácil se familiarizar com as ferramentas de uma estrutura e, em seguida, ver se você deseja assumir o sistema MVC completo que ele suporta. Para esse fim, eu sugiro se familiarizar com a estrutura Zend. O ZF funciona como uma biblioteca de classes que podem ser implementadas individualmente para usos específicos-qualquer coisa da segurança à busca do Lucene-, mas contém classes que, quando usadas em conjunto, implementam um paradigma MVC totalmente desenvolvido.

Eu só quero falar sobre minha própria experiência em programação, ainda sou novato

  1. Primeiro, usando a estrutura, você se acostumará com o estilo/regra de codificação, o que é bom porque a maior parte da estrutura é profundamente pensada sobre como eles escrevem seu código. Em suma, eu tenho melhor estilo e código mais limpo
  2. Geralmente, a estrutura vem com muitos arsenal (plugins e / ou biblioteca), que você pode encontrar na Internet, isso reduzirá seu tempo de codificação, reduziu o tempo perdido. Em suma, você pode tornar seu próprio tempo precioso pensando no processo de negócios
  3. Com o uso da estrutura de código aberto, há outro programador que já conhece e provavelmente dominou a estrutura, então você pode colaborar facilmente com outras pessoas.
  4. Na verdade, eu não sou um programador bem organizado, mas foi antes de usar alguma estrutura de código aberto. Talvez como eu, você ficará mais organizado

Isso é tudo o que posso compartilhar com você por enquanto, não sou bom em escrever em inglês, desculpe por isso. Mas o ponto é que eu recomendo que você use a estrutura

Feliz amigo de codificação.

Eu acho que é sem dúvida um bom investimento gastar tempo para aprender uma estrutura PHP. Por um lado, ensinará como alguém abordou o problema de arquitetar a estrutura, como organizar seu código PHP e como lidar com coisas como sessões e acessos de banco de dados ... etc ...

Na maioria das vezes, se você é sério sobre o desenvolvimento de aplicativos da Web, precisará usar uma estrutura de algum tipo em vez de escrever sua própria estrutura do zero.

Algumas razões pelas quais você não deve escrever sua própria estrutura:

  1. Você está reinventando a roda, quando já foi feita muitas vezes.
  2. É muito provável que você faça um trabalho melhor do que uma estrutura de código aberto, que foi testado e iterado por muitos desenvolvedores.
  3. Você gastará todo o seu tempo escrevendo e depurando sua própria estrutura do que gastará realmente criando seu aplicativo.

Então, sim, aprenda algumas estruturas e encontre uma que lhe convém melhor!

Diclaimer: Eu não sou um programador PHP e nunca escrevi um aplicativo PHP. Por outro lado, instalei, personalizei e usei muito o PHP CMSS para o meu site e carrinhos de compras.

Na minha opinião, o PHP sofre de problemas sérios. O maior deles é que a "estrutura" parece ser uma palavra estrangeira para quase todos os projetos grandes e até bem -sucedidos. O código PHP tende a se tornar rapidamente salada de espaguete: Spaghetti html misturado com código de espaguete e sql de espaguete.

A OSCOMmerce, um dos carrinhos de compras mais bem -sucedidos de todos os tempos, é principalmente inquente. Isso aplica também a grande maioria dos projetos de PHP.

Se você deve usar uma estrutura para o projeto, eu digo que sim! Definitivamente! Não importa o tamanho do seu projeto, o uso de uma estrutura da web ajuda a arrumar você e a escrever um código mantido.

Também afeta seu estilo de programação, mesmo quando você não está usando uma estrutura.

O uso do MVC-framework tornará seu desenvolvimento mais fácil. Especialmente aplicativos relacionados ao banco de dados. Ele fornece uma estrutura de pasta cristalina e muitas bibliotecas de código. Eu sugeriria que você inicie o CodeIgniter.

As estruturas são ótimas quando você conseguiu uma equipe de desenvolvedores trabalhando no mesmo projeto. O controlador MVC integra o projetista + programador lindamente. No entanto, criar elementos "semelhantes a estrutura" e "reinventar" a roda não é uma ideia tão ruim. Se você está trabalhando em um projeto enorme, é melhor se sujar e sujar com seu código e personalizar tudo para atender às suas necessidades. Ele se tornará um produto mais forte, pois será desenvolvido inteiramente para o projeto.

A postagem a seguir é uma resposta a um tópico que foi imediatamente fechado enquanto eu estava escrevendo minha resposta para renderizar a postagem em: https://stackoverflow.com/questions/3265509/what-are-the-benefits-of-using-a-programming-framework . O tópico foi fechado e, nos comentários, um link foi colocado direcionando -o aqui, então tentarei responder à sua pergunta aqui. Em citações abaixo está o que eu estava prestes a enviar:

"Permita-me recomendar Joomla! Para você e sua organização. No meu último empregador, tive que pegar o PHP (sem experiência anterior com ele) e depois de cerca de um mês e meio de fazer codificação manual manual de PHP, tive a tarefa de codificar um componente Joomla! Que serviria vídeos para os usuários. Eu também tive que criar um back-end que permitiria que os administradores não-técnicos categorizassem, editem, excluiram etc. Miniaturas para eles, etc.

Agora, para obter um protótipo de funcionamento para isso, levou cerca de dois meses (eu era estagiário na época e trabalhando apenas 20 a 24 horas por semana; portanto, se você tiver bastante experiência com PHP, além de experiência com MVC Development Metodology , você provavelmente poderia ter conseguido um protótipo funcionando muito mais rápido que eu). "

Agora, em resposta ao OP deste tópico: gastar tempo para aprender uma estrutura definitivamente vale a pena (eu não o vi mencionado aqui até minha posta Joomla!).

Alguns dos benefícios de aprender uma estrutura (de código aberto como Joomla!):

  • Uma enorme comunidade de pessoas que podem ajudar a responder suas perguntas (além de Stackoverflow; lol)
  • Acesso a todo o código -fonte, para que você possa personalizá -lo como desejar.
  • Muitos plugins gratuitos (e pagos) de terceiros para aprimorar a funcionalidade.
  • Muitos tutoriais.
  • As estruturas cuidam de executar muitas tarefas mundanas automaticamente.

Em referência ao Bullet Four: Joomla! Cuida das coisas para você, como gerenciamento de conexão com o banco de dados, para que você não precise se preocupar em criar todas as suas próprias funções personalizadas para se conectar ao seu banco de dados MySQL ou retornar diferentes tipos de resultados do banco de dados (por exemplo, um registro, primeiro resultado do primeiro Registro, lista de registros, etc.), você simplesmente faz chamadas para as deles. A API da Joomla! Está disponível abertamente na web em seu site: http://api.joomla.org/

De qualquer forma, espero que isso ajude a renderizar e qualquer outra pessoa se perguntando sobre estruturas (especialmente as relacionadas ao PHP).

Uma estrutura para mim é uma boa ferramenta para acelerar você e economizar seu tempo para você simplesmente não quer gastar tempo para refazê -lo, não porque você quer economizar tempo que não sabe o quanto é . Você pagará por isso se o fizer.

Para mim, a estrutura é boa se você já é um programador de experiência e tiver o toque ou sentir que sabe como a estrutura funciona aproximadamente abaixo (simplesmente não exatamente) e tenha confiança em dizer você se eu quiser, posso recriar classificar como simplificar essa estrutura. Então, uma estrutura é um carro expresso para você e não causará a dor se você quiser fazer algo que a estrutura não está pronta ou algo incomum ou outra coisa estranha.

Se não o fizer, é melhor tentar resolver seu problema usando o PHP antigo simples e passa pela dor de tocar o idioma no seu dedo e aprender sobre boas práticas de programação, paradigma e padrão primeiro. Caso contrário, você será um daqueles graduados novos que ingressam em uma grande equipe e seu primeiro projeto está trabalhando em um projeto com uma estrutura muito poderosa que exige muito menos codificação e mais para configurar e remendar. Você nunca será um bom programador e não poderá criar um bom aplicativo PHP a partir do zero.

Como você está em uma organização que usa uma estrutura complexa?

Passe um pouco do seu próprio tempo para resolver o problema em comum, neste caso, o PHP até obter o toque do que mencionei acima. Caso contrário, você nunca encontrará sua confiança na programação e continua dizendo a si mesmo: "Eu sei que essas são as etapas são a maneira de fazê -lo". Isso não é programação (um pouco extremo :)).

Estrutura complexa vs. simples

Algumas das estruturas, embora usadas por muitos, são apenas esmagadoras. Há muitas camadas que você perderá. Essas estruturas geralmente são para algo que é estereótipo, muitos arquivos de configuração e, se você quiser fazer algo incomum, é melhor o escritor da estrutura (um pouco exagerado aqui :)). Não quero mencionar nenhum nome aqui, mas você saberá quando encontrar um.

O CodeIgniter é um produto da equipe Ellislab e seu principal produto é o Motor de Expressão que se desenvolveu com o CodeIgniter.

Depois de algum tempo de uso do IC, descobri que o uso da estrutura YII é mais conveniente. Tem muitas extensões. E não é tão difícil de entender com bons documentos.

BoloPhp, eu acho, perto do Codeigniter.

Eu recomendaria fortemente o uso de uma estrutura para algo mais do que um script simples. Às vezes, pode parecer exagerado, mas eu argumentaria que não é. Eu tive algumas ocasiões em que pensei que não precisava (aplicativo simples, crud básico em tabelas de 3 dB).

Logo depois, me vi fazendo MySQL_escape_String manual, filtragem XSS e assim por diante. A partir de então, escrevo apenas código não-quadro quando acho que a configuração levará mais do que o código de trabalho. E isso acontece muito raramente.

Se eu precisasse recomendar uma estrutura PHP, eu teria que ir com o CodeIgniter ou Yii Framework, dependendo de quão complexo é o seu projeto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top