PDO, OOP, config

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior BI ontwikkelaar (Front-end)

Junior BI ontwikkelaar (Front-end) Proactief – klantgericht – communicatief vaardig – analytisch Op zoek naar een functie waar jouw inbreng en kennis meer dan welkom is? Lees hieronder meer over deze vacature. De functie Als Junior BI ontwikkelaar (Front-end) ben je onderdeel van een gedreven intern BI-team. Binnen het team ben jij, samen met twee collega’s, verantwoordelijk voor de front-end ontwikkelingen. Je taken zijn: Het afstemmen en uitwerken van gebruikersaanvragen en informatie analyses; De bouw van rapportages en dashboards en het beheren hiervan; Het verbeteren van de processen; Meedenken over de ontwikkeling van het BI-domein. Het team is zo opgezet

Bekijk vacature »

IT-Traineeship junior software programmeur

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van ongeveer 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java/C#/Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Het opleidingstraject zelf sluit je af

Bekijk vacature »

IT-traineeship Low Code Developer

Vind jij het leuk om veel contact te hebben met een klant en je te verdiepen in een domein? Lijkt het je interessant om enerzijds met de klant mee te denken, maar tegelijkertijd ook zelf een bijdrage te leveren aan de implementatie van een IT oplossing? Wij zijn op zoek naar starters die aan de slag willen als low-code engineer. In deze functie bouw je aan applicaties met behulp van een low-code platform, zoals Outsystems, Blueriq, Mendix of Pega. Dergelijke platformen stellen je in staat om snel een werkende applicatie te ontwikkelen en zijn hierdoor heel geschikt voor maatwerk projecten.

Bekijk vacature »

Azure developer / Big Data

Bedrijfsomschrijving Als Azure Developer ga je in een team van experts aan de nieuwste digitale technologieën werken om klanten over de hele wereld te ondersteunen met het ontwerpen van slimme processen voor havens, steden, luchthavens en gebouwen! Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning zorgen jij en je team voor inzichten gevaren en klimaat risico’s voor steden, luchthavens, gebouwen en meer. Als Azure Developer met Big Data ervaring ga je aan de slag met diverse inhouse projecten en pas je jouw kennis toe in verschillende fases van de software development life

Bekijk vacature »

Java Developer Noord-Nederland

Heb jij een passie voor technologie en ben jij altijd al als eerste op de hoogte van ontwikkelingen en innovaties? Weet jij hoe je de verbinding moet maken tussen business en techniek? Dan ben je welkom bij ons! Wat ga je doen? Als Java developer bij CGI ga je deel uitmaken van de grootste en meest actieve Java community van Nederland. Je levert een bijdrage aan de technische realisatie van complexe systemen voor onze klanten. Hierbij maak je in eenvoudige taal aan de klant duidelijk welke softwareoplossingen op zijn of haar organisatie van toepassing kunnen zijn. Je weet voor onze

Bekijk vacature »

Web Developer (m/w/d)

Web Developer Location: Heidelberg, Germany Staff category: Staff Member Job type: IT and Infrastructure Contract duration: 4 years (project related) Grading: 6, 7 or 8; depending on experience (monthly salary starting from 3.7k€ up to 4.8k€ after tax, plus other benefits) Closing date: 23 May 2021 Reference number: HD01967 About this position IT Services operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. In collaboration with the EMBL-EBI in Cambridge our team is creating and implementing a new web infrastructure for all EMBL websites. We are looking

Bekijk vacature »

Senior C developer met 5G en C en mobile network e

Bedrijfsomschrijving Ben jij een C-developer in hart en nieren en wil jij werken aan solutions die bedoeld zijn voor mobile core networks? Dan hebben wij een grote technische uitdaging voor je bij een Nederlandse organisatie die mee speelt met de grote jongens op de internationale mobiele telecom markt? Onze opdrachtgever is een jonge, snelgroeiende en gespecialiseerde organisatie. Ze zijn meerdere keren genomineerd voor de GSMA Best Mobile technology en zijn een internationale erkende leverancier van wereldwijde (mobiele) telecommunicatiesoftware-oplossingen. Ze zijn de toonaangevende expert in signalerings oplossingen voor mobiele netwerken en leveren de meest geavanceerde software ter wereld voor routering en

