[oop] beginners vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer

Functie omschrijving Als PHP / Laravel developer zal je in een klein team terecht komen. Wij zijn op zoek naar een echte specialist, iemand die de balans weet te vinden tussen techniek en perfectie. In de aankomende jaren wilt dit bedrijf flink groeien en daarom zijn ze op zoek naar jou! Wat ga je doen? Je draagt bij aan het ontwikkelen en onderhouden van bestaande webapplicaties die boordevol functionaliteit zitten. Deze applicaties worden gebruikt door de organisatie zelf en ook door de klanten. Inmiddels wordt er gewerkt met Laravel 8 en zijn er diverse koppelingen naar externe leveranciers. Verder zal

Bekijk vacature »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Front end developer

Functie Qua type opdrachten is er echt een verscheidenheid aan afnemers, zo werken ze met grote multinationals, maar ook met startups. Zo kom je te werken in een gevarieerde omgeving en kan je ook schakelen tussen verschillende culturen. De projecten variëren van greenfield projecten tot langdurige ontwikkeltrajecten. Hier wordt alleen maar gewerkt met aan front end projecten. Daarom maakt het onze partner niet uit waar jij kennis van hebt, als je maar gedegen kennis hebt van Javascript frameworks, Unit testing en ook bekend bent met de scrum methodiek. Eisen Minimaal 4 jaar relevante werkervaring Kennen en ervaring van Javascript frameworks

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij recent jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een erkende werkgever in regio Waalwijk zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze

Bekijk vacature »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

Senior Java Ontwikkelaar

Dit ga je doen Werken aan uiteenlopende interne projecten voor grote (internationale) organisaties; Ontwikkelen van diverse (web)applicaties en platformen met technieken als Java, Azure en ASP.NET; Complexe vraagstukken tackelen met jouw expertise en ervaring; Waar nodig help jij je collega's om samen tot de juiste oplossing te komen. Hier ga je werken Als Java Developer kom je te werken bij een internationale organisatie in regio Amsterdam die zich richt op procesoptimalisatie door middel van zeer complexe IT oplossingen. Dit doen zij op het allerhoogste niveau met vestigingen over heel de wereld en met een groot aantal aansprekende, maatschappelijk betrokken klanten.

Bekijk vacature »

Medior/Senior Python developer

Functie Jij als Senior Python developer hebt al ruime ervaring opgedaan. Bedrijven komen bij de organisatie om technische vraagstukken op te lossen. Jij als specialist bent dus de representatie van deze kwaliteit. Je zult de keuze krijgen tussen lange of korte projecten waarin je komt te werken in multidisciplinaire teams. Projecten die je gaat uitvoeren zijn zeer uitlopend. Zodoende kun je aan de ene kant kiezen voor een greenfield project en stroom je bij een ander project midden in een migratietraject in. Voor de ene klant ontwikkel je ene nieuwe portal en voor het andere project duik je veel meer

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

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 »

Back End Developer

As a Back End developer at KUBUS you will be developing the (web) application and services of BIMcollab. You have a focus on the back end of our software, for which we mainly work with C# and .NET. We use a full-stack approach, which means that in addition to the back-end, you will also help with other parts of the code. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact

Bekijk vacature »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Back-end PHP Software Developer - Juniorfunctie

Functieomschrijving Wij zijn op zoek naar een PHP Software Developer om ons team te versterken en mee te werken aan de ontwikkeling van eigen IOT-oplossingen. In deze functie ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor het uitlezen en managen van sensoren in machines. Je werkt nauw samen met een team van ontwikkelaars en engineers om de beste software-oplossingen te creëren. Jouw werkzaamheden zien er als volgt uit: Je bent in deze rol verantwoordelijk voor het ontwerpen, ontwikkelen en onderhouden van webapplicaties en softwaretoepassingen voor in-house ontwikkelde IOT oplossingen. Je werkt aan complexe databases en back-end

Bekijk vacature »

C# .NET Backend Developer HBO Javascript

Samengevat: Deze werkgever is een professionele speler op gebied van IT en E-Commerce. Wil jij werken voor een e-commerce platform? Heb je ervaring met C#, Javascript en Scrum? Vaste baan: C# .NET Developer Backend E-Commerce 3.400 - 4.500 Backend Developer Wij ontwikkelen software voor E-Commerce toepassingen. Ons eigen Content Management systeem biedt een integrale oplossing met diverse ERP software. Onze systemen zijn vaak complex en omvangrijk en draaien bij grote organisaties. Maar ook kleine ondernemingen hebben steeds vaker behoefte aan een vlekkeloos werkende E-Commerce oplossing. Zij bieden een uitdagende werkomgeving met gezellige collega's. Je krijgt veel vrijheid en er is

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 »

Low code Developer

Dit ga je doen Je richt je op het doorontwikkelen van bestaande applicaties en het geheel van scratch af aan opzetten van nieuwe applicaties binnen een low code platform; Je beoordeelt technisch ontwerpen en maakt de vertaalslag naar de technische oplossingen binnen het platform; Je voert testwerkzaamheden uit; Je adviseert de organisatie op jouw vakgebied; Je schakelt met business analisten en de architect om tot mooie oplossingen te komen; Je lost bugs op en denkt mee over een structurele oplossing. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze

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

20/04/2024 16:57:28
 
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.