The UnnecessaryStringConcat whines on:
$foo = "foo bar baz very long line you see" .
"Split in two to avoid hitting the 80th column";
But not on:
$foo = "foo bar baz very long line you see";
$foo .= "Split in two to avoid hitting the 80th column";
This have the drawback of forcing people to rewrite their code from the first form to the second for, which is worse, see https://github.com/squizlabs/PHP_CodeSniffer/issues/766
I guess that sniff doesn't allow string concatenation spread across multiple lines. In fact same goes for other sniffs that validate operator usage:
$amount = $sub_total +
$tax;
The sniff is working exactly how it was designed. If you don't like the rules, you won't be able to use this sniff. It's not a formatting sniff, so it doesn't care how many lines you split a string over or why you are doing it, it just knows you don't need a concat here.
Yes, there are good reasons for breaking a string over multiple lines, and there are a few ways to do that. This sniff is not compatible with the way you obviously do it.
All sniffs may not be activated in a particular configuration (for a particular coding style), and one can prefer:
$foo = "foo bar baz very long line you see" .
"Split in two to avoid hitting the 80th column";
over
$foo = "foo bar baz very long line you see";
$foo .= "Split in two to avoid hitting the 80th column";
So clearly some other sniffs about spaces / newlines around operators have to be disabled in order for the first one to pass, but it's a realistic case.
I agree with @gsherwood on this one - if you don't like what sniff does, then it's not a bug in sniff. Just don't use it in your standard.
I'm liking what the sniff does, I just think it does not enough, it should whine on both forms, not only the first one.
My problem is not what the sniff does or does not, by problem is much that this sniff forces people towards an uglyer, unchecked, syntax, the right fix may not be to change this sniff but to create another, I don't know how.