Bekijk vacature »

Java Developer - Publieke veilgheid

Wil jij als Java developer meewerken aan innovatieve en complexe applicaties? CGI zoekt Java Developers die mee willen werken aan oplossingen voor complexe & maatschappelijk relevante vraagstukken waar de het domein Publieke Veiligheid (o.a. Justitie en politie) voor staat. Wat verwachten we van een Java Developer? Enthousiasme en de wil om je als Java Developer continue te ontwikkelen. Je vindt het leuk om toffe Java oplossingen uit te werken. Je volgt de laatste trends op de voet en je vindt het leuk te werken met de nieuwste technologie, zoals Quarkus, de sub-atomische Java stack die klaar is voor OpenJDK HotSpot

Bekijk vacature »

Full-stack Java Developer

Functieomschrijving Wil jij continu een organisatie en processen optimaliseren? Maak jij graag IT applicaties die impact hebben? Wil jij jezelf en Nederland in beweging houden? Wat ga je doen als Full-stack Java Developer bij Randstad Nederland? Als je als full-stack java developer ergens impact hebt, dan is het hier wel. Wij ondersteunen onze HR-dienstverlening met hightech apps en software, die we continu verbeteren. Zodat onze mensen ervoor kunnen zorgen dat bijvoorbeeld jouw koffer op de band terecht komt op het vliegveld, jouw pakketjes netjes op tijd worden geleverd en goed verzorgt wordt in het ziekenhuis. Onze innovaties volgen elkaar in

Bekijk vacature »

.Net Software Developer – Smart Logistics

Heb jij ervaring met applicatie ontwikkeling, testen en onderhoud van business-kritische .NET applicaties? En wil je graag met de nieuwste technologieën werken binnen een DevOps scrumteam? Wat ga je doen? “Use digital to move smarter De unit Smart Logistics binnen de Transport & Logistics sector van CGI ontwerpt, bouwt en onderhoudt veelal missie-kritische applicaties voor onze klanten uit de transport en logistieke sector. Zonder deze sector worden onze pakketjes niet op tijd afgeleverd, rijden de treinen niet meer van a naar b en varen schepen niet veilig de haven binnen. Om deze transport en logistieke ketens te monitoren en sturen,

Bekijk vacature »

Python Developer / Data Engineer / data pipelines

Bedrijfsomschrijving Bij dit grote, innovatieve technische bedrijf wil men graag flink groeien dit jaar, namelijk van zo'n 100 naar 120 mensen. In de afgelopen jaren is er hard gewerkt om een nieuw software product op de markt te zetten ter ondersteuning van hun fysieke producten en omdat dit een groot succes is, wordt het nu uitgerold over het hele bedrijf en daarmee een groot deel van de wereld. Er is dus werk aan de winkel! Jij werkt in het back-end team dat ervoor zorgt dat grote hoeveelheden data van de bron naar de front-end worden gebracht in het juiste formaat.

Bekijk vacature »

Typescript Developer / Cloud platform

Bedrijfsomschrijving Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er veel voor. Als Typescript ontwikkelaar word je onderdeel van het team gericht op de (door)ontwikkeling van hun eigen cloud platform welke wordt gebruikt door verschillende klanten. Hierbij wordt er veel gefocust op gebruikersgemak, denk bijvoorbeeld aan de ontwikkeling van een selfservice portal, monitoringsportals en een automatisch test framework. Hierin zal jij

Bekijk vacature »

Senior C# Developer

We’re Hiring! A UPS Senior C# Developer *REMOTE WORK POSSIBLE FOR THIS ROLE* UPS is the world's largest package delivery company – with a strong and recognizable brand, and a legendary reputation for great service. We are looking for an enthusiastic Senior C# Developer to join our IT Team, As a Senior Developer at UPS you work on delivering functionality for highly complex IT systems. You collaborate in agile teams and participate in emerging technologies and processes like CI/CD and DevOps to ensure that we meet our objectives effectively and efficiently. Your primary role is to perform full system life

