Jump to content

Best way of classes


mausie

Recommended Posts

Hi all,

 

I’ve got a question about OOP Classes and the best way to use ‘em.

 

Mostly I use classes like car.

$renault = new car();

 

Then you can Set values, Update the values to db with internal functions like $renault->setBrand.

But I also want to get all cars from the db with a function to list ‘em all on my site.

Should I create 2 classes then? Car and cars? (cars->getAllCars)

 

And what if I have a class cars to use getAllCars. Is there a easy to to convert all received data  into a Array with objects which are member of the class car?

 

A other way is just the class cars with all functions like updateCar($id, $brand, etc).

 

Im really wondering what’s the best way to build my applications!

 

Thanks,

Maurice

 

 

Link to comment
https://forums.phpfreaks.com/topic/104671-best-way-of-classes/
Share on other sites

Ok so cars holds all common functions.

And car will be used for car objects (Set values etc) and then the update/del functions from car refer to the functions in cars. Right?

Sounds very logic!

 

I assume cars will be a static class then? Or should i create a object and pass it to the constructor of car?

Link to comment
https://forums.phpfreaks.com/topic/104671-best-way-of-classes/#findComment-536537
Share on other sites

  • 2 weeks later...

Static classes are usually to be avoided. It's usually better to make a singleton class (a class with only one instantiation) or use a registry if you find you're using too many singletons.

 

so in each "car" you use $cars = cars::getinstance(); to get the instance of car. That way you don't have to worry about passing it to every method you need, or the constructor.

 

It's debated - but I'd prefer to use the constructor of car to get the instance of "cars", rather than passing it as an argument to allow you to only change it in the constructor, rather than whenever you instantiate a "car" object.

Link to comment
https://forums.phpfreaks.com/topic/104671-best-way-of-classes/#findComment-544966
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.