[OOP] Classes vanuit andere classes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end (Angular) developer - remote werken

Functie Als Front-end (Angular) developer ga je aan de slag met het uitbouwen van hun webapplicatie, als één van de front-end experts ga je samen met collega’s in een devops team werken aan een nieuw front-end voor hun calculatie oplossing. Binnen de calculatiesoftware kunnen meerdere professionals tegelijk samenwerken, 3D calculaties uitvoeren en ook inzien met de benodigde specifieke details. Deze software wordt veel ingezet om projectbeschrijvingen en kosten in kaart te brengen, en tijdens de uitvoering te bewaken. Maar hiernaast liggen er in de toekomst veel meer plannen op het gebied van front-end in de andere applicaties. Genoeg te doen

Bekijk vacature »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

Front-end developer gezocht

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

React developer Inhouse cloudplatform

Functie De functie: Als front-end developer kom je te werken naast 2 andere front-end/React developers, waaronder één senior. Een hele mooie kans dus om in korte tijd veel nieuwe kennis en ervaring op te doen. Ze hebben momenteel veel werk hierin en daarom willen ze het team graag uitbreiden. Het is van belang dat je, zeker gezien het vele thuiswerken, in ieder geval al een aantal projecten hebt gedaan in React. Taken waar je aan kunt denken zijn het ontwikkelen van client-applicaties o.b.v. HTML5, React en andere open standaarden. Ook ben je nauw betrokken bij het implementeren van designs o.b.v.

Bekijk vacature »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

Java Developer

Functieomschrijving Are you an experienced Java Developer who wants to be challenged? Then this is your job! As a Java Developer, you are co-responsible for building custom applications within our extensive IT landscape. Development takes place on both the back-end side (Spring/JEE). Together with the IT department, you are responsible for the daily adjustments and expansions of our IT systems. In addition, you will work in small scrum teams using the Agile methodologies. Besides the realization of our in-house systems, you are responsible for the roll-out of the application (version) as well as the operational support after going live. Team

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer begint jouw dag na een bak koffie met een stand up. De vorderingen worden tijdens de stand up besproken en de doelen worden opgesteld waar jullie als team in de volgende sprint naartoe gaan werken. Onze backend is geschreven in .NET Core en onze Front-end in Angular. Bij ons ga jij dan ook Fullstack aan de slag. Jij wordt hier opgeleid om zelfstandig te kunnen programmeren en applicaties te kunnen implementeren. Er wordt op projectbasis gewerkt, dit bied leuke uitdagingen omdat elke klant een andere visie heeft over de applicatie die wij maken. Je gaat

Bekijk vacature »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

Bekijk vacature »

Senior Software developer PHP

Functie Jij als senior PHP ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 developers binnen onze organisatie Jij gaat de brug zijn tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je je taken op voor de dag. Een greep van jouw taken zijn: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden met Security & Privacy Eisen • Minimaal 4

Bekijk vacature »

Ervaren C#.NET programmeur

Functieomschrijving Voor een moderne werkgever in regio Prinsenbeek zijn wij op zoek naar een ervaren C#.NET programmeur die graag de uitdaging aangaat. Je houdt je bezig met het ontwikkelen van maatwerk webapplicaties voor diverse klanten, waarbij complexe processen optimaal worden ondersteund. Verder ziet jouw takenpakket er als volgt uit: Ontwikkelen en onderhouden van C#.NET-applicaties; Schrijven van hoogwaardige, herbruikbare codes; Schrijven van technische documentatie en gebruikershandleidingen; Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen; Troubleshooten en oplossen van bugs in softwaretoepassingen; Werken met databases en dataopslagoplossingen; Implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens. Bedrijfsprofiel

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Gorinchem zijn wij op zoek naar versterking. Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back end werken! Bedrijfsprofiel Onze

Bekijk vacature »

PHP Back-end Developer

Vacature details Vakgebied: Software/IT Opleiding: Starter Werklocatie: Nijmegen Vacature ID: 13633 Introductie OUr client develop websites, webshops, and digital environments that are used by many visitors daily. They are seeking an experienced PHP-Developer Back-end to join the team. If you're looking for a position where you can tackle challenging, innovative, and multidisciplinary ICT projects and make a difference, this vacancy might be for you! Functieomschrijving As a PHP developer, you'll develop websites and digital environments used by many visitors daily. You'll work as a back-end developer and want to continuously develop in this field. You can work independently and efficiently,

Bekijk vacature »

Pagina: 1 2 volgende »

Roel -