Bekijk vacature »

Full stack Developer meteorologische en hydrologis

Als C#.NET Developer geef jij klanten inzicht in hun meteorologische en hydrologische datagegevens. Denk hierbij aan gegevens over wind, zicht, temperatuur en neerslag, maar ook stroming of golven. Je werkt voor internationale klanten in de scheepvaart, luchtvaart en offshore. Het is een functie met veel vrijheid en eigen initiatief , waarbij je uiteenlopende klant vragen vertaald naar nieuw te ontwerpen software oplossingen. Wat vragen zij: Afgeronde HBO of WO studie richting Informatica, ICT of soortgelijk; Minimaal drie jaar C#/.NET ervaring; Ervaring met HTML, CSS, Angular, Typescript en CI; Ervaring met Azure is een pré; Je beheerst de Nederlands en Engelse

Bekijk vacature »

Full Stack Developer / .NET

Bedrijfsomschrijving Deze organisatie is gesitueerd in de omgeving van Zwolle en is actief binnen de financiële dienstverlening voor klanten. Ze is actief op twee locaties, één in de Randstad en één in het Noordoosten van het land. Voor de locatie in de regio Zwolle, waar ongeveer 35 collega's werken, zijn zij op zoek naar een medior Full Stack Developer. Het betreft een dynamische omgeving waar collega's prettig en informeel met elkaar omgaan. De organisatie houdt zich grotendeels bezig met het ontwikkelen van financiële applicaties welke onder andere bestaan uit een CRM, DMS, diverse klantportalen en calculatie software. Als Full Stack

Bekijk vacature »
W W

W W

13/12/2009 20:11:00
Quote Anchor link
Onduidelijkheid.


Wat is de beste manier om gebruik te maken van PDO, in combinatie met een config file waar de login gegevens van de DB in staan, in classes. Sommige classes hebben al een extend of een implements. En bij sommige heb ik wel database connectie nodig, en bij sommige niet.

Met vriendelijke groet.
 
PHP hulp

PHP hulp

18/05/2021 19:59:13
 
Andreas Warnaar

Andreas Warnaar

13/12/2009 20:24:00
Quote Anchor link
Misschien heb je hier iets aan.


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
/**
 * Database class
 * Extends PDO make it available as a Singleton
 * @author Andreas Warnaar
 */

class Db{
    
    /**
     *@var object self::Db
     */

    private static $instance = NULL;
    
    /**
    * the constructor is set to private so
    * so nobody can create a new instance using new
    */

    private function __construct() {}
    
    /**
    * Return DB instance or create intitial connection
    * @return object (PDO)
    * @access public
    */

    public static function getInstance() {
    
    if (!self::$instance)
        {

        $config = Config::getInstance();
        $registry = Registry::getInstance();
        $section =$config->getValue($registry->configsection);
        $dbhost = $section['database.host'];
        $dbname = $section['database.name'];
        $dbpass = $section['database.pass'];
        $dbuser = $section['database.user'];
        self::$instance = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
        self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }

    return self::$instance;
    }

    
    /**
    * Like the constructor, we make __clone private
    * so nobody can clone the instance
    */

    private function __clone(){}
}



[
/code]
Gewijzigd op 01/01/1970 01:00:00 door Andreas Warnaar
 
W W

W W

13/12/2009 20:52:00
Quote Anchor link
En hoe haal je die gegevens op met de section? Ik snap niet hoe jij de config gegevens ophaalt, en wat nu te doen bij een nieuwe classe? elke keer deze classe aanroepen voor connectie?
 
Andreas Warnaar

Andreas Warnaar

13/12/2009 22:21:00
Quote Anchor link
Ik kan niet alles verklappen :)

Kijkens naar de volgende sites:
http://php.net/manual/en/function.parse-ini-file.php(Ik neem aan dat je configfile een ini bestand is)

