class maar 1x

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

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 »

Junior Front end developer Onderwijssoftware

Functie Als Junior front end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van

Bekijk vacature »

PHP developer (Laravel, Docker, Gitlab-CI)

Functie Het IT-team bestaat momenteel uit 4 ontwikkelaars. Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten 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. Een groot deel van de systemen is gebouwd met behulp van het Laravel framework en PHP (minimaal 7.2), Docker voor lokaab gebruik en Gitlab-CI voor het deployen

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net 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. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Developer Front-end

Functie omschrijving Front-end Developer gezocht! Wij zijn op zoek naar een front-end developer voor een organisatie in de regio Veenendaal die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. Je hebt in deze functie een adviserende rol hiervoor moet je beschikken over een grote dosis vakinhoudelijke kennis. Je creëert unieke concepten door samen met collega’s en klanten te overleggen over aangeleverde designs. Hiermee draag jij je steentje bij aan de groeiambities van de klant. Jij wordt het vaste aanspreekpunt voor klanten wanneer het gaat over planningen, hierin is het jouw taak om alle betrokkenen goed

Bekijk vacature »

Senior Front-end developer

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

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 »

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

Bekijk vacature »

Java Developer

Dit ga je doen Het ontwikkelen van nieuwe software; Het ombouwen van de bestaande software; Zowel back- als front-end software ontwikkelen; Het testen; Het implementeren van de volledig geteste software; Het verzorgen van nazorg en het oplossen van bugs; Het opstellen en bijhouden van procesdocumentatie; Je draagt bij aan het agile/scrum processen van het team. Hier ga je werken Ongetwijfeld heb je een of meerdere producten van deze organisatie in huis. Het proces erachter, daar ben je ongetwijfeld minder bekend mee. Deze opdracht geeft je de kans meer over dit proces te weten te komen en een mooie bijdrage te

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 »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

18/02/2012 02:11:08
Quote Anchor link
Hallo,

Ik heb een Application class met uitsluitend statische functies. In deze class wordt de complete applicatie opgebouwd. Van deze class mag geen instantie worden gemaakt (de applicatie moet immers maar 1x worden opgebouwd).

Hoe kan ik nu bereiken dat er van die class geen instantie wordt gemaakt? Ik heb er nu een abstract class van gemaakt met statische functies. Dit werkt wel, maar is dit de juiste manier? Of kan ik er beter een normale class van maken en dan een singleton implementeren?
 
PHP hulp

PHP hulp

20/05/2024 07:12:20
 
- Jim  -

- Jim -

18/02/2012 02:17:17
Quote Anchor link
Door de class zelf ook static te maken.

Ik vraag me wel af of je dit echt wilt... (sterker nog, lijkt me onverstandig...)
Bijv.: Een lijst met gebruikers, kan je geen class 'User' meer gebruiken, dus moet je weer alles met arrays gaan klooien.

Misschien is het een goed idee om eens een goed boek over OO te lezen, waarin ook voor- en nadelen van bijv. statics staan beschreven. Inheritance en Design by Contract komen dan waarschijnlijk ook langszij. Dit zijn een paar voorbeelden van belangrijke onderwerpen in OO.
 
Ozzie PHP

Ozzie PHP

18/02/2012 02:21:01
Quote Anchor link
Ik ga toevallig nu beginnen een hoofdstuk te lezen over OOP. Maar ik heb het nu dus over een Application class die de configuratie inlaadt, routes inlaadt en vervolgens een action en controller... dus in die class staan echt eenmalige zaken.

"Door de class zelf ook static te maken."

Hoe maak je een class static?

static class MijnClass ??
 
- Jim  -

- Jim -

18/02/2012 02:39:53
Quote Anchor link
http://nl.php.net/manual/en/language.oop5.static.php
(deze had je vast al wel gelezen.. toch????, zo niet, RTFM!!!)

Static Class ondersteund PHP dus blijkbaar niet.
Dan zal je iets moeten maken als een soort van SingleTon Constructor.
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
<?php
private $deEnigeInstantie;

public function someFactory() {
 if ($deEnigeInstantie == null)
 {

    $deEnigeInstantie = new ClassVanEnigeInstantie();
 }

 return $deEnigeInstantie;
}


?>


Zoiets, uit mn hoofd, garandeer dus ook niet dat het zo werkt.
Gewijzigd op 18/02/2012 02:40:42 door - Jim -
 

18/02/2012 10:04:13
Quote Anchor link
Code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
class MijnClass
{
    //Private zodat vanaf buiten niet aangeroepen mag worden
    private function __construct()
    {
        
    }

    private function __clone()
    {

    }
}


En een abstracte statische class? Ik mag aannemen dat je die dan ergens extend? Want een abstracte class kun je toch niet direct gebruiken?
 
