according to the definition: something happened in the past has a result now.
ex: i have broken my leg ( now cant walk)
how about this one: i broke my leg yesterday, now i cant walk << this is the same meaning.
confuse again ...
As soon as you mention a definite time in the past when the action happened, you cannot use the present perfect. "Yesterday" is a definite time in the past.
There is a big grammatical difference. In the first sentence, the focus is clearly on the result. In the second sentence there are two separate actions, one in the past and one in the present. We assume the two actions are because we know about the effects of breaking one's legs, but there is nothing in the grammar that tells you there is a connection.