PHP5 Temel Odaklı nesne modellemesi

1 Cevap php

I use zend framework and I would like to have your advice to modelize my classes. I have 3 classes Patrimony.php Project.php and Version.php. Version extends Project extends Patrmimony. In other hand I have a folder structure like this /data/patrimonies/projects/versions/

Ben babadan kalma bir değişken $ project which contains an instance of project, how do I instanciate my class ( _construct () params) varsa, bir Tasarım Desen ya da böyle bir şey kullanmak zorunda olmadığını bilmiyorum. Kısaca ben OOP ile çok kafa karıştırıcı duyuyorum.

:-) Bana ışık Lütfen

class Admin_Model_Patrimony { }

class Admin_Model_Project extends Admin_Model_Patrimony { }

class Admin_Model_Version extends Admin_Model_Project { }

1 Cevap

Ben kompozisyon desen bakmak ve bu yaprakların farklı sayıda oluşturmak istediğiniz zaman interessant görünüyor. Benim durumumda biri babadan kalma bir proje ve herhangi kuruluşlar için tek bir sürüm her zaman vardır.

Amacım sadece ben sadece proje hakkında bilgi ihtiyacı olan bir babadan kalma othertimes hakkında bilgileri kullanarak bazen.

I show you how I have design my classes, see the last lines for execution process and expected values. I think this code doesn't work so how do I do to set variable of the parents when I instanciate a child?

// Version
class Version extends Project
private $this->_patId;
private $this->_proId;
private $this->_verId;
{
public function __contruct($patrimonyId, $projectId, $versionId)
{
$this->_patId = $patrimonyId;
$this->_proId = $projectId;
$this->_verId = $versionId;
}
public function getVersionId()
{
return $this->_verId;
}

// Project
class Project extends Patrimony
private $this->_patId;
private $this->_proId;
{
public function __contruct($patrimonyId, $projectId)
{
$this->_patId = $patrimonyId;
$this->_proId = $projectId;
}
public function getProjectId()
{
return $this->_proId;
}

// Patrimony
class Patrimony
private $this->_patId;
{
public function __contruct($patrimonyId)
{
$this->_patId = $patrimonyId;
}
public function getPatrimonyId()
{
return $this->_patId;
}

// Execution
$version = new Version(1,2,3);
$version->getVersionId(); // should return 1
$version->getProjectId(); // should return 2
$version->getPatrimonyId(); // should return 3