Personally I want less rules to remember, my editor will create doc blocks containing that tag by default so the chances that I forget removing it if it were a rule are pretty high. On the technical side, there is no definition for a constructor. It is just a function that is called after memory is allocated for a certain instance, you are actually quite free of calling it yourself, which makes it no different yo any other function.