Roel -

29/08/2011 16:13:43
Quote Anchor link
Hoi,

Ik ben sinds een tijdje bezig met object georiënteerd programmeren omdat het me wel aanspreekt. Ik leer op school Java en die manier van programmeren spreekt me ook wel aan.

Wat ik dus heb gedaan, ik heb een paar classes gemaakt in PHP die ongeveer op hetzelfde neerkomen als in Java.

Waar ik echter mee in de knoop raak is het volgende.
Ik heb deze classes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
// Standaard classes
class Form
{
        private $aElements;
        
        public function setElements()
        {

                $this->aElements = func_get_args();
        }

        
        public function build()
        {

                $sForm = '<form method="post" action=""><p>';
                foreach ($this->aElements as $oElement)
                {

                        $sForm .= $oElement->build();
                }

                return $sForm.'</p></form>';
        }

        
        public function addActionListener($oHandler)
        {
                
        }
}


class Input
{
        private $bRequired;
        
        public function setRequired($bRequired)
        {

                $this->bRequired = $bRequired ? true : false;
        }
}


class Button extends Input
{
        private $sName, $sValue, $iType;
        
        public function __construct($sName, $sValue = '', $iType = 1)
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
                $this->iType = $iType;
        }

        
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        public function build()
        {

                return '<input type="'.(($this->iType == 1) ? 'submit' : 'reset').'" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }
}


class Text extends Input
{
        private $sName, $sValue;
        
        public function __construct($sName, $sValue = '')
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
        }

        
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        public function build()
        {

                return '<input type="text" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }
}


// Classes per pagina
class KnopHandler
{
        
}


$oForm = new Form();
$oText = new Text('tekst');
$oButton = new Button('knop', 'Klik me');
$oForm->setElements($oText, $oButton);
echo $oForm->build();

?>


Ik wil zoals in Java bijvoorbeeld ook een addActionListener() functie hebben. Dan zou ik in mijn voorbeeld $oButton->addActionListener(new KnopHandler()) gebruiken. Kan iemand me helpen hoe ik dit kan realiseren?

Verder vraag ik me ook af hoe ik een object kan benaderen vanuit een ander object. Bijvoorbeeld, ik heb het object $oButton. In de class daarvan (class Button) wil ik $oText benaderen. Is dat mogelijk?

Bij voorbaat dank!
 
PHP hulp

PHP hulp

27/05/2026 01:39:13
 
Nick Audenaerde

Nick Audenaerde

29/08/2011 16:24:23
Quote Anchor link
Net als in java kan je classes extenden en classes includen in een andere pagina waardoor je deze weer aanroept.
 
Roel -

Roel -

29/08/2011 16:26:21
Quote Anchor link
Dat snap ik. Maar als ik in m'n Button class $oText probeer aan te roepen krijg ik fouten.
Gewijzigd op 29/08/2011 16:31:09 door Roel -
 
Fabian M

Fabian M

29/08/2011 17:44:03
Quote Anchor link
Roel van de Water op 29/08/2011 16:26:21:
Dat snap ik. Maar als ik in m'n Button class $oText probeer aan te roepen krijg ik fouten.


omdat $oText niet bestaat.
 
Roel -

Roel -

29/08/2011 17:48:33
Quote Anchor link
Ik heb het nu met extended gedaan inderdaad. Ik wist niet dat dat bedoeld werd.
Dat new KnopHandler() is trouwens geregeld.

Het tweede probleem lukt me nog steeds niet. Ik weet totaal niet wat ik moet doen. M'n script ziet er nu zo uit trouwens:
[script]
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
// Standaard classes
class Form
{
        private $aElements;
        
        public function setElements()
        {

                $this->aElements = func_get_args();
        }

        
        public function build()
        {

                $sForm = '<form method="post" action=""><p>';
                foreach ($this->aElements as $oElement)
                {

                        $sForm .= $oElement->build();
                }

                return $sForm.'</p></form>';
        }

        
        public function getValue($oElement)
        {

                return $_POST[$oElement];
        }
}


class Input
{
        private $bRequired;
        
        public function setRequired($bRequired)
        {

                $this->bRequired = $bRequired ? true : false;
        }
}


class Button
{
        private $sName, $sValue, $iType;
        
        public function __construct($sName, $sValue = '', $iType = 1)
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
                $this->iType = $iType;
        }

        
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        public function build()
        {

                return '<input type="'.(($this->iType == 1) ? 'submit' : 'reset').'" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }

        
        public function addActionListener($oHandler)
        {

                if (isset($_POST[$this->sName])) {
                        new
$oHandler;
                        $oHandler->Main();
                }
        }
}


