Solved

Items Class in PHP, abstract class products, example

Posted on 2010-11-14
10
992 Views
Last Modified: 2012-05-10
Hello,
I am building an inventory, where items will be some sort of products.

I have a dilemma in how to write this class in php5, I want to write an abstract class item.

Now, which is a better approach, to write a separate DataManager interface to create and manage items (ex. add/update them into the DB) or to create methods inside the items class?

If you have an example of how to approach this situation feel free to share.

Thanks,
Eugen
0
Comment
Question by:navaru
  • 4
  • 3
  • 3
10 Comments
 
LVL 108

Expert Comment

by:Ray Paseur
ID: 34131316
Is this a classroom assignment?  Can you show us an example of the code you've tried already?
0
 
LVL 108

Expert Comment

by:Ray Paseur
ID: 34131335
0
 

Author Comment

by:navaru
ID: 34132106
It's not a classroom assignment, I'm new to OOP and I see that almost everyone has his own method of creating abstract classes. I quite don't fully understand some aspects, how should I approach this to be maintainable over time if I want to extend the items properties and category.  
0
 
LVL 12

Expert Comment

by:marklorenz
ID: 34145358
This should answer your questions:

"PHP 5 introduces abstract classes and methods."
http://php.net/manual/en/language.oop5.abstract.php

 As this describes, an abstract class cannot be instantiated, but instead it is subclassed with concrete classes that can be.  I can answer any OO questions, but I am not a PHP expert so can't help with the details.  Glad to help further if I can...Mark
0
 
LVL 108

Expert Comment

by:Ray Paseur
ID: 34145545
Just going back to this in the original post, "I want to write an abstract class item."

Please tell us: why do you want to do that?  Can you show us an example of the code you've tried already?

Thank you, ~Ray
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:navaru
ID: 34154523
In the application I want to build, an item has properties and belongs to a category. Some of the Items are products to be sold, some are office inventory (furniture, appliances and so on).

I wanted to know how to best approach this so I can modify it over time and to have an easy readability over the code.

I thought it this way, every object is an item, but with different properties and purposes, but every item has a basic set of properties that I need in all of the situations.

abstract class item
{
  // basic data model
  // basic methods
}

interface dataManager
{
  // CRUD
}

products extends items implements dataManager
{
  // extra details
}

0
 
LVL 108

Expert Comment

by:Ray Paseur
ID: 34154607
That seems like a reasonable design.  Can you please post the code you have started with?
0
 
LVL 12

Accepted Solution

by:
marklorenz earned 500 total points
ID: 34157399
How about this design?  (see attached diagram)

In this, each Item has its attributes and optionally is part of a Category and/or is Sellable.  You can expand upon this by subclassing Item as needed.  Moving between non-retail items and retail (for sale) only requires the Item to answer isForSale() return true or false. Inventory Item class diagram
0
 
LVL 12

Expert Comment

by:marklorenz
ID: 34157408
btw, you may want to put this question in the OMG UML zone.
0
 

Author Closing Comment

by:navaru
ID: 34741487
I was a good Idea, thanks
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Introduction This question got me thinking... (http://www.experts-exchange.com/questions/28707487/GLOBALS.html) Why shouldn't we use Globals? This is a simple question without a simple answer.  How do you explain these concepts to a programmer w…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now