Object georienteerd programmeren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »

Front-End React Developer

Als Front-End React Developer verbeter je de user experience van onze eigen webapplicaties voor onze collega's binnen Coolblue. Wat doe je als Front-End React Developer bij Coolblue? Als Front-end React Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten met React.js. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end React Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

Fullstack of back-end PHP developer

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

.NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

Embedded Software Developer Games

Functie omschrijving Heb jij affiniteit met hardware en wil jij kleuren binnen een Qt framework? Spreek jij de talen C en of C ++? Dan ben ik wellicht opzoek naar jou! Voor een super gave opdrachtgever in omgeving Delft is er namelijk plek voor een nieuwe kracht! Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke game industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen en buitenland? Je zult in een team, samen met vier ontwikkelaars, de mooiste

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 »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

PHP developer (Symfony, Doctrine)

Functie Als PHP developer wordt er een hoge mate van zelfstandigheid verwacht, maar ook dat je goed opereert in een team waar kennis wordt gedeeld en dingen als codereviews erg veel voorkomen. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden

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 »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Voor een opdrachtgever, met een prachtig kantoor in omgeving Wateringen zijn wij op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind jij het leuk om in een Agile/Scrum omgeving te werken? Wil jij

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 »

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 »
Chris visser

chris visser

10/09/2010 22:56:36
Quote Anchor link
Hey mensen. Ik heb een class gemaakt die modules inlaad. Het is een hele simpele class en mijn doel is om het volledige OOP te laten zijn. In dit geval word de module geladen aan de hand van een moduleID. Vervolgens word de module ingeladen aan de hand van de bestanden die aan de parameters zijn gekoppeld en opgeslagen in een variabele.

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
<?php

class module
{
    //This function loads a module controllerfile and headerfile. when this module contains output
    //it will store the output to the corresponding output parameter and return the paramaters back to the system

    public function load_module($parameters)
    {

      //Check if the controllerfile has been given
      if(isset($parameters['controllerFile']))
        {

          //Load the controllerfile and return any output to the controllerOutput parameter
      $controllerContent = $this->file_to_var($parameters['controllerFile']);
            if(!empty($controllerContent))
            {

                $parameters['controllerOutput'] = $controllerContent;
            }

            //Check if the headerFile has been given        
            if(isset($parameters['headerFile']))
            {

              //Load the headerFile and return any output to the headerOutput parameter
              $headerContent = $this->file_to_var($parameters['headerFile']);
              if(!empty($headerContent))
                {

                  $parameters['headerOutput'] = $headerContent;
                }
            }
        }

        return $parameters;
    }

    //The below function loads a file and returns its output
    protected function file_to_var($file)
    {

      global $db;
    if (is_file($file))
        {

      ob_start();
      include($file);
            $content = ob_get_contents();
      ob_end_clean();
            return $content;
        }
    }
    
}


?>


Nu kan een module bijvoorbeeld op de volgende manier geladen worden:

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
<?php
$blocks
= array();
$module = new module();
if(isset($_GET['MID']) && !empty($_GET['MID']) && is_numeric($_GET['MID']))
{

    $sql = 'SELECT * FROM core_modules WHERE moduleID='.$_GET['MID'].' OR blockMode=1';
}

else
{
    $sql = 'SELECT * FROM core_modules WHERE home=1 OR blockMode=1';
}

if(!$ModuleQuery = $db->query($sql))
{

  trigger_error('Error in the modulequery: '.$db->error);
}

else
{
  while($ResultModule = $ModuleQuery->fetch_assoc())
  {

    $i=0;
    $modules[$i]['positionTag']   = $ResultModule['positionTag'];
      $modules[$i]['title']         = $ResultModule['title'];
      $modules[$i]['controllerFile']= $moduleDir.$ResultModule['controllerFile'];
      $modules[$i]['headerFile']    = $moduleDir.$ResultModule['headerFile'];
      $modules[$i]['layoutFile']    = $templateDir.$ResultModule['layoutFile'];
      //load_module uses the moduleclass and adds the controllerOutput and headerOutput
        //parameters containing the output

      $blocks[] = $module->load_module($modules[$i]);  
      $i++;
  }
}

?>


Wat er verder word gedaan met de output is nu natuurlijk niet van toepassing. In mijn geval heb ik hiervoor ook een class gemaakt die de template inlaad en combineerd met de output van deze modules. Die class heet uiteraard "Content". Mijn vraag is nu. IS DIT DE CORRECTE DENKWIJZE VOOR OOP????
Gewijzigd op 10/09/2010 22:57:24 door Chris visser
 
PHP hulp

PHP hulp

28/04/2024 10:38:50
 
Wim E

Wim E

10/09/2010 23:12:21
Quote Anchor link
Denkwijze is heel eenvoudig...denk in objecten.
Bijvoorbeeld:

Een stoel is een object. Deze heeft eigenschappen (kleur, grote, aantal poten, vorm etc). Daarnaast heeft een stoel functies zoals erop zitten, verplaatsen etc.
Ook een tafel is een object. Deze heeft ook eigenschappen en methoden(functies). Echter bij een tafel horen stoelen. Dit kun je eenvoudig maken doormiddel van meerdere objecten van een stoel te maken.

