Meu trabalho recente na Mozilla me fez criar uma transação de autenticação semelhante ao OAuth entre o Bugzilla e o Phabricator. Essa tarefa me levou de volta ao mundo do PHP, uma linguagem que não toco muito (desde a versão ~5.2) além de criar temas e plug-ins do WordPress para este blog. Voltar a uma linguagem que não se toca há anos é como uma experiência completamente nova; você percebe padrões e métodos que não teria imaginado em anos anteriores.
Parte da transação de autenticação exige que o Phabricator receba uma solicitação POST que contenha dados JSON. Eu esperava que os dados fossem parar no $_POST
mas a variável estava vazia; como diabos obtenho os dados do POST? Para obter o JSON do POST com PHP, o senhor usa o seguinte:
# Get JSON as a string $json_str = file_get_contents('php://input'); # Get as an object $json_obj = json_decode($json_str);
file_get_contents
que eu achava que era usado apenas para recuperar conteúdo de arquivos locais ou URLs tradicionais, permite que o usuário use o php://input
para recuperar dados JSON como uma string. A partir daí, o usuário usa json_decode
para transformar a string JSON em um objeto/array funcional.
Faz sentido que o JSON não seja tratado por meio do $_POST
já que não há realmente nenhum key
por si só; essencialmente, o senhor só precisa do “blob” de dados como um todo, que é fornecido pelo php://input
. O senhor pode testar o Manipulação de JSON+POST com cURL.
7 Funções essenciais do JavaScript
Lembro-me dos primeiros dias do JavaScript, quando era preciso uma função simples para quase tudo, porque os fornecedores de navegadores implementavam recursos de forma diferente, e não apenas recursos de ponta, mas também recursos básicos, como
addEventListener
eattachEvent
. Os tempos mudaram, mas ainda existem algumas funções que todo desenvolvedor deve…39 Shirts – Deixando a Mozilla
Em 2001, eu tinha acabado de me formar em uma escola de ensino médio de uma cidade pequena e estava indo para uma faculdade de uma cidade pequena. Encontrei-me no pitoresco laboratório de informática, onde os computadores de baixa qualidade apresentavam dois navegadores: Internet Explorer e Mozilla. Foi nesse laboratório que me apaixonei…
Múltiplos planos de fundo com CSS
Qualquer pessoa que esteja no setor de desenvolvimento da Web há mais de cinco anos sabe que há certos recursos que já deveriam existir há vários anos. Um desses recursos é o HTML5 placeholderUsamos shims JavaScript por uma década antes do surgimento do placeholder…