MVC friendly urls

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Java Developer bij een jonge groeiende organisatie

Bedrijfsomschrijving Vind jij het als Java developer ook zo belangrijk dat een bedrijf je de ruimte en tijd geeft voor persoonlijke ontwikkeling? Dan zit je hier helemaal goed. Deze jonge organisatie is opgericht in 2018 en is ondertussen uitgegroeid tot een club van ongeveer 30 medewerkers. Het gaat hier om een echte Java club, die vrijheid en verantwoordelijkheid erg belangrijk vinden. Het bedrijf heeft een informele sfeer en de teams zijn erg hecht met elkaar. Ze delen graag de kennis en ervaringen met anderen, maar vinden andermans mening ook zeer belangrijk. De organisatie zet zich in voor ontwikkeling en besteed

Bekijk vacature »

.NET Developer

Dit ga je doen Tot jouw takenpakket behoort onder andere: Webapplicaties ontwerpen, bouwen, testen en implementeren in .NET/C#.; Ontwikkelen, implementeren en beheren van maatwerkapplicaties; Onderhouden en beheren van standaardpakketten; Onderzoeken en beoordelen van nieuwe technieken. Hier ga je werken Als .NET ontwikkelaar kom je te werken bij een grote semioverheidsinstelling in Nijmegen. De organisatie staat garant voor het leveren van onderwijs en les- en onderzoeksmateriaal voor duizenden betrokkenen. De organisatie wil bijdragen aan een gezonde, vrije wereld met gelijke kansen voor iedereen. Binnen de teams hangt een open en collegiale cultuur met veel aandacht voor een prettige en sociale werksfeer.

Bekijk vacature »

SQL database developer

Functie omschrijving Voor een softwarebedrijf gespecialiseerd in het ontwikkelen van logistieke software in omgeving Tilburg zijn wij op zoek naar een ervaren SQL database developer. Je gaat werken aan uitdagende, complexe projecten. Iedere klant/project betekent maatwerk in de database. Jouw werkzaamheden zullen er als volgt uit zien: Je bent verantwoordelijk voor de gehele ontwikkelstraat. Van architectuur tot ontwikkeling Je gaat je bezig houden met het ontwerpen en ontwikkelen van MS SQL server databases. Je gebruikt hiervoor T-SQL als programmeer laag. Je begeleidt als lead developer de projecten bij klanten van A – Z. Je sluit aan bij meetings met klanten,

Bekijk vacature »

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

Bekijk vacature »

Front end developer

Functie Binnen de functie van Front-end developer werk je mee aan uitdagende klantprojecten. In teamverband werk je aan de voorkant van onze state-of-the-art portaal oplossingen en apps. Dit alles gebeurt in een multidisciplinaire omgeving waarbij je de ruimte hebt om te sparren, je ideeën scherp te stellen, en waar je met de benodigde kennis en ervaring om je heen altijd terecht kunt bij je collega’s voor vragen en ondersteuning. Meestal werk je vanuit ons kantoor maar we bieden ook alle faciliteiten om thuis te kunnen werken. Voor sommige projecten ga je mee naar de klant, wellicht zelfs in het buitenland!

Bekijk vacature »

Teamlead PHP Developer

Functieomschrijving Voor een gewaardeerde werkgever in de buurt van Middelburg zijn wij op zoek naar een gemotiveerde teamlead PHP developer met affiniteit met Symfony/Laravel. Een enthousiast persoon die het ontwikkelteam komt versterken met het aanpakken van uitdagende projecten. Ben jij op zoek naar een uitdaging waar je de tijd en ruimte krijgt jezelf te ontwikkelen en je eigen IT-team aan te sturen? Lees dan snel verder! Die ga je doen: Bijdragen aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de PHP based applicaties; Ontwikkeling en beheer van de serviceportal in Symfony en de webshops in de tweede versie van

Bekijk vacature »

Front-end developer (Vue.js) gezocht!

Functie Als Front-end developer is het jouw doel om efficiënte en effectieve frontend code te ontwerpen, ontwikkelen en onderhouden die goed aansluit bij de functionele behoefte vanuit de klant. Je zorgt voor optimale SEO-resultaten, sitespeed en frontend security. You build it, you run it, you own it! Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden

Bekijk vacature »

Senior Software developer PHP

Functie Jij als senior PHP ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 developers binnen onze organisatie Jij gaat de brug zijn tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je je taken op voor de dag. Een greep van jouw taken zijn: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden met Security & Privacy Eisen • Minimaal 4

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. 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 vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

.NET developer WO niveau voor predictive software