Wouter J

Wouter J

18/02/2012 10:20:46
Quote Anchor link
@Dillen, van een abstract class kun je geen instance maken. Maar een class met allemaal static methods en properties is eigenlijk niet echt een class. Static properties zijn eigenlijk een soort global variabele en static methods zijn gewoon functies die een leuk classnaampje voor hun hebben. Eigenlijk is een class met allemaal static dingen geen echt class, maar gewoon een leuke verzameling global variabelen en functies.
Daarom kun je het ook gebruik als hij abstract is.

@Ozzie, ik zou er een singleton van maken. Meer informatie: http://php.net/language.oop5.patterns.php#language.oop5.patterns.singleton
Gewijzigd op 18/02/2012 11:36:13 door Wouter J
 

18/02/2012 10:51:38
Quote Anchor link
Wouter J op 18/02/2012 10:20:46:
@Dillen, van een abstract class kun je geen instance maken. Maar een class met allemaal static methods en properties is eigenlijk niet echt een class. Static properties zijn eigenlijk een soort global variabele en static methods zijn gewoon functies die een leuk classnaampje voor hun hebben. Eigenlijk is een class met allemaal static dingen geen echt class, maar gewoon een leuke verzameling global variabelen en functies.
Daarom kun je het ook gebruik als hij abstract is.


Dan snap ik het, bedankt ;)

Maar dan is ook gelijk je hele OOP structuur weg.. Dan kun je er inderdaad beter een Singleton van maken. Of zoals al gezegd een Factory class die je website aan maakt.

Of je maakt gebruik van Dependency Injection ligt er net even aan wat/hoe je het wil!
 
Wim E

Wim E

18/02/2012 12:07:57
Quote Anchor link
En hoe zie jij dat voor je met de Dependency Injection? Betekent dat ik bij het instantieren van mijn klasse altijd een klasse moet meegeven.

Mijn voorkeur gaat voor de singleton pattern. Maar ga zeker de afwegingen maken om dit te gebruiken, kan in later stadium misschien in 1x heel onhandig worden :)
 
Niels K

Niels K

18/02/2012 12:23:00
Quote Anchor link
Volgens mij zoekt Ozzie gewoon het Front controller pattern.
Gewijzigd op 18/02/2012 12:24:12 door Niels K
 
Kees Schepers

kees Schepers

18/02/2012 12:25:18
Quote Anchor link
Haha Niels je haalt echt de woorden uit mijn mond. Toen ik Ozzie zijn vraag/bedoeling las dacht 'Jij bent gewoon op zoek naar het FrontController pattern' haha
 
Niels K

Niels K

18/02/2012 12:26:17
Quote Anchor link
Haha :-) Dat is de laatste tijd wel vaker voorgekomen ;-) Mooi dat we iig op één lijn zitten.
 

18/02/2012 12:27:11
Quote Anchor link
Kun je dan niet sowieso beter een Framework gebruiken als je begint met een Application class en daarna over gaat op een frontcontroller pattern?

Als je het steeds blijft uitbreiden bedoel ik =P
Gewijzigd op 18/02/2012 12:27:30 door
 
Niels K

Niels K

18/02/2012 12:28:33
Quote Anchor link
We hebben Ozzie al een keer Zend Framework aangeraden ;-)

Daarnaast is een Application class niet erg (mits je deze goed implementeert) maar dat was op dit moment niet het oplossing van zijn probleem.
 
Ozzie PHP

Ozzie PHP

18/02/2012 15:57:50
Quote Anchor link
Ik heb even een voorbeeldje van een frontcontroller bekeken en feitelijk lijkt dit wel op mijn Application class. Mijn application class voert alle benodigde handelingen voor een pagina request uit. Dus bijv. de settings worden ingeladen, de route wordt naar een router gestuurd die de juiste action en controller teruggeeft. En uiteindelijk wordt de pagina dan opgebouwd. Alleen ik noem het dus geen frontcontroller maar een Application. Maar... wat mijn vraag dus was / is... die Application die mag per pagina request maar 1x worden gebruikt. Immers je gaat niet tijdens 1 pagina request je pagina 2x opbouwen. Hoe kan ik voorkomen dat er meerdere instanties van de Application worden gemaakt? Ik wil dus dat die Application class slechts 1x gebruikt kan worden en daarna niet meer. Nou zo kwam ik er dus bij om de functies statisch te maken en de class abstract, zodat je niet kunt zeggen $application = new Application. Maar wellicht kan ik ook gewoon afvangen of de class al eens gebruikt is en als iemand de class opnieuw aanroept een Exception throwen? Bijv. zoiets?

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
class Application
{

static private $application_started = false;

