abraphp / phpcounter

Registro de profissionais e censo de informações para prover um panorama do mercado
Mozilla Public License 2.0
14 stars 8 forks source link

Routing #11

Closed galvao closed 10 years ago

galvao commented 11 years ago

Essa issue é em especial pra ser debatida com o @eminetto (porque segue uma conversa que tivemos ontem), mas sintam-se livres pra comentar.

Bom, routing é um assunto, digamos assim, polêmico.

Eu estive trabalhando na configuração de routing de um outro projeto meu, testando n possibilidades, e cheguei a algumas conclusões:

  1. Conforme o Matthew comenta na documentação do ZF2, a idéia é não haver mapeamento direto entre URLs e controllers: Ref.: Link
  2. Uma das questões que me fez entender isso um pouco melhor é que não há como criar uma rota perfeitamente genérica (como o ZF1 fazia), por um motivo simples: nem todas as rotas aceitarão dados, por exemplo. Ou melhor, até tem como, mas aí a gente teria que forçosamente permitir a entrada de dados em qualquer URL, o que deve gerar problemas de performance e/ou de segurança. Além disso, como o próprio Matthew comenta, isso abriria todas as controllers para acesso direto, o que é uma idéia, em princípio, ruim.

Outra coisa que me levou a essa conclusão foi a própria documentação do ZF2. Em nenhum momento da documentação, nem na Reference Guide, nem na Skeleton, existe algum exemplo onde a controller não seja literalmente especificada na rota.

Sendo assim, a única conclusão a que eu consegui chegar foi de que, no conceito do ZF2, cada controller que é acessível via URL (invokable) precisa possuir a sua rota específica. Eu sei, é um lance cansativo pra se fazer, mas se eu entendi tão bem quanto eu acho que eu entendi, essa é a forma "correta".

De qualquer maneira vou procurar confirmar essa idéia na lista do ZF2.

@eminetto, o que acha?

eminetto commented 11 years ago

É, faz sentido. Para um controller ser acessável ele deve ser definido no invokables e ter uma rota específica para ele. Concordo que é mais seguro, mas em projetos grandes isso pode ser um stress. Você chegou a perguntar na lista ou no irc se isso é o mais correto mesmo? Se usarmos rotas genéricas é uma falha de segurança?

mlalbuquerque commented 11 years ago

Uso pouco o ZF2, mas quando usei, fiz um mapeamento 1 pra 1. Uso o mesmo no Silex e no Symfony2. Fica enorme o arquivo, com possibilidades de erros relativos a duplicação, mas acho mais seguro. Em 03/08/2013 17:26, "Elton Minetto" notifications@github.com escreveu:

É, faz sentido. Para um controller ser acessável ele deve ser definido no invokables e ter uma rota específica para ele. Concordo que é mais seguro, mas em projetos grandes isso pode ser um stress. Você chegou a perguntar na lista ou no irc se isso é o mais correto mesmo? Se usarmos rotas genéricas é uma falha de segurança?

— Reply to this email directly or view it on GitHubhttps://github.com/abraphp/phpcounter/issues/11#issuecomment-22061007 .

galvao commented 10 years ago

Confirmado na Mailing List do ZF. Em breve atualizo o repo e tô pensando até em fazer um vídeo a respeito. Mais detalhes em breve.