Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

criatividade zero

OOP, responsabilidade...

Recommended Posts

Que explicação hein JB. :thumbsup:

 

PQP essa foi fóda hein! Da para você lançar um quadrinho desse naipe explicando aplicações Web com personagens hehehhehe

 

+999³²¹

 

Uma coluna especial no Imasters apenas com estes quadrinhos. Já pensou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

João detonou mesmo na explicação :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fantástico, JBN, fantástico :clap:

Queria ter essa criatividade para exemplificações.

 

Só uma dúvida, ou melhor, confirmação.

Co:-- É parecido, mas não é igual. Quando o servidor me manda para o user agent do usuário, eu vou pela viação Set-Cookie, quando o usuário me manda para o servidor, eu vou pela Cookie.

A viação Set-Cookie é utilizada quando chamamos a função setcookie do PHP.

A viação Cookie é utilizada quando fazemos $_COOKIE['nome do cookie']

Correto? Tá meio óbvio, eu sei, mas só pra ter certeza...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Queria ter essa criatividade para exemplificações.

 

:D

 

A viação Set-Cookie é utilizada quando chamamos a função setcookie do PHP.

 

Correto.

 

A viação Cookie é utilizada quando fazemos $_COOKIE['nome do cookie']

 

Não, quando você faz $_COOKIE[ 'nome do cookie' ] no servidor, o Cookie já pegou a viação Cookie no UA, trafegou até o servidor e está disponível para uso.

 

Cada UA tem sua própria implementação para definir os cabeçalhos HTTP, isso não é relevante para os programadores PHP. O que importa para os programadores PHP é que podemos usar setcookie() para enviar um cookie para o UA e que, quando uma requisição chegar, podemos pegar os cookies que o UA enviou usando a superglobal $_COOKIE.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim, reli o seu exemplo e compreendi melhor a parte do 'trem'. Acho que estou com sono demais. Fiquei até as 3h da matina estudando pra uma provinha de Microcontroladores.

 

Enfim, em outras palavras:

Toda vez que uma requisição é disparada para uma certa URL o navegador (user agent) verifica se existem Cookies setados para o domínio daquela URL. Se existir algum, ele os envia pela requisição HTTP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enfim, em outras palavras:

Toda vez que uma requisição é disparada para uma certa URL o navegador (user agent) verifica se existem Cookies setados para o domínio daquela URL. Se existir algum, ele os envia pela requisição HTTP.

 

Exato, além da verificação do domínio, é verificado o caminho, data de expiração e também se o Cookie é para ambiente seguro (esqueci desse detalhe no texto).

 

Se o Cookie ainda for válido, o domínio e caminho que a requisição está indo for igual ao definido no Cookie, então ele embarca e vai junto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você esqueceu também da opção que bloqueia o Cookie para acesso client-side.

 

Na verdade não esqueci, foi deliberadamente omitido.

 

A ideia do texto foi deixar a "sacada" da conversa com o código. Independentemente do UA aceitar ou não Cookies, o tráfego é o mesmo.

%

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, é fácil perceber isso na conversa com Application. Porque acham que Application está tão ocupado????

 

Simples, porque as decisões acontecem ali.

 

estava lendo e relendo, e foi otima a explicação valeu :)

bom, irei por partes, então temos

 

class App

. se existe o cookie['lang']

. se está validado, ou não

. se a opção do UA for validada ou não

. define na classe I18n o idioma que será usado?

 

 

no ultimo modelo que você postou, a classe I18n faz a ponte entre a App e o pacote Localization?

é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andei pensando com mais atenção nesse assunto pois, de certa forma se aplica no que estou mexendo no momento.

 

E então surgiu o fato de que, apesar de que você, João, tem uma compreensão muito ampla do espectro da coisa, mesmo! Então, para você "conversar" com os componentes, seja para essa explicação, seja para algo pessoa seu, no passado talvez é / pode ter sido mais fácil.

 

Daí eu estava pensando, como nós, que não temos assim tanta ciência do assunto conseguiremos a respostas para as perguntas feitas aos componentes.

 

Eu por exemplo não tinha lá muita certeza de que era responsabilidade da Application cuidar da definição do idioma, mesmo porque não mexi com essa parte ainda. Até o presente momento, "limitei" à definição de Controllers e uma View Engine.

 

Como que eu sei o quê mais a Application deve fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daí eu estava pensando, como nós, que não temos assim tanta ciência do assunto conseguiremos a respostas para as perguntas feitas aos componentes.

 

Conseguir a resposta para as perguntas é fácil, basta perguntar ao :google:

 

Seu problema, aparentemente, é sobre qual pergunta fazer ao Google, não é?

 

Como que eu sei o quê mais a Application deve fazer?

 

:seta: http://bit.ly/v6dTCa

 

Agora, se precisar de um exemplo simples, ilustrando a internacionalização de uma aplicação, é só falar. :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cara, você não captou meu ponto.

 

Eu fiz isso, aliás, sempre faço antes de perguntar as coisas por aqui. Para esse caso em particular, joguei no termo "Application Controller" (é, com o espaço) e cai no site do Martin Fowler.

 

Mas três pequenos parágrafos não ajudam muito. No livro dele (tenho a versão eletrônica) deve até ter alguns exemplos ou até mesmo mais conteúdo (não sei, está em casa), mas os exemplos em Java não ajudam quem não programa nessa linguagem.

 

E esse é UM dos casos. Ao longo do desenvolvimento, outras questões podem ser sucitadas e, eventualmente, cair no site do Martin e o ciclo se repete.

 

Existe alguma outra fonte, ou algo do gênero que nos ajude a "conversar com nossa aplicação"

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas os exemplos em Java não ajudam quem não programa nessa linguagem.

 

Bruno, os exemplos em Java, C++ ou qualquer que seja a linguagem, não deveria interferir na compreensão. OOP é a mesma coisa, independente da linguagem utilizada.

 

cair no site do Martin e o ciclo se repete.

 

É melhor ir se acostumando, Martin Fowler é referência quando estamos falando sobre OOP.

 

:D

 

Existe alguma outra fonte, ou algo do gênero que nos ajude a "conversar com nossa aplicação"

 

Tente ir por partes, em vez de tentar conversar com uma multidão de participantes, limite o domínio.

 

Imagine que você vá escrever uma aplicação clone do Twitter, o que você consegue visualizar quando pensa no Twitter?

Compartilhar este post


Link para o post
Compartilhar em outros sites

João Batista Neto simplesmente genial essa explicação! Fico pensando como seria o php.net se fosse você que tivesse feito a documentação da linguagem rsrs. Parabéns, ajudou bastante! :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.