Regarding source folder hierarchy, there are always some common features, such as the src, doc or test folders, which have rather easy-to-understand contents.
However, I realized that big projects have both a lib and vendor folders, while I had always thought they were the same, as their names hint at including “third-party libraries from external vendors”. Though, seeing both in the same project means there is a difference.
I couldn't find any information nor on Google nor on sources such as the Filesystem Hierarchy Standard, even though this is actually a somehow common practice.
Here is a more detailed example with Symfony: once you create a project, you get a lib folder at the root of your project. In this folder, the following structure is found:
lib +--filter +--form +--… +--vendor +--simpletest +--symfony Here, the symfony folder contains all Symfony's core.
lib/vendorand other directories alongvendor. And they're not the only ones. “everyone can select any dir structure” Yeah well, thanks. Everyone can code however they want. If I want to callsrc“woudzigouga”, I can. I'm not asking whether I can but why others that are serious and well-known do something that looks like a good practice.libholds core libraries (absolutely essential libraries OR libraries built from the same author as the framework) andvendorholds third party libraries, I don't think there's any other sane distinction. That distinction is somewhat important for a variety of reasons, and it makes sense as a generic practice.