[Arquitetura - PHP] Ajuda/Dicas para definição de escopo

Olá pessoal!

Dúvidas cruéis pairam sobre mim, e vim partilhar das idéias de vocês para clarear as minhas e quem sabe chegar num bom senso. =)

Seguinte, estou começando a definir um escopo de projeto muito similar ao MercadoLivre, e tenho pretensões de desenvolve-lo usando PHP. Ai vem a grande questão:

Eu sempre desenvolvi pequenas-médias aplicações com PHP, mas para esse caso será algo maior, posso até dizer que será uma enterprise web application, com maior fluxo de acesso, transações, fortificação de segurança, etc.

A questão é? Onde devo me preocupar? Recomendam algum framework? (Tipo symfony, cake, etc). PHP dá conta?

Outro detalhe, pensei em usar JQuery para interações de tela/requisições AJAX e MySQL como banco de dados.

O que acham?

Espero ter sido claro, do contrário explico melhor =)

Apesar do forum ser Java…

Sou apaixonado por Arquitetura de Sistemas PHP e atuo na área.

Se seu foco é um framework OOP, a melhor opção atualmente é o Zend Framework, alem de mais consistente e permitir flexibilidade de definição arquitetural, tem vários profissionais no mercado que o domina, possui inclusive certificação: ZFCE.

Atualmente trabalho com o modelo: View <-> Controler <-> Business <-> Model, fazendo verificações se a classe que está instanciando é da camada correta, é um pouco complicado no começo mas depois que aprende a trabalhar assim fica muito fácil dar manutenção, que ocorrerão em praticamente 80% dos casos apenas na Business.

O ZF tem integração direta com a jQuery UI através da Biblioteca: ZendX.

Se a idéia é realmente fazer enterprise, pense em um banco de dados que suporte realmente a "porrada", nesse caso o recomendado é o Oracle, mas PostgreSQL provavelmente atenderá bem a necessidade inicial, se usar o ZF, poderá migrar tranquilamente, pois ele possui adapters para vários bancos sem impactos na aplicação.

Se a preocupação é performance, pense no application server da Zend: Zend Server. Vc terá opções: CE(Community Edition), Enterprise e Cluster Manager. Com eles vc configura vários níveis de cache, inclusive a nível de bytecode pré-processado, onde a apartir da primeira execução ele faz cache do bytecode acelerando o processamento nas proximas requisições.

Recomendo usar php5.3, já vem mais sólido e com vários recursos inclusive namespaces, que facilita muito nas questoes de empacotamentos com PHAR, além do core ter sido revisto dando um ganho de praticamente 30% de performance, apenas migrando de 5.2 para 5.3.

Bom, esses detalhes são superficiais, se preferir podemos conversar melhor para mais detalhes, até mesmo uma consultoria se for o caso.

Espero ter ajudado…

Abraços.

E ai Walker,

putz cara dicas de muita importancia, melhor ainda que voce ta por dentro das coisas.

Sempre ouvi falar bem das ferramentas da Zend. Essa integração com o Jquery UI e esse Zend Server eu não conhecia e caem como uma luva pra minha situação.

A partir dessas informações vou esquematizar um modelo dos componentes e devolver aqui pra ver o que acham. Por enquanto acho que consigo me virar.

Muitissimo obrigado! Espero ter ajudado outras pessoas com esse tópico.

Qualquer coisa, se precisar discutir sobre o assunto, estou à disposição.

:wink:

Boa tarde Walker,

Estou iniciando no PHP + Zend Framework + Netbeans 6.9.1 + WampServer 2.0.

Até agora não consegui sair do “lugar”, ou seja, não consigo configurar o zend no netbeans, a todo momento dá uma mensagem. Veja a última mensagem:

Sinceramente estou perdido, e os livros que adquiri não me ajudam nesse sentido. Desde já agradeço antecipadamente sua ajuda.

Forte Abraço