  public function __construct()
    if (self::$application_started) {
      // gooi een Exception "De applicatie is al gestart!"
    }
    self::$application_started = true;
    // voer overige code uit
  }

}

?>


$application = new Application(); // dit gaat goed

$application2 = new Application(); // dit gaat fout, er wordt eeen Exception gegooid.

Of je zou ook alleen statische functies kunnen gebruiken, waarbij je de class wel abstract maakt (zodat je geen nieuwe instantie kunt aanmaken) en dat je dan de "start" functie public maakt en alle andere functies private en dat je dan in de start functie weer een check uitvoert. Dus hetzelfde principe als het vorige voorbeeld, maar dan met statische functies en een abstracte class, zodat de Application niet opnieuw kan worden aangemaakt. Zoiets:

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
abstract class Application
{

static private $application_started = false;

  static public function start()
    if (self::$application_started) {
      // gooi een Exception "De applicatie is al gestart!"
    }
    self::$application_started = true;
    // voer overige code uit
  }

}

?>


Wat is de beste manier?
Gewijzigd op 18/02/2012 15:58:42 door Ozzie PHP
 
Wouter J

Wouter J

18/02/2012 16:06:53
Quote Anchor link
Die laatste is niet goed, dat is doormiddel van een trick omgaan met het abstract keyword en dat lijkt me niet goed.

Ik zou de eerste gebruiken, als zou ik wel een LogicException gebruiken, of misschien wel een BadMethodCallException of een eigen exception maken.
 
Ozzie PHP

Ozzie PHP

18/02/2012 16:13:54
Quote Anchor link
Oké,dan ga ik voor de 1e optie. Ik heb besloten om alleen Exceptions te throwen als er iets mis gaat waardoor de applicatie moet stoppen. Ik heb een eigen Exception class. Nu nog heel simpel, maar die ga ik nog uitbreiden. Als er iets fout gaat als een bezoeker de site bezoekt dan toon ik een nette melding en mail ik de melding naar mezelf. Als er iets fout gaat in ontwikkel mode dan zie ik de foutmelding op m'n scherm.
 
Wouter J

Wouter J

18/02/2012 16:19:14
Quote Anchor link
Alleen exceptions? Dan haal je toch het hele nut van exceptions weg, namelijk dat je mooi verschillende lagen exceptions weg kunt zetten, zodat je die apart kunt opvangen?

Offtopic:
En een fout mailen ben ik niet zo'n voorstander van. Stel dat je 100 bezoekers per dag hebt en er zit een fout op in de Home controller. Dan krijg je dus 100 mailtjes, nog niet meegerekend dat mensen de pagina gaan refreshen.
 
Ozzie PHP

Ozzie PHP

18/02/2012 16:24:45
Quote Anchor link
Wouter, ik zou op dit moment niet weten waarom ik meerdere types nodig heb. Maar omdat ik zelf een class heb gemaakt, kan ik (eventueel als dat nodig mocht zijn) een type meegeven en aan de hand daarvan bepaalde handelingen doen. Maar ik gebruik exceptions alleen in situaties waarin de applicatie moet stoppen. Voor verkeerde invoer van gebruikers in invoervelden ga ik bijv. gewoon ifjes gebruiken. Is een persoonlijke keuze.

Dat van die mail is overigens wel een goede. Maar je moet toch weten dat er iets fout gaat? Je zou in je database kunnen bijhouden of een bepaalde melding al verstuurd is... maar als je database het niet doet gaat dat niet werken. Je zou eventueel in een bestandje kunnen bijhouden of de melding verstuurd is, maar wellicht zijn er nog betere oplossingen? Hoe dan ook, als er iets op de site fout gaat dan lijkt het me toch dat je een mailtje moet ontvangen...
 
Wouter J

Wouter J

18/02/2012 16:30:21
Quote Anchor link
Ik zou de bestanden loggen in een bestandje. Dat kan je via function.error-log doen, maar je kan ook een mooie log class maken (zie het topic 'logging clas opbouwen' en dan het antwoord van Jelmer).

In de log class kan je dan controleren of de laatste regel dezelfde fout is en als dat niet zo is kun je een mailtje sturen.
Fouten moet je altijd loggen in bestanden en niet in een db. Verder zou ik op het admin panel de mogelijkheid maken tot het uitlezen van deze log bestanden.
 
Ozzie PHP

Ozzie PHP

18/02/2012 16:43:31
Quote Anchor link
Heb je een link naar dat topic? De zoekfunctie laat me weer in de steek...
 
Wouter J

Wouter J

18/02/2012 16:46:42
Quote Anchor link
Die heb ik je vast al een keer gegeven, hij staat namelijk in het lijstje TopOO topics, maar hier is ie: http://www.phphulp.nl/php/forum/topic/de-opbouw-van-een-logging-class/81508/#577390
 

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.