A Symfony é uma escolha melhor do que a Zend para uma loja de desenvolvimento web (10+) porque é uma estrutura de pilha completa?

Minha equipe no trabalho está considerando usar uma estrutura para o desenvolvimento de sites e aplicativos. Alguns dos idosos estão convencidos de que devemos usar o Zend Framework porque é mais fácil escolher e escolher os resources para que a estrutura seja leve.

No entanto, tenho medo de que eles apenas vejam as vantagens técnicas que um quadro leve terá. Na minha opinião, é melhor ter uma estrutura de pilha completa (e eu sou proponente da Symfony) porque

  1. Ele também nos fornecerá uma maneira padrão de trabalhar sem escrever nova documentação.
  2. Se quisermos usar novos resources, só teríamos que ler a documentação para ver como ele pode ser usado em vez de ter que construí-lo em nossa configuração do Zend primeiro.

Não espero que todas as minhas perguntas sejam respondidas por todos, mas isso é o que estou procurando na resposta:

  • Eu tenho um ponto aqui?
  • Você esteve em uma situação semelhante e como você lidou com isso?
  • Você tem mais argumentos que eu poderia usar OU poderia me fazer reconsiderar minha própria opinião?

O contexto: trabalho em uma pequena loja com cerca de 10 programadores. Nós, principalmente, programamos o PHP. Utilizamos uma estrutura desenvolvida em casa e uma biblioteca ORM que são praticamente indocumentadas e que não possuem nada além dos resources mais básicos (sem validadores, sem transactions, sem cache, sem autenticação)

E por que não os dois? Tenho vindo a usar o symfony desde 2006, tenho sido um fã de Doutrina real por um ano e, por alguns meses, alcançamos muitas etapas na escala de produtividade, integrando os componentes do Zend diretamente em nossos aplicativos do Symfony.

A verdadeira força da symfony reside no desacoplamento de tudo e na fácil extensibilidade da estrutura. Você pode replace quase todas as camadas do todo. Basta copiar / colar o diretório Zend em / lib /, e adicionar este singleton em /config/ProjectConfiguration.class.php:

static public function registerZend() { if (self::$zendLoaded) { return; } sfToolkit::addIncludePath(sfConfig::get('sf_lib_dir') . '/vendor', 'back'); require_once(sfConfig::get('sf_lib_dir') . '/vendor/Zend/Loader.php'); Zend_Loader::registerAutoload(); self::$zendLoaded = true; } 

E use livremente qualquer componente Zend que você possa gostar. Você pode estar interessado no novo tutorial do Jobeet, e especialmente na parte de Pesquisa, que usa o Zend_Lucene_Search.

O Symfony é realmente fácil de usar e pode obter um site totalmente funcional com sessões, armazenamento em cache, teste funcional e funcional, implantação automatizada e mais funcionando em um período de tempo muito curto. Você só precisa se preocupar com o código para acessar e exibir seus dados. Whist pode não ser tão leve como uma implementação de roll-your-own, a quantidade de código que você deve manter será menor.

O Propel / Criool ORM funciona bem, construiu em validadores etc e está configurado para ser extensível fora da checkbox.

Ao fazer a transição de uma estrutura interna para a Symfony, eu consegui reutilizar muito código da biblioteca simplesmente colocando-a em um dos diretórios do lib que o Symfony faz na boot.

Embora eu não tenha usado, existe uma ponte Zend integrada no Symfony que permite usar módulos Zend, se necessário.

Espero que ajude.

Acho que a documentação do ZF e o envolvimento da comunidade são melhores. Eu também gosto do esquema de nomeação, codificação padrão e extensibilidade do mesmo. A ZF também parece ter uma série de novos resources e melhorias em classs existentes, como um projeto de código aberto, de muitas pessoas diferentes trabalhando em seus próprios projetos de animais de estimação.

Eu realmente não vejo como a Symfony é uma vantagem para um grupo de 10 programadores. Claramente, você deve configurar relativamente rapidamente uma configuração padrão para novos projetos e ter muita extensibilidade construída em cima e além de ZF.

Como ZF não é “full stack”? Parece conter todos os elementos que o Symfony faz, e depois alguns. Além disso, a ZF tem uma abordagem “escolha o seu veneno”, permitindo que você use diferentes peças em diferentes methods. (Como exemplo, usamos o Zend_Config em muitos lugares diferentes, para que todos possam esperar um sistema de configuração razoavelmente uniforme, mesmo em pequenas peças de código).

No entanto, tenho medo de que eles apenas vejam as vantagens técnicas que um quadro leve terá. Na minha opinião, é melhor ter uma estrutura de pilha completa (e eu sou proponente da Symfony) porque …

Depende muito do tipo de aplicação que você está construindo. Se você estiver construindo muitas aplicações de baixa complexidade, principalmente de conteúdo, a Symfony brilhará. Por outro lado, se o seu aplicativo não se encheckbox no paradigma de objects nus do Symfony (Por exemplo, se é complexo e não totalmente focado no gerenciamento de conteúdo), você pode achar mais um obstáculo do que uma ajuda.

Eu tenho experiência limitada com qualquer um, mas um bom ponto de partida para definir “padrões” para o Zend é seguir seus tutoriais para usar os diferentes módulos – muitos deles dão padrões saudáveis ​​que funcionam para 99% dos projetos lá fora.

Eu diria que se trata do que você precisa: Zend para flexibilidade, a Symfony para um início mais rápido e padrões pré-desenvolvidos se o seu projeto não tiver necessidades extraordinárias.