[oop] beginners vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

SQL beheerder / ontwikkelaar

Functie omschrijving Voor een klant in omgeving Tiel zijn wij op zoek naar een SQL beheerder met affiniteit met technisch applicatiebeheer. Je krijgt een fijne in-house werkplek waar je gaat werken aan diverse projecten. Dit bedrijf doet het beheer van databases voor een aantal bancaire klanten. Op dit momenten hebben zij ruim 1500 databases in beheer. Jouw werkzaamheden gaan er als volgt uit zien: Je gaat de development afdeling ondersteunen bij het ontwikkelen van MS SQL Scripts. Je zal zowel zelfstandig als in teamverband MS SQL databases installeren & beheren. Je monitort en onderzoekt incidenten en de achterliggende oorzaken. Je

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van IT Operations Manager! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Medior Java developer

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 Developer

Functie omschrijving .NET developer met ervaring gezocht! Voor een softwarebedrijf in de regio Veenendaal zijn wij op zoek naar een .NET developer met een aantal jaar ervaring. Jij bent zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Verder ben je bezig met nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en productspecialisten om zo mooie producten te creëren. Bedrijfsprofiel De organisatie waar je voor gaat werken is een snelgroeiende softwareleverancier en allround dienstverlener. Deze organisatie heeft zowel klanten die

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Capelle ad Ijssel Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Een deel van jouw werkzaamheden: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps en Power BI.

Bekijk vacature »

C# ontwikkelaar

Functie omschrijving Werk jij graag met C# en het .NET framework in een leuk familiebedrijf? Lees dan snel verder! Jouw takenpakket hierbij is: Je gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Je gaat werken in een Microsoft omgeving (ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Daarnaast optimaliseer je de bestaande software. Bedrijfsprofiel Deze organisatie is gevestigd in de omgeving van Best en is een echt familiebedrijf. Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met

Bekijk vacature »

Embedded Developer C++

Functie omschrijving Ben jij op zoek naar een leuke uitdaging als Embedded Developer, zoek dan niet verder! Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een Embedded Developer die graag met Embedded Devices werkt. Je zult verantwoordelijk worden voor het ontwikkelen en onderhouden van diverse producten. Jouw specialisatie ligt op het vlak van software, hardware en back-end. Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke 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

Bekijk vacature »

Junior Java Developer

Dit ga je doen Je ontwikkelt innovatieve, maatschappelijk belangrijke applicaties; Je implementeert nieuwe features; Je gaat in gesprek met eindgebruikers en designers om de applicaties continu te finetunen; Je draait mee in een professionele Agile/Scrum omgeving. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de omgeving van Amsterdam. Ze staan zeer goed bekend in de markt door hun innovatieve dienstverlening op IT gebied en hun gepassioneerde werknemers. Voor hun inspanningen op het gebied van IT hebben ze meerdere prijzen gewonnen! Onze klant is onderdeel van een Corporate werkgever en heeft zelf 300 mensen in dienst. Om

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 »
Thomas de vries

thomas de vries

06/03/2014 06:48:19
Quote Anchor link
Goedemorgen mede leden,

Ik ben pas begonnen met het programmeren in OOP en ben nu een form aan het maken.
Echter heb ik hier nog wel wat vragen over.

1. Is het zo dat voor elke input type je een aparte Class nodig hebt of kun je de types in 1 class doen. Bijvoorbeeld dit

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
<?php
Class form {
    private $type;
    private $name;
    
    public function __construct($type,$name) {
        $this->type = $type;
        $this->name = $name;
    }



    public function draw {
        if($this->type != 'textarea') {
            return '<input type="'.$this->type.'" name="'.$this->name.'" />';
        }
else {
            return '<textarea name="'.$this->name.'"></textarea>';
        }
    }
}

?>


of je doet het zo

Class Input_Text {
Code
}

Class Input_Radio {
Code
}

Etc..

Wat is dan beter om te doen.
Dus 1 Main class form en daar alle objects en methods in te doen Of meerdere classes met elk hun eigen objects en methods.

Met vriendelijke groet,

Thomas de Vries
 
PHP hulp

PHP hulp

17/05/2024 16:14:19
 
Milo S

Milo S

06/03/2014 08:14:24
Quote Anchor link
Je zult wel meerdere klasse nodig hebben voor een formulier. Zo zou ik eerst al eens beginnen met het scheiden van het formulier en de inputs, de textareas en select velden

Betekend overigens niet dat je input weer moet verdelen onder inputTekst en inputRadio, text, radio, password etc zijn namelijk eigenschappen van de input.
 
Thomas de vries

