MVC

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior BI Developer

Bedrijfsomschrijving De organisatie waar je komt te werken als BI Developer is een grote internationale financiële instelling. Met vele vestigingen in Nederland zijn ze een belangrijke speler op de financiële markt. Jij zal hoofdzakelijk op het kantoor in Amsterdam werkzaam zijn, maar het kan ook voorkomen dat je af en toe naar een andere vestiging gaat. Het bedrijf telt ongeveer 5000 medewerkers waarvan ruim 150 ICT'ers. Het team waar je in komt te werken als (Junior) BI Developer is een ambitieus BI team dat zich bezighoudt met lokale en internationale uitdagingen. Zo zit een andere Junior BI Developer, 2 Medior

Bekijk vacature »

Java / Hippo developer

Functieomschrijving Ben jij een ervaren Java/Hippo ontwikkelaar en op zoek naar een internationale, creatieve en innovatieve omgeving? Wil jij werken in een divers applicatielandschap waar alle aspecten van het vakgebied van een developer aan bod komen, zodat je je volledig kan ontplooien? Bij Randstad Groep Nederland (HQ) zijn we op zoek naar jou! Wij zijn op zoek naar een Java/Hippo ontwikkelaar die per direct ons interne team komt versterken. Java/Hippo development bij Randstad Groep Nederland (HQ) Je komt te werken in het Online Search Experience team. Dit team werkt samen met de product owner aan onze web omgevingen van Randstad

Bekijk vacature »

PHP Developer / Drupal / Symfony / API's

Bedrijfsomschrijving Voor onze klant, een vooruitstrevend en informeel bedrijf in het zuiden des lands, zoeken wij een ervaren PHP Developer. Het bedrijf, dat bestaat uit zo'n 25 mensen, maakt slimme online oplossingen voor diverse klanten in de regio maar ook internationaal. Voor grote hoeveelheden data gebruiken ze een Drupal gebaseerd platform en hieraan wordt ontwikkeld met PHP, Symfony en Javascript. Ook werk je aan koppelingen met andere applicaties via API's. Er lopen diverse toffe projecten waar je als ervaren ontwikkelaar aan bij kan dragen, zo loopt er momenteel een internationaal project waarin data vanuit een grote telescoop wordt gecentraliseerd in

Bekijk vacature »

Angular Developer

Dit is de rol Boels pitstop Zet jij het Digital Solutions Team van Boels in Sittard op scherp? Als Angular Developer bouw je aan intuïtieve, goed werkende en gebruiksvriendelijke webpagina’s en apps. Wat onze klanten online zien, dat maak jij. Een hele verantwoordelijkheid, die je gelukkig niet alleen hoeft te dragen. Samen met je collega’s van de afdeling Digital Solutions en onze partner agency werk je aan een nieuw online Boels platform. Dit is een internationaal meerjaren programma waarbinnen we onze customer journeys realiseren. Hiermee gaan we onze klanten een nog betere online ervaring bieden waarbij de focus ligt op

Bekijk vacature »

Erv.Software Ontwikkelaar voor slimme oplossingen

