<p>My understanding of the MVC is as follows (incase it's horribly wrong, I am afterall new to it)</p>

<ol>
<li>Models are the things that interface with the database</li>
<li>Views are the design/layout of the page</li>
<li>Controllers are where everything starts and are essentially the page logic</li>
</ol>

<p>I'm using <a href="http://codeigniter.com/" rel="noreferrer">CodeIgniter</a> but I would hazard a guess it's not just limited to that or possibly even just to PHP frameworks.</p>

<p>Where do I put global classes?</p>

<p>I may have a model for Products and I then run a query that collects 20 products from the database. Do I now make 20 models or should I have a separate class for it, if the latter, where do I put this class (other controllers will need to use it too)</p>

In
CakePHP
there are 3 more "parts" :
Behaviors
Components
Helpers
Logic that are used by many models should be made as a behavior. I do not know if CodeIgniter have this logic or not, but if it doesnt, I would try to implement it as such. You can read about behaviors
here
.
(Components helps controller share logic and helpers help views in the same way).