在CodeIgniter中设计库

I am about to start writing my first big CodeIgniter application, but before I get started I was wondering what the role of libraries should be. I'm a newbie to MVC, but from what I gather the model should be where the data structures are stored (business logic). So is the library a place to write application logic, in addition to controllers? Is it a good idea to combine models in libraries?

For example, I am going to write a member management system that will have profiles and messaging. What should the MVC + L (library) setup look like? 2 models (profile, message) and a library that combines them? A library for each object? No libraries, just models and controllers?

Libraries in CodeIgniter are simply PHP classes. Anytime that you would normally write a PHP class, in CodeIgniter you would write a 'Library.'

For the most part, data wrangling such database calls or massive data manipulations should go in a Model. Obviously HTML with small amounts of PHP go in Views, and user interaction belongs in the controller.

You would probably want an Authentication library, which would be a PHP class. However, there are several open source libraries available such as Tank Auth and DX Auth that you can look at.

Rule of thumb: A traditional PHP library is usually a bunch of related functions, such as date functions, but in CodeIgniter would be a helper. A traditional PHP class/object would be a CodeIgnter library.

Never be afraid to read the source code in the system/helpers and system/libraries folders

i propose just models and controllers. i think library is for logics that can be reused, not application specific one. And i think if controller and model can did the job, just go for them.

Business logic should be in the controllers, only interaction with the database should go in the models.

My question I ask myself where to put something is very simple. I look at the "ifs" in my model. Are those ifs there to check the data? If they are checking wether the interaction with the database succeeded or not, the code is where it belongs. If it checks values of data returned, it is probably in the wrong place (and should go in the controller).

As Zack said, HTML with minor php code should go in the views.

Libraries are more for supporting classes. I have made a library (class) for a special calender in the past for instance.

If you don't even need a class, put it in a helper. (for instance because you only have one specific string manipulation function, but want to use it in different places)

I agree to what Dennis Decoene is saying. But after some thinking, then why are auth library developers creating a mix of libraries and helpers in their auth application where their libraries are doing far more "unrelated" procedures compared to the php classes nature.