PDO, OOP, config

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Grafisch vormgever

Standplaats: Maasland Aantal uren: 32 – 40 uur per week Opleidingsniveau: HBO werk- en denkniveau Ben jij een ambitieuze grafisch vormgever met een passie voor creativiteit en oog voor detail? Vind jij het daarnaast leuk om ook marketingactiviteiten op te pakken? Dan zijn wij op zoek naar jou! Bedrijfsinformatie Westacc Group BV is het zusterbedrijf van HABA en specialiseert zich in (maatwerk) oplossingen voor (elektro) techniek en verlichting in de kampeerbranche. Zij produceren en assembleren onderdelen voor caravans, campers en boten. Voor een groot aantal caravan- en campermerken leveren wij producten als zekeringkasten, invoerdozen, acculaders, schakelmateriaal en verlichting. De producten

Bekijk vacature »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

C# .NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Ontwikkelen in Blazor; Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie. Hier ga je werken Binnen deze organisatie werken duizenden mensen binnen allerlei verschillende disciplines. Tevens hebben zij veel specialiteiten in huis, waaronder ook .Net Developers. Ter uitbreiding van een nieuw team en ter ondersteuning van het project zijn ze opzoek naar een nieuwe collega voor het team. Als C#.NET Developer zal jij je

Bekijk vacature »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

Junior .NET developer

Functie Jij hebt natuurlijk net jouw Bachelor op zak en gaat nu voor het eerst aan de slag bij een werkgever als junior .NET ontwikkelaar. Waarschijnlijk lijkt het jou spannend om ineens aan de slag te gaan bij klanten in de consultancy. Maak je niet druk, jij komt hier terecht in een warm bad en wordt totaal niet in het diepe gegooid. Zodra jij hier begint wordt jij gekoppeld aan een persoonlijke manager met een persoonlijk ontwikkelplan. Jij krijgt een scala aan trainingen, denk aan trainingen ten behoeve van het opdoen van zelf kennis en gedragscompetenties, maar ook trainingen voor

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 »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn ze op zoek naar een Technische front end developer. Momenteel hun front end back end team gescheiden aan het werk. Hier willen ze verandering in krijgen. Omdat ook veel interne applicaties ontwikkeld worden zoeken ze iemand die hen kan helpen om de interne applicaties te voorzien van de juiste Vue.js componenten. Zodoende willen ze de interactie tussen front end en back end versoepelen en de volgende stap binnen het platform gaan zetten. Deze componenten die jij ontwikkeld zullen in elk project gebruikt worden. Het back end team bestaat momenteel uit 8 ontwikkelaars

Bekijk vacature »

Senior Javascript developer

Functie Het platform is gebouwd in een moderne JavaScript stack, die gebruikt maakt van:  React.js  Redux  TypeScript  Node.js  Google Cloud functions (node.js)  Semantic UI Alle code wordt getest en beoordeeld door collega developers. De continuous integration pipeline maakt het mogelijk om elke dag waarde te leveren aan hun klanten. Het ontwikkelproces is pragmatisch en gebaseerd op Scrum. Wat je zult doen: Ten eerste kun je nadrukkelijk jouw eigen stempel drukken op de technologie, het product en de cultuur van het bedrijf. Je bent bezig met het uitwerken van de architectuur van nieuwe functionaliteiten op

Bekijk vacature »

Full stack Developer / .NET / Angular / Azure

Dit ga je doen Jij gaat je als Full Stack .NET Developer voornamelijk bezighouden met: Het vertalen van concepten naar passende innovatieve en duurzame oplossingen; Het ontwikkelen van bedrijf kritische en gebruiksvriendelijke applicaties voor de internationale markt en intern gebruik; Bouwen aan software om het Internet of Things netwerk te ondersteunen; Het maken en onderhouden van interfaces tussen systemen aan de hand van API's; Het onderhouden en blijven verbeteren van de ontwikkelde software. Hier ga je werken Binnen deze organisatie zal jij als Full Stack .NET Developer een belangrijke rol krijgen en ga je dagelijks de uitdaging aan om maatwerk

Bekijk vacature »

Scrum Master

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Scrum master op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je begeleidt twee teams binnen de afdeling Platform Services (PLS). Je helpt mee de devops manier van werken van de teams verder door te ontwikkelen. Je helpt de PO bij het managen van de product backlog; het voorbereiden van

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 »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

Social Media Specialist

Social Media Specialist locatie: Rotterdam (Zuid Holland) Wij zoeken op korte termijn een nieuwe collega, een social media specialist/ adviseur sociale media (24 uur), voor ons sprankelende team Communicatie van CJG Rijnmond. Onze focus ligt op het informeren en binden van onze in- en externe klanten en stakeholders en het versterken van onze naamsbekendheid en zichtbaarheid. Dat doen we in nauwe samenwerking met elkaar. Over de functie Ons team bestaat uit 7 communicatieprofessionals met ieder een eigen expertise. Als lid van het online team ben je verantwoordelijk voor het ontwikkelen, uitvoeren en analyseren van onze socialemediastrategie. Ook stel je campagnes

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden je HBO ICT Informatica diploma in ontvangst mogen nemen? Of heb je een aantal jaar ervaring als Software Developer en ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een gewaardeerde werkgever in de regio van Goirle zijn wij op zoek naar een junior/medior Back-end Developer met affiniteit met MS Acess. Samen met een vooruitstrevend team ben je verantwoordelijk voor het ontwikkelen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL en affiniteit met MS Acess. Je bent klantvriendelijk en flexibel ingesteld en vindt het leuk om klanten te

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

27/04/2024 01:27:25
 
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.