Things you can do, but probably shouldn't

Will Discourse have an upvote feature? Because I’d like to upvote this.

I don’t agree with that at all. This is essentially just telling you to use a bunch of setters/getters, and I would consider the use of setters/getters to generally be “bad practice” in PHP. Java is a different story though.
I mean, a lot of your classes may not require much to be set in the constructor, the would as different methods to process things as needed, but I really think it’s a bad idea doing it the above way just for the sake of it.
General rule of thumb is that if a function (or constructer) is taking in more than five arguments, you’re probably doing something wrong…or at least, there is a better way to do it.

For me, I’m sort of in-between. Some suggested, that you never use constructor and instead rely on static methods. Ex.

User user = User.getInstance();

User user = User.createAdminUser();

instead of

User user = new User(Role.Admin);

This gives you flexiblity where you can use Singleton if need be or even return new instance of a subclass. Also, make the function name more readable then second guessing by what arguments are passed. Ex.

AdminUser user = User.createAdminUser();

One thing this would be very true is when you create new Boolean Object. No one needs to create new instance for Boolean. Instead create a static method

Boolean.getFalse();
Boolean.getTrue();

You just need 2 instance for entire application instead of seeing numerous new Boolean(true/false);

Off Topic:

Yes, it has a “Like” feature where you can show your appreciation to a post/reply indicating it as an answer you strongly agree with it. This will also help cut out a lot of the “fluff” posting we see here because instead of saying “I agree” or “me too” they can just like the post/reply that represents their thoughts as well.

No doubt – I just don’t like reading material that advises you of doing everything in one certain fashion when it comes to PHP.
That said, this is where I will contradict myself, because I do believe there are some set rules that I abide by (I personally detest getters/setters, magic methods, singletons for example), but these rules are for me and the way I like to write code. But before I rant on, I think a lot of the discussions stem around the simple fact that most of the PHP programmers who have opinions on advanced topics usually are fluent in another language as well…we all tend to bring our ideas from one language to another, it’s only natural. It’s just often not necessarily the best way to do things, but then again, without the influences of languages like Python and Ruby, PHP would still be a pretty terrible language, rather than the excellent one it is today.