Erros de Terceiros

44 respostas
laravelphp7
L

PS: Acho que não é necessário, mas percebi que pra alguma pessoa, pode parecer, afirmo que este tópico é baseado no meu conhecimento e opinião. Não há definições que acusam terceiros de cometer erros e a reparar esses erros.
Hoje, descobri, sem querer, duas coisas que me deixaram embasbacados.
Primeira, descobri que uma função PHP minha funcionava, perfeitamente, em ambiente PHP 7.2, mas no Laravel, não 100%, somando a isso a opinião de um colega que disse que o problema deveria ser da renderização do Laravel que causa conflito com o Ajax.
Segunda, um recurso muito simples do JQuery para pegar um data-id de um botão, me fez perder uma meia hora, para descobrir que ao tentar capturar um atributo dinâmico de um elemento DOM, usando o this para referênciá-lo, no caso da função on(), usar arrow function não dá certo.

44 Respostas

L

embasbacado e arrow, corrigindo, aqui, por erro do servidor GUJ.

J

Nao tendo necessidade, quanto menos ferramentas de terceiros usar melhor. Pode acontecer com qualquer framework, não só com Laravel. E piora quando o framework sai da moda.

No caso do PHP, salvo bibliotecas que nao amarram, nunca tive necessidade de usar frameworks de terceiros, pois sempre achei PHP muito fácil.

J

Sobre arrow functions, isso é da linguagem javascript. Jquery é só uma lib.

J

Exemplo:

<button id="botao">Teste</button>
$('#botao').click(() => {
  alert('ok');
});
D

Erros de terceiros, parece que ficou jogando o faltor Erro só para um lado? eu acabei entendendo que o problema são as ferramentas, é isso?

Você poderia colocar os dois problemas para serem analisados pela galera?

L

Certo, esse não foi um dos erros que cometi, mas um outro que cometi é de não ter detalhado que o JQuery aceita arrow functions sim, mas na função on, quando precisa um usar um atributo dinâmico, usando o this, ele não aceita.

L

Seja no título ou no conteúdo do tópico, não me lembro ter afirmado que os erros são somente de terceiros, se afirmei isso, por favor, aponte onde.

D

@LeandroCGMS você indicou no titulo sim, por falta de pontuação, não foi uma pergunta, você disse Erros de terceiros ou seja, você explicitou que tem erros de terceiros além do mais o contexto da pergunta indica problema no Laravel e no jQuery não aceita aero function que é um inverdade porque jQuery é javascript como apontado por um amigo.

Desculpas mas, você apontou um lado do problema! que são as ferramentas por isso eu perguntei se poderia colocar os dois problemas, para que possamos indicar, ajudar ou até concordar!

L

Que língua você está usando pra afirmar que tem falta de pontuação? Onde “Erros de Terceiros” precisa de algum tipo de pontuação? Resume uma breve descrição sobre o conteúdo e não é uma pergunta.
O título é claro pra entender que o tópico é sobre erros de terceiros e não tem nada que possa levar a acreditar que o título afirma que os erros são, somente, de terceiros.
Sobre o que afirmou ser inverdade, respondi ao outro colega que faltei por detalhar em que situação não dá certo usar arrow function.
Sim, O lado do problema é o assunto do tópico, pra mostrar que nem sempre, os erros são do nosso código.

D

Justamente esse tipo de perguntas não leva a lugar nenhum e pessoas que fazem esse tipo de questionamento parecem que o grande problema são com elas mesmas (pelo menos eu acho isso, posso estar enganado), não tem contextualização, não pontua o que acredita, não vê que as pessoas querem ajudar de todas as formas e eu postei algo querendo os dados mediante a sua afirmação e vê achando que eu ficar nervoso com esse tipo de atitude e além do mais é um desrespeito porque para que isso então? é só para constar esse texto no site, só para dizer que o as ferramentas não prestam, só para criar comentários inválidos, até onde eu sei, um fórum é uma discussão saudável, até porque o meu primeiro post contextualiza um algo referente as dois problemas, indique nos problemas qual é o verdadeiro problema enfim

Post totalmente inválido, porque não prova a ineficiência das ferramentas.

L

