Probably one of the most important principles in Software Engineering is DRY (Don’t Repeat Yourself!), every time you found yourself writing the same code more than once, in a same project, or in different projects then you have to re-think of what you have done. For example, how many times you have wrote authentication system for your projects? Or email class to send emails with PHP? If you’re doing it over and over again, maybe a package management could help you on this.