Bedrijfsomschrijving Dit bedrijf uit Den Bosch is om precies te zijn 15 medewerkers groot en ze ontwikkelen (predicitve) planning software. Dit doen zij voor allerlei mooie en bekende organisaties (bierbrouwerijen, gemeentes, oliemaatschappijen en diverse multinationals). Wegens meer en grotere vraag vanuit de klanten komen er nu posities vrij voor onder andere een .NET developer. Het bedrijf is goed met openbaar vervoer te bereiken. Functieomschrijving Je komt hier te werken in een team van 3 .NET developers en bent betrokken bij het gehele ontwikkelproces. Dus van idee naar ontwerp en van ontwikkeling tot testen en implementatie. Bij voorkeur ben je niet

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »

Python Developer

Dit ga je doen Als Python Developer ben je verantwoordelijk voor: Het ontwikkelen van Stuurprogramma's in Python zodat er verbindingen kunnen worden gelegd tussen besturingssystemen en (AV) hardware; Het testen en debuggen van Stuurprorgamma's; Het communiceren met noodzakelijke partijen in gevallen waar extra technische details nodig zijn om een Stuurprogramma te ontwikkelen of problemen op te lossen; Het maken van de nodige technische documentatie (in het Engels); Het participeren in een Scrum/Agile omgeving. Hier ga je werken Deze internationale organisatie is wereldwijd een succesvol producent en leverancier van professionele AV hard- en software. Klanten gebruiken de producten o.a. voor het

Bekijk vacature »

PHP/Symfony developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Bergen op Zoom ben je als PHP/Symfony Developer niet alleen bezig met software ontwikkeling. Je bent buiten ontwikkeling ook continu bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Techstack: PHP, Symfony & mySQL. Jouw takenpakket ziet er als volgt uit: Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden

Bekijk vacature »

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

Bekijk vacature »
Roy B

Roy B

29/03/2014 18:12:18
Quote Anchor link
Ik ben bezig met het bouwen van een eigen MVC. Nu heb ik een URL /user/edit/2, waarin user de controller is, edit de method en 2 de property of in dit geval het id van de user die we gaan wijzigen. Stel ik heb een URL /news/view/6, waarvan news de controller is, view de method en 6 de id van het nieuwsitem dat we willen laten zien. Hoe kan ik er dan voor zorgen dat de nette URL wordt /nieuws/titel-van-het-nieuwsitem?
 
PHP hulp

PHP hulp

27/11/2024 10:38:23
 
Wouter J

Wouter J

29/03/2014 20:10:04
Quote Anchor link
Je moet afstappen van het idee dat een URL (route) naar een controller, method en argument mapt. Dat is een erg verouderd idee.

Tegenwoordig gebruikt men Routing configuratie bestanden. Op die manier kun je je URL (route) compleet anders doen dan je controller. Een voorbeeldje van Symfony2:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
blog_show:
    path: /nieuws/{slug}
    defaults: { _controller: AcmeBlogBundle:Blog:showOne }

Dit stelt in dat de url /nieuws/{slug} ({slug} is hier een placeholder, het krijgt de waarde van wat er op die plek in de URL staat) wordt afgehandeld door de Acme\BlogBundle\Controller\BlogController#showOneAction controller. Deze controller heeft dan een parameter die $slug heet, die krijgt dan automatisch de waarde van {slug} in de URL.
 
Roy B

Roy B

31/03/2014 08:58:59
Quote Anchor link
Kun je misschien een voorbeeldje geven?
Ik begrijp je nog niet helemaal.
 
Wouter J

Wouter J

31/03/2014 12:20:35
Quote Anchor link
Ik heb je een voorbeeld gegeven :) Wat begrijp je er dan niet aan, dan kunnen we wat doelgerichter uitleggen. Ik bedoel, ik kan je wel het complete Routing systeem van Symfony of Laravel gaan uitleggen, maar dan begrijp je denk ik nog minder...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

31/03/2014 13:34:14
Quote Anchor link
blog_show: is een identifier. (zie het maar als de key value van een array)
Path is het gedeelte in de url achter de domeinnaam waarbij {slug} variabel is. In Wouter zijn voorbeeld de slug (Titel in URL geldige karakters) van een nieuwsartikel.

Mogelijke url's zijn dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
http://jouwdomijn.nl/nieuws/client-fingerprint
http://jouwdomijn.nl/nieuws/ideen-project-website
http://jouwdomijn.nl/nieuws/mvc-friendly-urls
....



Dan zie je de controller die aangeroepen wordt waarbij het eerste gedeelte naar een Bundle (directory / gedeelte) wijst. het tweede gedeelte is de naam van de controller. (Blog wordt class BlogController) en de derde is de action ofwel de functie die aangeroepen wordt van de class.

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
<?php

namespace Acme\BlogBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class BlogController extends Controller
{
    public function indexAction()
    {

    // ....
    }
    
    public function showOneAction($slug)
    {

        $item = $this->getDoctrine()
        ->
getRepository('AcmeBlogBundle:Newsitem')
        ->
findOneBy(array('slug' => $slug));
        
        $data = array(
            'newsitem' => $item,
        );


        return $this->render('BlogBundle:Blog:showOne.html.twig', $data);
    }
}