Título não precisa ter ponto, criatura. A pontuação obrigatória vem no corpo do tópico. Aff.
Quem está querendo mostrar a ineficiência das ferramentas?

D

para terminar

Se você coloca no titulo

Erros de terceiros? é uma pergunta.

se não coloca nada é um afirmação.

Para mim eu já dei a minha contribuição, obrigado sem mais.

L

Eu acabei de relatar que é uma afirmação.

D

Afirmação:

Não é problemas nas ferramentas, o problema é como utiliza um caixa preta, se não seguir as normativas da caixa, não vai funcionar!, é assim com Laravel, Java, C# MVC, Angular, jQuery tem que seguir o que eles querem que você faça.

Se nós pesarmos que o problema são com as ferramentas, temos que parar, exemplo com desenvolvimento de sistemas.

L

Eu não estou afirmando que as ferramentas não prestam, eu relato que existem erros que não são nossos.
Concordo que as ferramentas adiantam, até em meses, nosso trabalho. O fato de um determinado recurso não aceitar arrow function ou a versão do PHP no Laravel não ser a última e/ou ter mudanças não é, necessariamente, um erro, vai da opinião de cada um. Neste caso, o erro, na minha opinião, é não terem mencionado isso, mas pra maioria, talvez, nem seja um erro.
O objetivo é mostrar que há erros, além dos erros do nosso código.
Não estou culpando alguém, apenas quero mostrar detalhes fora do nosso código, como exemplo, vc achar que um código PHP 7.2 pode dar certo no Laravel e não dar.
Não há quem defina se isso é erro ou não, pq se tivesse definição, ou eu ou outros estariam errados quanto a isso.
Agora, pra mim, já deu. Mais claro do que isso, não precisa nem pra leigos. Se quiser, continue respondendo.

D

Ratificando:

Por isso que eu queria ver os exemplos dos problemas e as criticas envolvidas?

No momento que você baixa o Laravel ele explica a versão do PHP compativel! (Afirmando)

Para mim já deu faz tempo, um tópico que não agrega porque tudo é suposição.

L

Sua opinião. Tenho tudo registrado aqui. Não há definições regulamentadas quanto a isso pra dizer que tudo é suposição.

D

Claro que há, se você disse que sua função em ambiente PHP 7.2 funciona e no Laravel não, tem um erro aqui porque Laravel é framework PHP e existem versões que são correspondentes a essa versão do PHP, então suposição e afirmação errada, não ajuda, não agrega, não faz a diferença, etc …

Mas, eu vou parar realmente é difícil entender o que não é para ser entendido.

L

Onde está escrito a versão do PHP usada no Laravel 5.7.21? Me mostra o link que eu afirmo estar errado nessa questão específica.

D

Link: https://laravel.com/docs/5.7

Imagem:

L

5.7.21. Se for me dizer que é a mesma versão do PHP, então me aponte o link onde fala isso por favor.

R

Ok, qual é a dúvida?

D

é tá faltando conhecimento sobre versionamento de pacotes. o 21 que você grifou é as mudanças onde existem problemas de código e bugs envolvidos. e o que vale é a 5.7 igual está na

https://packagist.org/packages/laravel/laravel

Desculpa acho que falta um pouco de esclarecimento sobre versão do pacote, do framework e do PHP que poderia ser gerado até um pergunta de verdade.

E a outra resposta indica tudo isso:

L

Neste tópico, o objetivo foi compartilhar uma experiência baseada em conhecimentos próprios e opinião do autor.
Se há uma regra que mostre a obrigatoriedade de postar apenas dúvidas, me mostre por favor pra eu avisar a outros que, muito provavelmente, também estão a cometer este erro.

R

Entendi, apenas um tópico para debate.

J

Aceita. Se voce for debugar, this neste contexto é window. Talvez por vícios da forma antiga deve ter achado que fosse o botão. Nao é simplesmente mudar tudo pra arrow function por moda e achar que tudo vai continuar como antes, dá uma estudada melhor.

$("#botao").on("click", () => {
  alert(this); //aceita this, é o objeto window
  alert(event.target); //para voce acessar o botao
});
L

