Normally, I would too, but the methods for magic getting and setting in the Sitepoint article are just a way to simplify having to write out all those get and set methods. I don’t think that is a bad thing. It avoids clunky entities with tons of getters and setters classes. Something Benjamin Eberlei also points out could be a way to reduce them (but not get rid of them).
Alex also gives good advice in the comments of his post:
As a rule of thumb: use PHP magic with caution, and make your class properties always protected/private.
I am not sure that is Benjamin Eberlei’s point. I think it is more about the “plain get and set methods” used in the FOSUserBundle’s code and them being “too direct” (for lack of a better explanation) and lacking extensibility. But, what Ben fails to make clear is the fact that the FOSUserBundle User class he links to is supposed to be extended or reused. In other words, with the FOSUB User class, we are not really at the last extended version (or shouldn’t be). Yes you could use it, but that is not the point.
What Ben creates as “proper methods” to avoid the getters and setters are what you should see in a final User class. So, I believe he isn’t correcting the User class to not have get and set methods, he is extending the user class properly, in order to use the User object properly.
I think the real point is, you shouldn’t allow the client code (the code finally using the domain objects) to access getters and setters directly, which is what the SitePoint article and Ben both try to detail and thus, in essence, both are making the same point, just in different ways.
If you notice in the Sitepoint client code at the end, you never see “setX” or “getX” anywhere. This is what is wanted. If you want a user name from a blog post comment, you just have
$comment->user->name;
That is my humble, possible totally wrong and relatively noob like OOP point of view on this. 
Scott