Dutch is mandatory for this position. Ervaren Software Ontwikkelaar voor slimme oplossingen binnen de Transport & Logistiek (C#.NET/Azure/65K/R’dam) Jij gaat samen met collega’s (complexe) logistieke vraagstukken oppakken, met als doel slimme software oplossingen te bedenken en te ontwikkelen. Een maaltijd box leverancier van Nederland was op zoek naar een oplossing om hun logistieke processen te optimaliseren en de klantervaring te verbeteren. Hiervoor is een app gebouwd die het hele distributie proces inzichtelijk maakt van magazijn tot bezorger, en van klantenservice tot aan klant. Je kan zien waar welke bezorger zich bevind, maar ook welke tempratuur de producten op dat moment

Bekijk vacature »

Back-End Developer PHP

Back-End Developer PHP7 (Laravel) We search for our client with an energetic, young and fast growing team a new pearl in Back End Dev to join their team in the centre of Amsterdam! The company is based on the newest technology, is funded by top-tier investors, delivers on an ambitious roadmap, and is supported by a talented team. We search for a full-time Back-End Developer to join our team in Amsterdam. We are looking for a pro-active, software developer with experience building large scale SaaS applications. You'll work autonomously, will ship multiple features a week, help determine the roadmap and

Bekijk vacature »

Business Intelligence Developer

Dit is de rol Boels pitstop De organisatie Boels is zich aan het professionaliseren en digitaliseren. Jij gaat hier een grote rol in spelen. Wat doet de organistaie Boels? Hoe doen we het? Waar staan we? Waar willen/moeten we naartoe? De afdeling BI krijgt steeds meer (aan)vragen voor dashboards/data etc. vanuit de organisatie om dit te onderzoeken. Dit doen we centraal vanuit Sittard. Als Business Intelligence Developer werk je aan projecten (klein of groot), waar we met data inzichten verschaffen aan onze organisatie. Je denkt mee met onze interne stakeholders, draagt initiatieven aan en zorgt er vervolgens voor dat de

Bekijk vacature »

Full Stack Java Developer

Functieomschrijving Met jouw expertise zorg je als java developer voor de meest plezierige en efficiënte klant ervaring. Met jouw state-of-the-art-systemen verbeter je onze business en maak je echt impact! Want als je in ons tech team werkt, houd je jezelf en Nederland in beweging. Wij zijn continu bezig onze business en processen te optimaliseren, zodat we onze klanten en kandidaten meer gemak, snelheid en transparantie kunnen bieden. Impactvolle tech, daar doen we het voor. Artificial intelligence, machine learning en innovatieve zoek oplossingen. Zoek oplossingen? Yes! Solliciteren moet makkelijk en leuk zijn. Toch? Daar kan jij aan bijdragen! wat ga je

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 »

Medior C# Developer

You'll build modern applications for Coolblue back’s office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

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 »

Front-end Ontwikkelaar - Publieke Veiligheid

Help JIJ onze klanten in de Digitale Transitie? Neem dan contact met MIJ op! Wij geloven dat organisaties meer wendbaar moeten worden én blijven. Dat maakt organisaties toekomstbestendig. Ben jij een leergierige software engineer met passie voor front-end development? Wil jij je verder ontwikkelen in de nieuwste front-end technologieën? Zoek jij uitdagende klussen in teamverband? Wij bieden jou die uitdaging en de mogelijkheden jezelf verder te ontwikkelen. We leveren een bijdrage aan het veiliger maken van Nederland en daar zijn we trots op! Heb je minimaal drie jaar ervaring in zo’n mooie rol, ben je inspirerend en dynamisch? In de

Bekijk vacature »

Microsoft 365 Engineer

Senior Microsoft 365 Engineer Welkomstbonus van € 5.000,- Bij T2 zorgen we goed voor elkaar en doen wij leuke dingen met leuke mensen. We zorgen voor uitdagende opdrachten zodat jij jezelf onbeperkt kan blijven ontwikkelen. Ben jij een ervaren Microsoft 365 engineer en wil je het beste uit jezelf halen? Dan ben je van harte welkom bij T2 en ontvang je onze welkomstbonus ter waarde van € 5.000,-. Wat mag je nog meer verwachten? Als je met ons de uitdaging aangaat dan bieden we je het volgende: Dienstverband voor onbepaalde tijd Salaris tussen de € 4.000,- en € 4.500,- bruto

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 »

Software Developer die een bijdrage levert aan de

Dutch is mandatory for this position. Vind jij het belangrijk om een baan te hebben die bijdraagt aan een schonere wereld? Een baan waarbij je direct impact hebt in het digitalisering van informatiestromen, oftewel een wereld zonder papier. Doormiddel van hun eigen ontwikkelde software kunnen bedrijven digitaal documenten beheren, delen, ondertekenen en archiveren. Dat betekent dat er geen printers of scanners meer nodig zijn en je bent niet meer afhankelijk van koeriers. Dit scheelt tijd, geld en grondstoffen. Samen met een team van vijf developers ga je nieuwe software oplossingen ontwikkelen. Daarnaast ga je ook nieuwe gebruiksvriendelijke functionaliteiten aan onze

Bekijk vacature »
Steen

steen

02/01/2010 23:58:00
Quote Anchor link
Beste PHP'ers,

Ik heb van de volgende site een MVC-pattern (of wat het ook precies moet voorstellen gedownload):
http://www.phpro.org/tutorials/Model-View-Controller-MVC.html
(het .tar.gz bestand bevat alleen geen .htaccess, de code staat op de site)

Nu wil ik dit uitbreiden met een database, maar wil ik de sql scheiden uit de controller (model). Hoe moet nu bijvoorbeeld een indexModel.class.php er uit zien?
 
PHP hulp

PHP hulp

18/05/2021 18:32:13
 
Steen

steen

04/01/2010 14:43:00
Quote Anchor link
bump
 
Bas IJzelendoorn
Beheerder

Bas IJzelendoorn

04/01/2010 15:00:00
Quote Anchor link
Vind je vraag onduidelijk. en betreft

Quote:
Hoe moet nu bijvoorbeeld een indexModel.class.php er uit zien?
[/qoute]


hoort dit niet onder aanvragen of vacatures. Je moet zelf wel met een opzetje anders komen.
Gewijzigd op 01/01/1970 01:00:00 door Bas IJzelendoorn
 
Jelmer -

Jelmer -

04/01/2010 15:20:00
Quote Anchor link
Je model is meer een naam om een deel van je code aan te geven. Alle code die je gebruikt om in essentie te doen wat je wilt doen is je model. Alle code die daaromheen nodig is, zoals het afhandelen van forms, het genereren van queries, het omzetten van forumposts in HTML, is dat niet. Je model is je business logic, en eigenlijk dat wat je hele applicatie zou zijn als je direct PHP code zou kunnen lezen en uitvoeren en geen website eromheen nodig zou hebben.

Dus je hebt geen indexModel, omdat index een onderdeel is van het weergeven, en niet van dat wat je wilt weergeven.

Bij een gastenboek bestaat je model bijvoorbeeld uit een class Bericht, en een class Berichten_Store. Dit zijn de enige twee classes die beschrijven hoe daadwerkelijk berichten in het gastenboek komen, en hoe die berichten eruit zien.

Dus de hamvraag is meer: Wat wil je maken?
 
Steen

steen

04/01/2010 15:22:00
Quote Anchor link
Nee dit is écht geen vacature =). Ik zou graag willen weten hoe ik zo'n pattern uit zou moeten breiden. Er is alleen een database class gegeven, maar niet het gebruik daarvan. Nu zou ik de sql-code gescheiden willen hebben (een Model), maar ik weet niet precies hoe ik dit aan zou moeten pakken.
 