http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html#7
http://www.phpro.org/tutorials/Model-View-Controller-MVC.html
http://www.phpro.org/articles/Application-Configuration.html#6.1
Deze heeft mij opweg geholpen bij het begin.
Gewijzigd op 01/01/1970 01:00:00 door Andreas Warnaar
 
W W

W W

14/12/2009 18:43:00
Quote Anchor link
Ben bekend met de ini file, de MCV. Maar ik snap de Singleton niet echt. elke keer als ik een class maak, hoe roep ik de Singleton gedeelte aan zodat ik altijd database verbinding heb.


Ik wil dus niet bij elke class in de construct de database connectie maken.

Wat ik nu heb, en wat mij gewoon fout lijkt is:

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 Voorbeeld
{
    public function __construct ()
    {

        //maak hier database connectie
    }
    
    public function innit ()
    {

        //doe hier iets met de database.
    }
}


?>
 
Jelmer -

Jelmer -

14/12/2009 19:22:00
Quote Anchor link
Singleton lijkt me niet helemaal ideaal voor een database-verbinding. Een Singleton class is een class waar maar één instantie van kan bestaan, en deze instantie wordt overal gebruikt. Soms wil je een tweede, of een derde database-verbinding erbij hebben (andere user, andere database, andere verbinding zodat je die ene in de transactie kan houden terwijl je die andere gebruikt voor andere dingen)

Maar wat je zoals jezelf al aangeeft ook niet wil is ieder object een eigen verbinding laten opzetten. Wat je bijvoorbeeld kan doen is je configuratie in een class zetten (want in PHP is een class-definitie ook maar een tekstbestandje, net als een ini-bestandje. Maar je krijgt er wel veel meer flexibiliteit en simpelere code voor terug) Zoiets bijvoorbeeld. De class Environment bevat allemaal static methods die jouw configuratie bevat.
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
<?php

// static class die de PDO verbinding maar één keer aanmaakt.
class Environment
{
    static public function database()
    {

        static $pdo;
        
        if(!$pdo)
            $pdo = new PDO('...');
        
        return $pdo;
    }
}


class Gastenboek
{
    public function berichten()
    {

        $stmt = Environment::database()->query("SELECT * FORM berichten");
    }
}

?>
 
W W

W W

14/12/2009 19:28:00
Quote Anchor link
Ok, dat ziet er beter uit. Was al volop aan het lezen over singleton, maar ik snap niet hoe dit mijn verbinding kan behouden overal met die classe. Dus jij zegt alle configuratie gewoon in een classe zetten met static's? En functies maken die gegevens die je nodig hebt returnt of gewoon connecties etc aanmaakt?
 
Jelmer -

Jelmer -

14/12/2009 19:39:00
Quote Anchor link
Ik gebruik de logingegevens voor de database nergens anders dan bij het verbinden met de database zelf. Dus dan lijkt het me slimmer om een instantie van PDO uit m'n configuratie te laten komen. Kan ik ook nog beslissen of ik PDO, of een andere class die je op dezelfde manier als PDO gebruikt instantieer.

Singleton is meer geschikt voor classes die wel een bepaalde staat hebben, maar ook maar één instantie van kan zijn. Bijvoorbeeld een object voor de uitvoer van je script (een response-object) Je pagina kan maar één uitvoer hebben (je kan niet met 2 html-pagina's antwoorden) maar je kan die uitvoer wel geleidelijk opbouwen. (headers toevoegen, stukjes html toevoegen)

edit: singleton heb je strikt gezien nooit nodig in PHP. Alles wat met een singleton class kan kan in weze ook met een class met alleen maar static methods. Het enige voordeel van een singleton class is dat je je object op dezelfde manier aanspreekt als een normaal object ($variabele->method()) Daardoor zet je niet overal in je code wat er daadwerkelijk voor object in $variabele hebt zitten, en kan je er ook nog een ander object instoppen dat dezelfde methods heeft. (ik geloof dat het loose coupling heet)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 



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.