Two things strike me as wrong with your thinking:

(1) The idea that you have a separate DAO for each entity instead of a 
single generic DAO which can act for any entity in the system.
(2) The idea that pagination requires its own class, and therefore needs 
this "is-a" and "has-a" nonsense.

As for (1) even in my pre-OO days I was used to using a single generic DAO 
for all database access. The only time that more than one DAO existed was 
for a different DBMS engine. This is why I have one DAO class for MySQL, one 
for PostgreSQL and another for Oracle. If you are incapable of writing a 
single generic DAO then it just shows that you still have a lot to learn. 
For an idea on how this works take a look at

As for (2) it should be obvious that pagination is not an entity in its own 
right that has its own properties and methods, it is merely a function which 
can be performed on any entity within the system. It should also be obvious 
that the requirements of pagination cannot be satisfied in a single class as 
some of the processing has to be handled in the presentation (UI) layer 
while the remainder is handled in the data access layer. The presentation 
layer needs a means to submit a request for a particular page number as well 
as the page size (rows per page). These two values are sent to the DAO which 
then translates them into values for LIMIT and OFFSET. After the DAO has 
issued the sql SELECT statement it needs to return two values - the current 
page number and the last available page number. The presentation layer then 
needs a mechanism to display these two values. This is explained in

If you still don't see how this works then you can run my sample application 
at You can even 
download the code so that you can step through it with your debugger.

Tony Marston

""MEM"" <> wrote in message 

I have a Animals DAO class that I'd like to apply a pagination class to it.

Between this two classes, there will be a composition relation (more
precisely, an association one). My question is:

Is a Pagination that "has a" Animal. OR Is a Animal that "has a" pagination?
Should we create on Class Pagination a property named $_animal OR, should we
create on class Animal a property named $_pagination?

I'm inclined to accept the second one, since, if I put the property $_animal
on my classe Pagination, I will end up, on the Pagination Class, with so
many properties as pagination objects... :s

Any help please?

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to