Re: Silly OOP question
| From: | Daniel Schierbeck | Date: | Sun, 14 Nov 2004 12:54:57 +0000 |
| Subject: | Re: Silly OOP question | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-201963@lists.php.net to get a copy of this message | ||
Brent Clements wrote:
I've always wondered this about OOP and maybe you guys can answer this question. I'm writing a php application and I'm trying to figure out the correct way to right the oop part of this application. for instance. I have a "project.class" file that has functions for dealing with individual projects because you break down ideas into singular entities in OOP(as I understand it) But what if I wanted to deal with multiple projects such as getting a list of the projects in my database, should I create a function in the "project.class" to handle the now plural request, or should I create a "projects.class" file that has a function called "getProjects". Hopefully I'm explaining this question right. It makes sense in my own head. :-) Thanks, Brent Well, if I get you right, you have a class named Project holds information about a project. Now you want a list of the current projects. I'd make a new class, named ProjectList or something similar, that can be used to administrate your projects.class Project {
public $name; // The project's namepublic $ownerID; // The user ID of the project's owner /* The constructor. Note: this only works in PHP5 */ public function __construct ($id) { $db = mysql_connect(); // Get project info...
$this->name = $result['name'];$this->ownerID = $result['owner']; } } class ProjectList { public $projects = array(); public function __construct () {
$db = mysql_connect();$query = mysql_query('SELECT id FROM projects'); $result = mysql_fetch_array($query); foreach ($result as $project_id) { $this->projects[$project_id] = new Project($project_id); } } public function listProjects () { return $this->projects; } public function addProject ($name, $owner) { // ... } public function deleteProject ($id) { // ... } } -- Daniel Schierbeck Help spread Firefox (www.getfirefox.com): http://www.spreadfirefox.com/?q=user/register&r=6584