Also if someone could give me some background into some of these things.
Like why use a widget and not just renderPartial?
Why use a module and not just copy and paste models, controllers, views?
What is a portlet? What is difference between portlet, renderPartial and Widget?
I have used many of Yiis features, and now I want to start using some features I have not used before, but I cannot see myself using them unless there is good reason to. I cannot even see what difference it makes with half the features.
Also what are behaviours? I have heard about behaviours and componenets etc? What are all these things? Why use a behaviour and not just set a boolean variable?
Widget may contain complex logic while renderPartial is just a view and should not contain it.
Module itself can be configured and can have its own components.
Portlet is just a widget of a certain form.
Behaviors are affecting existing components workflow. They are described in the guide. For example, you can add a behavior to AR that will add an ability to manage nested set trees.
I’ve used such components and others as well. They are very useful for code reuse and other reasons, all in all will increase the maintainability of your software.
They are hardly an invention of Yii. Rather, they are used in software development everywhere.
I also advise you to read the docs. They will provide an excellent primer to the subject. Come back and ask specific questions here on a need basis.