Henk PHP

Henk PHP

04/01/2010 17:21:00
Quote Anchor link
@Jelmer, in die classes Bericht en Berichten_Store kunnen wel queries zitten toch? ookal zijn ze het model?
 
Mr D

Mr D

04/01/2010 17:28:00
Quote Anchor link
De queries naar je database voer je op een plek uit, de queries voor het opslaan en ophalen van berichten voer je allemaal uit in je Berichten_Store. Als je Berichten_Store bijvoorbeeld een method getAll() heeft voert deze method de query uit en returnt vervolgens en ArrayObject of een gewone array van Bericht objecten
Gewijzigd op 01/01/1970 01:00:00 door Mr D
 
Henk PHP

Henk PHP

04/01/2010 18:07:00
Quote Anchor link
Mr D schreef op 04.01.2010 17:28:
De queries naar je database voer je op een plek uit, de queries voor het opslaan en ophalen van berichten voer je allemaal uit in je Berichten_Store. Als je Berichten_Store bijvoorbeeld een method getAll() heeft voert deze method de query uit en returnt vervolgens en ArrayObject of een gewone array van Bericht objecten

Maar de Berichten_Store kan dus wel een query (naar de database) uitvoeren?
 
Jelmer -

Jelmer -

04/01/2010 20:41:00
Quote Anchor link
Ja. Bericht kan niet een query uitvoeren, want dat is voor bericht niet een verantwoordelijkheid. Berichten_Store heeft een database-verbinding nodig om te kunnen werken, want berichten opslaan en ophalen is wel zijn verantwoordelijkheid.
 
Steen

steen

04/01/2010 21:08:00
Quote Anchor link
Hoe zou ik dat script verder moeten gebruiken wanneer ik bijvoorbeeld, het simpelste voorbeeld dat er zo'n beetje bestaat, een nieuwssysteem wil maken?
 
Jelmer -

Jelmer -

04/01/2010 21:15:00
Quote Anchor link
Kijk even in de OOP categorie van dit forum (zolang die nog bestaat) want daar staan tal van topics in waarin in en anderen uitgebreid voorbeelden geven. Zeker van de afgelopen twee weken.
 
Steen

steen