?>
Gewijzigd op 31/03/2014 13:38:20 door Frank Nietbelangrijk
 
Roy B

Roy B

31/03/2014 18:58:26
Quote Anchor link
Aah oke, ik begin het een beetje te begrijpen. Met een Routing class kan ik dus bepalen welke controller bij welke URL hoort? Hoe ziet zo'n Routing configuratie er dan uit?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/04/2014 18:38:58
Quote Anchor link
Wouter zijn voorbeeld is de router configuratie voor één route/url. Normaal staan er verschillende onder elkaar of worden er andere bestanden included. Wouter zijn voorbeeld is geschreven in het YAML formaat. Er zijn ook andere formaten in omloop zoals XML of JSON. als je het eenvoudig wilt houden kun je ook gewoon een array maken van routes.

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

$routes
= array(
    'blog_show' => array(
        'path' => '/nieuws/{slug}',
        'controller' => 'AcmeBlogBundle:Blog:showOne',
        'methods' => 'GET|POST',
    ),

    'blog_list' => array(
        'path' => '/nieuws',
        'controller' => 'AcmeBlogBundle:Blog:index',
        'methods' => 'GET',
    ),
);


?>
 
Roy B

Roy B

01/04/2014 20:02:17
Quote Anchor link
En stel ik houdt het eenvoudig en maak gebruik van een simpele array, hoe pas ik deze dan toe? Stel mijn route is /nieuws/titel-van-het-nieuwsitem en ik wil ik de Newsitem controller aanroepen. Iets meer uitleg graag :)
Gewijzigd op 01/04/2014 20:02:39 door Roy B
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/04/2014 21:18:57
Quote Anchor link
JIP EN JANNEKE TAAL EN DIT VOORBEELD IS NOG NIET COMPLEET:

1. Haal informatie uit $_SERVER en herleid het gedeelte achter de naam van de frontcontroler
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
www.mijndomein.nl/controller.php/nieuws/titel-van-het-nieuwsitem

moet worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
nieuws/titel-van-het-nieuwsitem


2. explode het resultaat op de '/'. Je krijgt dan een array:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
array(
    0 => 'nieuws',
    1 => 'titel-van-het-nieuwsitem'
)


3. nu ga je met een foreach stap voor stap alle routes af. die explode je ook op dezelfde manier.
Daarna laat je voor iedere route een vergelijkfunctie aanroepen die de arrays gaat vergelijken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
foreach($routes as $route)
{

    $routeArray = explode('/', $route['path']);
    
    if($this->compare($routeArray , $urlArray))
    {

        return $route;
    }


    return false;
}

?>

4. de vergelijkfunctie:
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
<?php
public function compare($routeArray , $urlArray)
{

    // als eerste als de arrays geen gelijk aantal elementen hebben dan is er iig geen match
    if(count($routeArray) != count($urlArray)
        return false;

    // daarna vergelijken we element voor element uit beiden arrays. bij een variabele ( {slug} ) is er altijd een match
    for($i = 0 ; $i < count($routeArray) ; $i++)
        if($routeArray[$i] != $urlArray[$i] && $routeArray[$i][0] != '{')
            return false;
    
    return true;
}

?>


5. als er dan een geldige route gevonden is kun je $route['controller'] uitlezen en de juiste controller aanroepen. Dit gebeurt in een paar stappen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
1. variabelen uit de URL halen: $var[] = 'titel-van-het-nieuwsitem'; // in werkelijkheid heb je hier ook een functie voor nodig
2. BlogController.php includen. (Liefst met een autoloader)
3. BlogContoller class instantiren: $controller = new BlogController();
4. de juiste method aanroepen: $controller->showOneAction($var[0]);


Toevoeging op 01/04/2014 21:32:53:

Zoals je zult merken is het al bij al nog niet zo eenvoudig. Zoals vaker wordt opgemerkt op dit board:
Ga liever gewoon aan de slag met een goed framework als Symfony of Zend.

Neemt niet weg dat het maken van een eigen framework erg leerzaam is en je ook helpt bij het begrijpen wat een framework doet. Maar een echt serieus project begin je pas met Symfony of Zend naar mijn mening.
Gewijzigd op 01/04/2014 21:20:42 door Frank Nietbelangrijk
 
Wouter J

Wouter J

01/04/2014 22:15:58
Quote Anchor link
Het is sowieso altijd goed om met een framework te beginnen. Of je dan daarna je eigen framework gaat maken maakt mij niet zoveel uit, maar je hebt nu nog niet eens door wat een framework hoort te doen en je bent nog niet thuis in de begrippen en -veel belangrijker- OO principes. Leer eerst goed hoe alles werkt van een framework (kan ook Laravel zijn, die komt waarschijnlijk dichter bij je toekomstige framework in de buurt) en ga dan pas nadenken over het zelf beginnen.
 



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.