thomas de vries

06/03/2014 08:26:43
Quote Anchor link
Dus eigenlijk als ik het goed begrijp is dat alle input types in 1 class horen?
Dus tekst,password,radio,checkbox en wat dus geen <input type= /> in aparte class te stoppen.

Edit.

Ik heb nu dit
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
<?php
class FormLabel {
    private $label;
    private $labelClass;
    private $labelText;
    
    public function __construct($label,$labelClass,$labelText) {
        $this->label = $label;
        $this->labelClass = $labelClass;
        $this->labelText = $labelText;
    }

    
    public function getLabel() {
        return '<label for = "'.$this->label.'" class = "'.$this->labelClass.'" />'.$this->labelText.'</label>';
    }
}

class FormField {
    private $type;
    private $name;
    private $id;
    private $value;
    private $inputClass;
    private $maxlength;
    private $placeholder;
    private $required;
    
    public function __construct($type,$name,$id = false,$value = false,$inputClass = false,$maxlength,$placeholder,$required) {
        $this->type = $type;
        $this->name = $name;
        $this->id = $id;
        $this->inputClass = $inputClass;
        $this->maxlength = $maxlength;
        $this->placeholder = $placeholder;
        $this->required = $required;
    }

    
    public function getInput() {
        if(!empty($required)) {
            $required = ' required="required" ';
        }

        return '<input type="'.$this->type.'" name="'.$this->name.'" id="'.$this->id.'" value="'.$this->value.'" class="'.$this->inputClass.'" maxlength="'.$this->maxlength.'" placeholder="'.$this->placeholder.'" '.$required.' />';
    }
}



$Label = new FormLabel(
    'test'                    //Sets the for id
    ,'labelRegistration'    //Sets the class for the label
    ,'Account :'            //Sets the text of the label
);
echo $Label->getLabel();
$Text = new FormField(
    'text'                     //Setting the type of the input field
    ,'registAccountID'         //Setting the name of the input field
    ,'registAccountID'         //Setting the ID of the input field
    ,false                    //Setting an value for the input field
    ,'labelRegistration'    //Setting an Class for the input field
    ,'16'                    //Setting the maxlength for the input field
    ,'Account'                //Setting the placeholder for the input field
    ,REQUIRED                //Set the input field as an required input
);
echo $Text->getInput();

?>


Is dit goed of zijn er andere dingen om rekening mee te houden. Het is natuurlijk niet af en dit is een voorbeeld om te zien of er nog wat verandert moet worden.
Gewijzigd op 06/03/2014 08:38:28 door thomas de vries
 
Erwin H

Erwin H

06/03/2014 08:59:10
Quote Anchor link
Hoe zou je met deze classes de volgende HTML produceren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<label id="iets">
  <input type="text" name="blabla" data-itemid="3">
</label>


Bedenk dat classes dusdanig flexibel zouden moeten zijn dat je in principe alle mogelijke variaties aan zou moeten kunnen. Jouw classes zijn dusdanig strict dat elke afwijking direct al problemen opleveren. Ofwel je bent vanaf nu elke dag al aanpassingen aan het schrijven, ofwel je kan maar een zeer beperkt aantal HTML varianten aan.
 
Thomas de vries

thomas de vries

06/03/2014 09:13:59
Quote Anchor link
Hmm ok.
Dit was dan ook een voorbeeld uiteindelijk moeten alle <input elements in de class komen te staan. of moet ik het anders doen ivm toekomst want als er uiteindelijk meer form elements komen dan moet ik dus ook de class weer gaan aanpassen.
 
Milo S

Milo S

06/03/2014 09:34:25
Quote Anchor link
Voor mijn input velden zou ik voor iets dergelijks gaan als het volgende:

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
<?php
class Input {

    private $sName;
    private $sType;
    private $sValue;
    private $sRequired;
    
