Object georienteerd programmeren

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 »

PHP Developer

Dit ga je doen Ontwikkelen, implementeren en testen van PHP-oplossingen en Apps voor klanten en bedrijfsprocessen; Opstellen van requirements en uitwerken van de oplossingen; Testen van software en borgen van een soepele overdracht, inclusief documentatie; Proactief adviseren vanuit eigen expertisegebied over ontwikkelingen en verbeterpunten in technische toepassingen en processen binnen de organisatie. Hier ga je werken De organisatie is een ambitieuze en vooruitstrevende speler in de markt in de regio Rotterdam. Ze zijn de snelst groeiende in hun branche. Met een excellent aanbod en service willen zij de beste keuze zijn voor hun bestaande en nieuwe klanten. Dit alles doen

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Mendix Ontwikkelaar - Vernieuwen van het applicati

Bedrijfsomschrijving De ontwikkelingen in de transportsector gaan razendsnel. Bij ons kun je een belangrijke rol spelen in deze sector. We streven ernaar om onze klanten te ontzorgen op het gebied van continuïteit en veiligheid met innovatieve producten en diensten. We willen dat onze klanten de veiligste vervoerders van Europa worden. Ons team werkt hard om deze ambitieuze doelstellingen te bereiken en we bieden een motiverende werkomgeving aan. We zijn op zoek naar zelfstarters met een focus op resultaat en beslissingsbevoegdheid. Functieomschrijving Als Mendix ontwikkelaar bij deze organisatie heb je een gevarieerde baan. Het applicatielandschap wordt vernieuwd en de “schade en

Bekijk vacature »

Senior Mobile Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Mobile Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

Low-code developer

Functie omschrijving Heb jij altijd al een training willen volgen in het buitenland? Voor een leuke opdrachtgever in omgeving Alphen ad Rijn zijn wij op zoek naar kandidaten die aan de slag willen als Low Code Developer! Beschik jij over HBO/WO nivo, bij voorkeur Informatica, maar een ander technische opleiding zoals bijv. wiskunde, natuurkunde is ook goed. Heb jij aantoonbare affiniteit met IT en ben jij gedreven, enthousiast, communicatief vaardig en klantgericht? Lees dan snel verder! Je wordt getraind tot een volwaardig Low Code Developer, het traject ziet er als volgt uit: Start 1e week januari, opleiding van 3 weken

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

Bekijk vacature »

.net developer

Hoi! Wij zijn auto.nl en wij verkopen auto's online. je bestelt bij ons een auto net zo makkelijk als een spijkerbroek. En bevalt ie niet? Dan stuur je 'm gewoon weer terug. En dat we dat goed doen bewijst onze hoge klanttevredenheid van een 9,3. Nu maken we de volgende stap bij auto.nl. We starten met fysieke winkels. Online zoeken, offline bekijken. Maar nog altijd, geen gedoe! Gewoon eerlijk, transparant en zonder zorgen een auto kopen.. Maar om dat waar te blijven maken en nóg beter te worden, zoeken we uitbreiding van ons development team. Wat ga je precies doen?

Bekijk vacature »

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Oracle Apex developer

Bedrijfsomschrijving My client is a technology company based in Den Bosch, the Netherlands. They specialize in providing innovative software solutions to clients, and they are currently looking for an experienced Oracle Apex developer to join the IT team. Functieomschrijving As an Oracle Apex developer, you will be responsible for designing, developing, and maintaining web-based applications using Oracle Apex. You will work closely with project managers, business analysts, and other developers to ensure that clients' needs are met and that the software solutions are of the highest quality. Responsibilities: Design, develop, and maintain Oracle Apex applications. Work with project managers and

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 »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

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

12/05/2024 16:19:17
 
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.