class Text extends Input
{
        private $sName, $sValue;
        
        public function __construct($sName, $sValue = '')
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
        }

        
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        public function build()
        {

                return '<input type="text" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }

        
        public static function getValue()
        {

                return 'test';// $_POST[$this->sName];
        }
}


// Classes per pagina
class KH extends Form
{
        public function Main()
        {

                echo $this->getValue('tekst');
        }
}


$oForm = new Form();
$oText = new Text('tekst');
$oButton = new Button('knop', 'Klik me');
$oButton->addActionListener(new KH());
$oForm->setElements($oText, $oButton);
echo $oForm->build();[/script]
 
Niels K

Niels K

29/08/2011 19:56:28
Quote Anchor link
Wat is precies je tweede probleem?
 
Roel -

Roel -

29/08/2011 21:42:47
Quote Anchor link
Dat vraag ik mezelf ook af na die post eerlijk gezegd.
Het ging volgens mij niet zoals ik het in de eerste instantie wou, hoewel me dit toch de beste oplossing leek...

Excuus :P
 
Write Down

Write Down

29/08/2011 23:51:58
Quote Anchor link
Sorry dat ik alsnog reageer, maar is het nu opgelost of niet?
 
Roel -

Roel -

30/08/2011 12:40:06
Quote Anchor link
Jep.
 
Roel -

Roel -

04/09/2011 17:23:59
Quote Anchor link
Ik raak er toch nog niet helemaal aan uit.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/* Standard classes */

// Form class

class Form
{
        private $aElements;
        
        // After all elements are created, add them to the form
        public function setElements()
        {

                $this->aElements = func_get_args();
        }

        
        // Build the form
        public function build()
        {

                $sForm = '<form method="post" action=""><p>';
                foreach ($this->aElements as $oElement)
                {

                        $sForm .= $oElement->build();
                }

                return $sForm.'</p></form>';
        }

        
        // Get the value of an object
        public function getValue($oElement)
        {

                return $this->aElements[$oElement]->getValue();
        }

        
        // Set the value of an object
        public function setValue($oElement, $sValue)
        {

                $this->aElements[$oElement]->setValue($sValue);
        }
}


// Input class, used for form elements
class Input extends Form
{
        // Get the name of a form element
        public function getName()
        {

                return $this->sName;
        }
}


class Button extends Input
{
        private $sName, $sValue, $iType;
        
        // Set the name, value and type for a button
        public function __construct($sName, $sValue = '', $iType = 1)
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
                $this->iType = $iType;
        }

        
        // Set the value of the button
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        // Return the HTML button
        public function build()
        {

                return '<input type="'.(($this->iType == 1) ? 'submit' : 'reset').'" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }

        
        // Add an ActionListener which is called when the button is clicked
        public function addActionListener($oHandler)
        {

                if (isset($_POST[$this->sName])) {
                        new
$oHandler;
                        $oHandler->Main();
                }
        }
}


class Text extends Input
{
        private $sName, $sValue;
        
        // Set the name and value for the textfield
        public function __construct($sName, $sValue = '')
        {

                $this->sName = $sName;
                $this->sValue = $sValue;
        }

        
        // Set the value of the textfield
        public function setValue($sValue)
        {

                $this->sValue = $sValue;
        }

        
        // Get the value of the textfield
        public function getValue()
        {

                return $_POST[$this->sName];
        }

        
        // Return the HTML textfield
        public function build()
        {

                return '<input type="text" name="'.$this->sName.'" value="'.$this->sValue.'" />';
        }
}


/* Classes per page */
class KH extends Form
{
        // Main() is called when the button is clicked
        public function Main()
        {

                $this->setValue('text', 'Text in a textfield');
        }
}


$oForm = new Form();
$oText = new Text('text');
$oButton = new Button('button', 'Click me');
$oForm->setElements($oText, $oButton);
$oButton->addActionListener(new KH());
echo $oForm->build();
?>


Wat ik probeer, is vanuit m'n KH() (knophandler) de value te veranderen van het tekstvak. Alleen krijg ik telkens een fatal error:
Fatal error: Call to a member function setValue() on a non-object in /usr/home/deb17902/domains/globallife.nl/public_html/form.class.php on line 35

Het script is hier te vinden: klik

Weet iemand wat te doen om het werkend te krijgen?
Thx!
Gewijzigd op 04/09/2011 17:24:48 door Roel -
 