Om even terug te komen op jou vraag. Hoe je nu hebt gedaan kan ik persoonlijk niet veel van OOP er nog uit halen.
Je hebt een klasse, eigenlijk maar 2 functies waarvan 1 protected is maar geen onderliggende klasse heeft (overerving). Je hebt in je 2e file eigelijk alleen PHP gebruikt en roept hier 2 functies aan.
Als ik hier bijv. title zie. Is dat een property van de klasse methode. Dus wil ik het via een setter de title zetten en dit niet gaan versturen als een verzameling (array)
 
Chris visser

chris visser

12/09/2010 00:19:08
Quote Anchor link
Okok, ik heb de module herschreven. Ik probeer het te leren en dit zijn slechts voorbeelden natuurlijk. Hieronder eerst mijn 2e versie van de module class en daaronder het procedurele gedeelte.

Class:
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
<?php
class module
{
    private $controllerFile;
    private $headerFile;
    private $title;
    
    public function __construct($controllerFile, $headerFile = '', $title)
    {

      if(is_file($controllerFile))
        {

          $this->controllerFile = $controllerFile;
        }

    if(is_file($headerFile))
        {

          $this->headerFile = $headerFile;
        }

        if(is_string($title))
        {

          $this->title = $title;
        }
    }

    
    public function setOutputType($outputType)
    {

      if($outputType == 'body')
        {

      $this->file = $this->controllerFile;
        }

        else
        {
          $this->file = $this->headerFile;
        }
    }

    
    public function getContent()
    {

    ob_start();
    include($this->file);
      $content = ob_get_contents();
    ob_end_clean();
      return $content;
    }
}


?>

index.php
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
<?php
include('classes/class_database.php');
include('classes/class_module.php');

$db = new database($host, $username, $password, $database);

if(isset($_GET['MID']) && !empty($_GET['MID']) && is_numeric($_GET['MID']))
{

    $sql = 'SELECT * FROM core_modules WHERE moduleID='.$_GET['MID'].' OR blockMode=1';
}

else
{
    $sql = 'SELECT * FROM core_modules WHERE home=1 OR blockMode=1';
}

if(!$ModuleQuery = $db->query($sql))
{

  trigger_error('Error in the modulequery: '.$db->error);
}

else
{
  $modules = array();
  while($ResultModule = $ModuleQuery->fetch_assoc())
  {

      
      $modules[$ResultModule['moduleID']] = new module('Modules/'.$ResultModule['controllerFile'], 'Modules/'.$ResultModule['headerFile'], $ResultModule['title']);
  }
}

$modules[1]->setOutputType('body');
echo $modules[1]->getcontent();
?>
Gewijzigd op 12/09/2010 00:21:01 door chris visser
 
Chris visser

chris visser

15/09/2010 23:16:40
Quote Anchor link
Ik heb inmiddels mijn module class zoveel mogelijk voltooid mbv de OOP tutorials die te vinden zijn op deze website. Ik ben erg benieuwd. Zelf merk ik nu echt de voordelen die het even later gaat geven. De module class laad een module in op basis van de gegevens (links naar bestanden) die het systeem geeft. Het is in staat om bestanden in te laden en de content terug te geven en controleert of de links daadwerkelijk bestanden zijn. Vervolgens heb ik een extend gemaakt die de layout van de module bijvoegt. Dit is voor alsnog een experiment, maar het werkt al aardig. Op en aanmerkingen zijn welkom!

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

class module
{
    private $controllerFile;
    private $headerFile;
    private $title;
    
    public function __construct($controllerFile, $headerFile = '', $title)
    {

      if(is_file($controllerFile))
        {

          $this->controllerFile = $controllerFile;
        }

    if(is_file($headerFile))
        {

          $this->headerFile = $headerFile;
        }

        if(is_string($title))
        {

          $this->title = $title;
        }    
    }

    
    public function getTitle()
    {

      return $this->title;
    }

    
    public function getControllerFile()
    {

      return $this->controllerFile;
    }

    
    public function getHeaderFile()
    {

      return $this->headerFile;
    }

    
    public function getBody()
    {

      if(isset($this->controllerFile))
        {

      $output = $this->getContent($this->controllerFile);
            if($output)
            {

              return $output;
            }
        }
  }

    
    public function getHeader()
    {

      if(isset($this->headerFile))
        {

          return module::getContent($this->headerFile);
        }

        else
        {
          return '';
        }
    }

        
    public function getContent($file)
    {

    ob_start();
    include($file);
      $content = ob_get_contents();
    ob_end_clean();
      return $content;
    }

}


class container extends module
{
    
    public function setLayout($layoutFile)
    {

      if(is_file($layoutFile))
        {

      $this->layout = module::getContent($layoutFile);
        }
    }
    
    
    public function getOutput()
    {

      $body = module::getBody();
        $output = preg_replace('/<!-- blockcontent -->/', $body, $this->layout);
        $output = preg_replace('/<!-- blocktitle -->/', $this->getTitle(), $this->layout);
        return $output;
    }
}
 



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.