04/01/2010 21:21:00
Quote Anchor link
Dat is voor mij een beetje het probleem, als er zoals die link bovenaan een duidelijke basis (met een voorbeeldje voor een nieuwssysteempje of mini-blog ofzo) zou zijn zou ik dit verder kunnen uitwerken voor grotere systemen. Alleen nu heb ik die link, alleen is het model niet compleet. Zou iemand misschien de moeite kunnen/willen nemen om dat script verder te verwerken (niet compleet, maar één of twee functies ofzo) zodat het mij duidelijk wordt. Dan zal ik het complete systeem aan de libary toevoegen als het klaar is.
 
Jelmer -

Jelmer -

04/01/2010 22:26:00
Quote Anchor link
Je kan heel simpel beginnen. Je maakt in je database een tabel met nieuwsberichten aan en zet er vast wat nieuwsberichten in.

Vervolgens maak je de class die een nieuwsbericht representeert. Eigenlijk is dit niet veel meer dan een veredelde array waarvan alle keys alvast bekend zijn :) Maar dit is programmeren in objecten, en arrays gebruik je dan alleen nog om lijsten mee te schrijven ;)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
class News_Item
{
    public $id;
    
    public $title;
    
    public $content;
    
    public $pubDate;
}

?>

De properties komen eigenlijk direct overeen met de kolommen van je database-tabel.

Mooi, nu heb je de records in de database, en het vormpje waarin die records gegoten moeten worden. Daarvoor de News_Store:
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
<?php
class News_Store
{
    protected $pdo;
    
    public function __construct(PDO $pdo)
    {

        $this->pdo = $pdo;
    }

    
    public function findAll()
    {

        $stmt = $this->pdo->query('SELECT id, title, content, pubDate FROM news_items');
        
        // dit zorgt ervoor dat je News_Item objecten terugkrijgt
        // van PDO, compleet ingevuld en wel. Later zal dit wss
        // niet meer kunnen omdat je News_Item class ingewikkelder
        // wordt, maar voor nu is het heerlijk kort :)

        $stmt->setFetchMode(PDO::FETCH_CLASS, 'News_Item');
        
        return $stmt->fetchAll();
    }

    
    public function findById($id)
    {

        $stmt = $this->pdo->prepare('SELECT id, title, content, pubDate FROM news_items WHERE id = :id');
        
        $stmt->bindParam(':id', $id);
        
        $stmt->setFetchMode(PDO::FETCH_CLASS, 'News_Item');
        
        return $stmt->fetch();
    }
}

?>

Nu kan je je controller vullen. 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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php

// (wat een stomme naamgeving, classes met een kleine letter
// beginnen? Dat is zooo not done!)

class NewsController extends baseController
{
    public function __construct($register)
    {

        parent::__construct($register);
        
        $this->news_store = new News_Store($this->register->db);
    }


    public function index()
    {

        $news_items = $this->news_store->findAll();
        
        $this->register->template->news_items = $news_items;
        
        $this->register->template->show('news_index');
    }

    
    public function item()
    {

        $news_item = $this->news_store->findById($_GET['id']);
        
        $this->register->template->news_item = $news_item;
        
        $this->register->template->show('news_item');
    }
}

?>


Snapie?
 
Mr D

Mr D

05/01/2010 12:47:00
Quote Anchor link
@Jelmer mooi voorbeeldje. Maar om het even wat moeilijker te maken ;). Wat als je ook de mogelijkheid hebt om ook bij elk nieuwsbericht reacties te plaatsen. En je wilt bijvoorbeeld bij elk nieuwsbericht alleen de laatste 5 reacties tonen.

In je template wil je dan waarschijnlijk zo iets doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? foreach ($news_item->getLatestComments(5) as $comment): ?>

hier wat html
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? endforeach ?>


En dan voor je News_Item een method setCommentStore(Comment_Store $store) zodat elk nieuwsbericht zelf zijn laatste reacties kan ophalen via de Comment_Store. Dit is zo ongeveer de manier waarop ik dit zou doen. Maar ik ben benieuwd of er betere manieren zijn en hoe jij dit oplost? :)
 
Jelmer -

Jelmer -

05/01/2010 23:47:00
Quote Anchor link
Lijkt mij een prima manier :)

Ik denk dat je inderdaad de News_Item wel kan koppelen aan de comments. Mocht je dat niet willen, dan kan je altijd nog iets doen a la $comment_store->getLatestForNewsItem($news_item, 5). Want comments zijn wel afhankelijk van nieuws, maar andersom niet.
 



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.