[PHP] Probleem met link leggen tussen twee objecten

Pagina: 1
Acties:

Onderwerpen


  • ID-College
  • Registratie: November 2003
  • Laatst online: 09:55
Hallo,

Ik heb een vraag en ik kom er echt niet uit. Ik heb drie klassen:

ProcessFragment:
PHP:
1
2
3
4
5
6
7
abstract class ProcessFragment extends MethodFragment {

    public function __construct($id) {
        parent::__construct($id);
    }
    
}


Activity:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Activity extends ProcessFragment {

    private $name;
    private $role;
    private $deliverable;
    
    public function __construct($id) {
        parent::__construct($id);
    }
    
    public function setName($name) {
        $this->name = $name;
    }
    
    public function getName() {
        return $this->name;
    }
        
    public function addDeliverable($deliverable) {
        $this->deliverable[] = $deliverable;
    }
    
    public function setRole($role) {
        $this->role = new Role($role);
    }

}


en
Controlnode:
PHP:
1
2
3
4
5
6
7
8
9
10
class ControlNode extends ProcessFragment {

    private $type;
    
    public function __construct($type, $id) {
        parent::__construct($id);
        $this->type = $type;
    }
    
}


Je moet het zien als een soort flowchart: Je hebt stappen (activities) en controlnodes (decisions bijvoorbeeld).
Ik wil de chronologische structuur aan elkaar knopen.
Dus je hebt activiteit A en die is gelinkt naar activiteit B en die weer naar activiteit C etc. Daartussen zitten decisions.

Wat ik nu wil doen is activiteiten aan elkaar knopen. Ik dacht dus:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$fromObjectId = 12;
$toObjectId = 20;
//beide waarde hierboven haal ik op.

foreach($this->Method->getProcessFragments() as $processFragment) {
    if($processFragment->getIdentifier() === $fromObjectId) {
        $processFragment->setSource($processFragment);
    }
    elseif($processFragment->getIdentifier() === $toObjectId) {
        $processFragment->setTarget($processFragment);
    }
}

Echter kan dit dus niet ;(
Nou vat ik niet precies waarom niet? Komt het omdat je je huidig object in je object wilt stoppen? (Wat dus niet kan?)
Ik heb dus een denkfoutje gemaakt.. Mijn vraag is dus nu: Hoe los ik dit op?
Hoe kan ik ervoor zorgen dat ik aan een ProcessFragment een Source object ProcessFragment hang en een Target object ProcessFragment? Iemand een tip? Het doel is om uiteindelijk via een object de volgende object aan te vragen.

Bedankt :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Hoe wil iemand hier iets zinnigs op zeggen als je niet erbij zegt wát er niet werkt? En hoe kan iemand zeggen of het doorgeven van het huidige object naar zichzelf een probleem is als je juist dáár de code niet van gepost hebt? En weet je zeker dat je op regel 5 niet een setje ronde haakjes vergeten bent?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ID-College
  • Registratie: November 2003
  • Laatst online: 09:55
8)7
Resultaat vergeten

Wanneer ik print_r doe staat er bij het object: Activity Object *RECURSION* en dat snap ik niet precies?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dat het object verwijst naar zichzelf en dat weer verwijst naar zichzelf en dat weer verwijst naar zichzelf. Dat betekent niet dat er iets mis is, dat betekent dat print_r slim genoeg is om recursie te herkennen en te stoppen met printen op dat punt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Hier kun je zien wat recursie inhoudt: Verwijderd in "[PHP] Probleem met link leggen tussen twee objecten"

[ Voor 29% gewijzigd door Verwijderd op 16-02-2012 23:06 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

:D _O-

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ID-College
  • Registratie: November 2003
  • Laatst online: 09:55
Bedankt :D

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 15-09 22:19

Was advocaat maar vindt het juridische nog steeds leuk

Pagina: 1