Vamos assumir que devemos subentender que até virar 5.8, a versão do PHP seja 7.1.3.
Na documentação do 7.2 não menciona incompatibilidades no que fez dar erro no meu código.
Há pontos que jogam o erro pra mim e há pontos que jogam o erro pra eles.
Não sejamos juízes, apenas opinantes por favor.
Olha as opções de escolha do 5.7:

composer global require laravel/installer
composer create-project --prefer-dist laravel/laravel blog

Há pontos que jogam o erro pra mim e há pontos que jogam o erro pra eles.

D

Falta conhecimento ! tente buscar… é uma dica construtiva

L

Com function() é o botão.

J

Mas voce decidiu usar arrow function, quem mudou foi voce.

L

Por isso disse que não há quem defina de quem é o erro, pra mim, é erro não informar isso.
Ou errei em não ver essa informação em algum local?

J

Primeiro voce fala que nao aceita arrow function, provamos que aceita.
Depois voce fala que nao aceita this, provamos que aceita.
Provavelmente está se precipitando ao programar o resto também.

L

Erros eu cometo todos os dias e vários, mas esse eu já tinha corrigido lá em cima, então vc está repetindo um erro meu que já tinha corrigido. Eu não disse que não aceita this. Minha nossa, agora, até aumentar o erro já corrigido já está fazendo!

Tinha escrevido assim:
Certo, esse não foi um dos erros que cometi, mas um outro que cometi é de não ter detalhado que o JQuery aceita arrow functions sim, mas na função on, quando precisa um usar um atributo dinâmico, usando o this, ele não aceita.

Preciso explicar que ele se refere ao JQuery? Se referisse ao this, então seria o this que não aceita algo.

J

mas na função on, quando precisa um usar um atributo dinâmico, usando o this, ele não aceita.

Preciso explicar que ele se refere ao JQuery? Se referisse ao this, então seria o this que não aceita algo.

Aceita, já foi exemplificado no post anterior.

L

Como na mensagem que eu já tinha explicado a falta do detalhe; que já tinha corrigido a informação; que vc volta a essa mensagem incompleta, aceita o this, mas referencia outro objeto que não o botão.

M

Não funciona?

$('#botao').on('click', function () {
    console.log($(this));
});
J

Exato, quando você mudar um código tem que se atentar ao que é this ao debugar. Neste caso com arrow function, para acessar o elemento dinâmico (a exemplo do botao), use a propriedade target do evento.

L

Concordo em parte com vc.
Concordo
Posso ter cometido mais de um erro, entretanto o erro que percebo é ter acreditado num professor que disse ser arrow function, apenas, uma forma mais simplificada de escrever a função.

Não Concordo
Mas se é ser possível pegar o atributo de um botão, usando arrow function, no mínimo, deveremos escrever muito mais código, neste ponto que não concordo com vc.

J

Isso ai é entre você e seu professor. Nao tem o que concordar ou nao comigo, exemplifiquei fatos.

L

Correto, mas um de seus fatos não prova ser possível pegar o atributo de um botão usando window.target de uma forma simples, se é possível.

J

Só pra deixar claro, quem quer ou não provar isso é voce ou seu professor, nao tenho nada haver com isso. Só estou te passando exemplos de como fazer da forma correta. E muito menos se é pra voce usar ou nao arrow function só por que é novidade, simples ou nao simples. Só citando mais uma forma para voce acessar o botao vinculado ao evento com arrow function:

$("#botao").on("click", (e) => {
  alert(e.target);
});
L

Eu cheguei a curtir e já ia marcar como solução, mas resolvi testar e seu código, não funciona ou está faltando algo e mesmo assim fica menos simples. Preciso do atributo data-id do botão. Ele traz o elemento completo.

J

Funciona: https://jsfiddle.net/tg6yo90d/

O objetivo do meu código é mostrar que é possível acessar o elemento vinculado ao evento, no caso o button. Se voce precisa de algo mais, sao outros 500, abre um outro post e informe o código que está tentando fazer e o erro que dá ao debugar, nao temos como adivinhar.

J

Só pra exemplificar como você pode pegar qualquer atributo: https://jsfiddle.net/f4n6kh59/

Criado 10 de fevereiro de 2019
Ultima resposta 11 de fev. de 2019
Respostas 44
Participantes 5