    private function __construct( $sName, $sType, $sValue, $sRequired )
    {

        $this->name     = $sName;
        $this->type     = $sType;
        $this->value    = $sValue;
        $this->required = $sRequired;
    }

    
    private function setName( $sName )
    {

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

    private function setType( $sType )
    {

        $this->type = (string) $sType;
    }

    private function setValue( $sValue )
    {

        $this->value = (string) $sValue;
    }

    private function setRequired( $sRequired )
    {

        $this->required = (string) $sRequired;
    }

    
    private function getName()
    {

        return $this->name;
    }

    private function getType()
    {

        return $this->type;
    }

    private function getValue()
    {

        return $this->value;
    }

    private function getRequired()
    {

        return $this->required;
    }        
}

?>


En dan uiteindelijk denk ik dat je iets van een formbuilder nodig hebt om het uiteindelijke formulier te maken. Zoals je ziet ben je vrij flexibel in deze input klasse. Je kunt indien nodig redelijk gemakkelijk uitbreiden zonder dat de rest er echt hinder van vind.
Verder is er de mogelijkheid om te valideren. Neem bijvoorbeeld de functie setType. Daarin zou je kunnen controleren of de waarde wel klopt. Bijvoorbeeld:

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
<?php
private function setType( $sType )
{

    $aTypes = array( 'text', 'password', 'image', 'color', 'date', 'datetime', 'datetime-local', 'email', 'month', 'number', 'range', 'search', 'tel', 'time', 'url', 'week' );
    
    if( in_array( $sType, $aTypes ) )
    {

        $this->type = (string) $sType;
    }

    else
    {
        $this->type = 'text';    
    }
}

?>

 
Erwin H

Erwin H

06/03/2014 09:47:21
Quote Anchor link
Je kan het nog veel beter aanpakken dan wat Milo hier als voorbeeld geeft. Bedenk dat elk HTML element attributen heeft (behalve een br element) en dat zelfs niet HTML elementen attributen hebben (denk aan XML). Het afhandelen van die attributen wil je dus niet in een input of form elementen doen, want dan ben je dat werk continu aan het doen. Voor al je HTML elementen en voor je XML elementen. Maak daar een apart object voor dat je gebruikt in je input elementen.

Vervolgens is ook weer het gebruiken van zo'n attribuut object goed om in een basis HTML class te plaatsen, want anders ben je zelfs dat weer overal aan het doen.

En als je dan toch al dat basis HTML element hebt, bedenk dan ook hoe de structuur van een HTML element eruit ziet. In principe is dat een boom structuur. HTML elementen kunnen namelijk weer kinderen hebben die in het element zitten. Als je dus een basis HTML element wilt bouwen dan zal je al uit moeten gaan van die boom structuur. Je zal dus de mogelijkheid willen hebben om kinderen aan het element toe te voegen. Maak derhalve ook een HTML interface die dit al afdwingt.

Als je dit hebt (attributen class, HTML element interface, HTML basis class) dan heb je al bijna je hele pagina gebouwd. Elk nieuw HTML element in een class stoppen (of een set aan elementen kan ook) is dan een koud kunstje. Dan ben je echt met OOP aan de slag.
Gewijzigd op 06/03/2014 09:48:29 door Erwin H
 
Ozzie PHP

Ozzie PHP

06/03/2014 13:13:46
Quote Anchor link
Offtopic:

Erwin, het voorbeeld dat jij geeft... begrijp ik nu dat jij via OOP html wil creëren? Of begrijp ik je verkeerd?
 
Thomas de vries

thomas de vries

06/03/2014 13:13:47
Quote Anchor link
Bedankt voor de reacties. Nog om even terug te komen op de verschillende Attributes

Is het misschien verstandiger om in de __construct aan te geven dat er 3 types nodig zijn voor een geldige input en de andere attributen in een array te stoppen? Dus zo

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
<?php
Class FormField {
    private $id;
    private $type;
    private $name;
    private $Attributes;

    public function __construct($id,$type,$name,$Attributes) {
        $this->id = $id;
        $this->type = $type;
        $this->name = $name;
        $this->Attributes = $Attributes;
    }


    public function getInput() {
        foreach($this->Attributes AS $aAttribute) {
            $bAttribute .= $aAttribute;
        }

        return '<input type="'.$this->type.'" name="'.$this->name.'" id="'.$this->id.'" '.$bAttribute.' />';
    }
}

?>


En zo de de procedure code
$Tekst = new FormField(
'Test'
,'text'
,'Test'
,array('maxlength="5"','class="registerTest"')
);
Gewijzigd op 06/03/2014 13:14:40 door thomas de vries
 
Erwin H

Erwin H

06/03/2014 13:24:04
Quote Anchor link
id en name zijn geen attributen die verplicht zijn bij een input. Strikt genomen zelfs het type niet, maar dat zou ik wel in de constructor opnemen, omdat het wel erg verstandig is om dat mee te nemen. Voor de rest zou ik in de constructor, of via een setter (eventueel setters) de andere attributen in een array meegeven. Die kan je dan allemaal doorpassen naar het attributes object dat verder de hele afhandeling van de attributen voor zijn rekening neemt. In je getInput method (of beter iets als render method) zou je eigenlijk alleen dit moeten hebben:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
  public function render(){
    return '<input'.$this->attributes->render().'>';
  }

?>
 



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.