Wouter J

Wouter J

04/09/2011 17:52:32
Quote Anchor link
Wat is de code waar je de method setValue aanroept?

De error zegt namelijk dat de var waarin je die method koppelt geen object is. Alsof je zoiets hebt gedaan bijv. :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$user
= 'Roel';
$user->setValue(); // Ahh, $user is een string geen object!
?>
Gewijzigd op 04/09/2011 17:52:59 door Wouter J
 
Roel -

Roel -

04/09/2011 17:55:32
Quote Anchor link
Dat is op regel 119. Ik snap inderdaad dat het daarom gaat.
Maar hoe fix ik dit? Bij het argument van de functie setValue ervoor zorgen dat ie het argument als een object ziet?
 
Roel -

Roel -

05/09/2011 19:20:20
Quote Anchor link
Bump.
 
Pim -

Pim -

05/09/2011 20:41:03
Quote Anchor link
Je doet het verkeerd.
De knophandler hoort Form niet uit te breiden, maar een form als property te dragen, zodat je erin $this->_form->setValue() kan doen.

Toevoeging op 05/09/2011 20:43:14:

Verder is het gebruiken listeners door requests heen (dus bijv. luisteren naar het submitten van een form) in PHP een stuk lastiger dan in Java, omdat daar de objecten blijven bestaan en je ze in PHP steeds moet herbouwen. Het is lastiger, niet onmogelijk, hoewel ik het niet echt op deze manier ben tegengekomen.
 
Roel -

Roel -

05/09/2011 21:12:44
Quote Anchor link
Ja het is ook een uitdaging om dit zo te maken.
Weet je ook hoe ik een form als property meegeef?

Ik zou namelijk totaal niet weten hoe ik dit moet doen.
 
Roel -

Roel -

06/09/2011 21:15:30
Quote Anchor link
Bump.
 
Wouter J

Wouter J

06/09/2011 21:48:07
Quote Anchor link
Waarom bump je elke dag? We zijn hier gewoon vrijwillig en als de persoon die hier van af weet even niet online is is dit niet erg.

Je kan een propertie maken van User door deze mee te geven in een methode. Voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
28
29
30
31
32
33
34
35
36
37
38
<?php
class User
{
  private $name;

  public function __construct( $name )
  {

    $this->name = (string) $name;
  }


  public function getName()
  {

    return $this->name;
  }
}

class Post
{
  protected $author;
  // veel code voor de post
  public function setAuthor( User $author )
  {

    $this->user = $author;
  }

  public function getAuthor()
  {

    return $this->user->getName();
  }
}


// Maak een nieuw User object
$user = new User('Roel');
// Maak een nieuw Post object
$bericht = new Post();
// Set de author door de User object mee te geven
$bericht->setAuthor($user);
// ... heel veel code ...
echo $bericht->getAuthor();
?>

Hierbij heb ik User als een propertie meegegeven aan $bericht. Deze heb ik in de propertie $author gezet. Vervolgens kan ik dit gewoon gebruiken als een class en kan ik $this->autor->getName() doen als ik de naam van User wil weten.
 
Roel -

Roel -

06/09/2011 23:41:18
Quote Anchor link
Kijk, daar heb ik wat aan.
Thx!
 
Ozzie PHP

Ozzie PHP

06/09/2011 23:49:55
Quote Anchor link
@Wouter: is dat eigenlijk de "normale" manier om een compleet User object mee te geven aan de setAuthor() functie? Je hebt toch alleen maar een naam nodig?

Is zoiets als dit niet logischer?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$user = new User('Roel');
$author = $user->getName();
$post = new Post($author);
echo $post->getAuthor();  
 
Wouter J

Wouter J

07/09/2011 07:59:27
Quote Anchor link
@Ozzie, ik ben niet heel goed in het OOP denken dus het kan totaal verkeerd zijn wat ik nu ga zeggen. Maar ik vind wat ik heb gedaan handiger. Stel dat je later ook nog een avatar wil van die author, of een stukje biografie van die author. Dan moet je al je code weer aanpassen. I.p.v. daarvan stop je gewoon de hele user object in de post, zo kunnen we via het post object zelf bepalen wat we willen en wat niet.
 
Ozzie PHP

Ozzie PHP

07/09/2011 12:36:51
Quote Anchor link
@Wouter, ik weet ook niet wat in dit geval "goed" is.

Hoe kijken andere leden hier tegenaan? Vooral de mensen die vaker met OOP werken?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.