[OOP] Classes vanuit andere classes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

Bekijk vacature »

Node.js developer looking for a challenging consul

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

Junior / Medior C# .NET ontwikkelaar in Brabants t

Bedrijfsomschrijving Ben jij een gepassioneerde C# .NET ontwikkelaar met een voorliefde voor hardware? Dan is dit de perfecte kans voor jou! Bij ons bedrijf krijg je de kans om deel uit te maken van een team van sociale en enthousiaste techneuten die er elke dag naar streven om onze eigen ontwikkelde software nog beter te maken. Het team van ongeveer 10 team medewerkers maakt zich hard om de interne processen gestroomlijnd te laten verlopen. Functieomschrijving Als lid van ons hechte en behulpzame team word je betrokken bij diverse projecten. Daarbij krijg je te maken met data-analyses, content en de logistieke

Bekijk vacature »

Developer Full Stack

Functie omschrijving Full Stack Developer gezocht! Wij zijn op zoek naar een Full Stack Developer voor een bedrijf in de regio Nijkerk. Je maakt in deze functie onderdeel uit van een groeiend team met een goede ambitie waarbij eenheid, betrokken en overtreffen de belangrijkste kernwaardes zijn. Het bedrijf werkt volgens de AGILE/SCRUM methode, wat je o.a. terug vindt in de tweewekelijkse sprints, retrospectives en een daily standup. Je takenpakket bestaat uit: Bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een Saas applicatie; Bijdragen aan de innovatie van het bedrijf en hun klanten; Het ontwikkelen op de laatste technologie van

Bekijk vacature »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »

OutSystems developer

Dit ga je doen Klanten adviseren over de mogelijkheden van OutSystems; OutSystems oplossingen ontwikkelen en implementeren; Stakeholdermanagement; Kennis en expertise up to date houden en delen met het team. Hier ga je werken Onze opdrachtgever, gevestigd in regio Amsterdam, is een innovatieve dienstverlener die zich richt op grote corporates in verschillende sectoren. Doordat je bij veel verschillende klanten aan de slag zal gaan is geen enkel project hetzelfde. De organisatie kenmerkt zich door hoge mate van professionaliteit en innovatieve oplossingen. In de rol van OutSystems developer zal jij verschillende grote klanten helpen om efficiënte OutSystems oplossingen te ontwikkelen en implementeren.

Bekijk vacature »

.NET developer

Functie As a .NET developer you start in a driven and diverse development team. Your team consists of 16 IT professionals, including 7 software engineers. Because your new employer is internationally active, there are also international IT professionals working in the IT department. As a result, the official language is English. As a team you are responsible for a new Cloud Native product. This product runs entirely in Azure with a Progress Database and various Azure Functions. In addition, this product has a JS front-end, a REST API system and a layer in C # .NET. The idea is therefore

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Alblasserdam zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! 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

Bekijk vacature »

APEX Ontwikkelaar in een team van Oracle Developer

Bedrijfsomschrijving Wij zijn op zoek naar een APEX Ontwikkelaar om onze opdrachtgever in Den Haag te versterken. In deze rol zul je verantwoordelijk zijn voor het ontwikkelen en onderhouden van de front-end van onze applicaties met behulp van Oracle Application Express (APEX). Je werkt aan zowel inhouse als externe projecten. De sfeer binnen het Oracle team is gemoedelijk en men probeert elkaar te helpen én van elkaar te leren. Zo ontstaat er een prettige en plezierige werksfeer waar ruimte is voor persoonlijke ontwikkeling en groei. Er wordt gewerkt met de meest nieuwe technologieën waardoor je kennis up-to-date blijft. Het bedrijf

Bekijk vacature »

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.NET Software Developer

Dit ga je doen Als .NET Software Developer zul jij je voornamelijk bezig houden met: Het van scratch af aan bouwen van applicaties (.NET, C#, Bootstrap, KnockoutJs en WebAPI2); Het testen van jouw code d.m.v. het uitvoeren van unittesten; Het oplossen van bugs in de code; Het onderhouden van contact met collega's betreffende de door jouw ontwikkelde applicaties; Het verbeteren en doorontwikkelen van maatwerkapplicaties. Hier ga je werken Jij gaat aan de slag als .NET Software Developer en gaat je focussen op het bedenken, ontwikkelen en testen van maatwerkapplicaties in voornamelijk C#. Dit ga je doen bij een grote, internationale

Bekijk vacature »

Back-End Web Developer

As a Back-End Web Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a Back-End Web Developer at Coolblue? As a Back-End Web Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you also feel confident with setting up microservices in Typescript or are open to learning this. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing pure

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

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

24/11/2024 07:15:36
 
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.