static methods

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Lead Java Developer

Dit ga je doen Je taken bestaan onder andere uit: Het aansturen van een development team bestaande uit 8 collega's op technisch maar ook HR gebied; Het maken van strategische keuzes omtrent de (nieuw)bouw van deze applicatie; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java, Spring, Angular, REST); Reviewen van code en feedback geven op collega developers. Hier ga je werken Als Lead Software Developer ben je verantwoordelijk voor één van de vier Agile Java ontwikkelteams die bouwen aan technologie die duizenden instanties wereldwijd verbindt. Dit Agile team, data Jira en Confluence gebruikt en

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een bedrijf in de omgeving van Utrecht! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans! Je kunt een uitdagende rol gaan vervullen als C#.NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving van Utrecht. Je zult gaan samenwerken met collega's die over de hele wereld verspreid zitten. Dit bedrijf is zeer vooruitstrevend en werkt met de nieuwste technieken. Als C#.NET Developer ga jij je bezig houden met het volgende: Je blijft op de hoogte van

Bekijk vacature »

Front-end Angular developer

Functie In jouw rol als Front-End developer werk je samen met de backend developers om middels tweewekelijkse sprints het platform naar een hoger niveau te tillen. Hiernaast heb je affiniteit met data en werk je graag samen met het team om de gegevensintegriteit en -beveiliging te waarborgen, om ervoor te zorgen dat de gebruiker wereldwijd de beste SaaS-services heeft. Deze organisatie heeft meer dan 100 mensen in dienst, waarvan er 45 in Nederland werken. Het ontwikkelteam bestaat uit 10 mensen en is verdeeld in 2 scrumteams. Het eerste team bestaat uit Java en Scala ontwikkelaars. Het tweede team, waar jij

Bekijk vacature »

PHP Developer

Functie Middels Scrum en sprints bouw jij in deze functie mee aan complexe webapplicaties en ons SaaS platform. Hierbij hoort ook architectuur tot een van je taken. Daarnaast ben je één van de leden van het Scrum team. Dat betekent dat je naast je kerntaken ook in contact staat met de product owner. Oftewel, je bent bij het gehele ontwikkelproces betrokken. Tools die hierbij gebruikt worden zijn o.a. PHP, Symfony en Git. Eisen • Minimaal HBO werk- en denkniveau • Minimaal 3 jaar aantoonbare ervaring met PHP • Kennis en ervaring Symfony (Laravel is pré) & Lando • Kennis van

Bekijk vacature »

Medior PHP developer

Functie Samen met je development team werk je Agile Scrum en met jullie gezamenlijke kennis en ervaring bepalen jullie samen de beste keuze voor techniek en architectuur. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en denkniveau • Je hebt goede kennis en ervaring met PHP • Je bent niet bang voor complexe projecten • Je werkt graag zelfstandig aan applicaties • Je bent altijd nieuwsgierig naar nieuwe

Bekijk vacature »

Medior/senior Back-end developer wanted!

Functie Because of the growth within the company, we are looking for reinforcement in the devlopmenttean. As a back-end developer you build the company software that helps us with the primary processes. A fun (internal) project in which you continuously develop the software! You will work in a small team, we have daily stand-ups and a scrum session every fortnight, led by our Scrum Master. During these sessions, you get the opportunity to present your ideas and discuss them with your fellow developers and the Product Owner. Within the development teams, we use Trello, Gitlab, Jiira, Confluence and Boockstack. They

Bekijk vacature »

C# Developer

Dit ga je doen Je gaat aan de slag in het websites team of portals team waarin je je bezighoudt met concept & design, implementatie en ook een stukje bugfixing en onderhoud; Je werkt met je team volgens de Scrum werkwijze; Zo adviseer je ook de PO & Scrum Master over de technische architectuur, koppelingen en integratie met externe systemen en API’s; Je blijft op de hoogte van de laatste ontwikkelingen en trends op het gebied van C# / .NET en deelt deze kennis binnen de organisatie. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de

Bekijk vacature »

PHP developer

Functie Voor een opdrachtgever in omgeving Leiden zijn wij op zoek naar een PHP developer die affiniteit heeft met C++. Ben jij reeds afgestudeerd of heb je al een paar jaar ervaring? Lees snel verder en kijk of dit iets voor jou is! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van

Bekijk vacature »

Dynamische Oracle/APEX Ontwikkelaar in de logistie

Bedrijfsomschrijving De organisatie in de regio Rotterdam is gespecialiseerd in het ontwikkelen van moderne webbased software voor de ERP branche. In totaal is er 20FTE aan specialisten actief binnen de organisatie. De ICT afdeling bestaat momenteel uit 15FTE. Ze groeien ontzettend hard en daarom zoeken zij een Oracle/APEX Developer die het reeds sterke team nog sterker komt maken. Hier werken ze op projectbasis voor verschillende grote organisaties in de logistieke sector. Het is een informele organisatie waarbinnen een fijne werksfeer heerst. Zoals aangegeven willen ze het team nog sterker maken en daarvoor zoeken ze bij voorkeur medior of senior Oracle/APEX

Bekijk vacature »

Als Front-end developer samenwerken met de beste c

Functie Momenteel zijn we voor één van de projecten bij hun key partner, een voorloper in de energiesector, op zoek naar gedreven Front-end developers. Ze nemen de lead in dit project en werken uitsluitend met vooruitstrevende technologieën. Ze verwachten dat de technologie die hier wordt ontwikkeld uiteindelijk door veel meer grote corporates, in verschillende sectoren zal worden toegepast. Dit is dan ook een heel uitdagend project om aan mee te gaan werken. Het team bestaat o.a. uit User Experience designers, Data Scientists en Software Engineers. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van

Bekijk vacature »

PHP Laravel developer

Functie omschrijving Weet jij alles van Laravel en krijg je energie van het ontwikkelen van software hiermee? Laat snel wat van je horen want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch. Jouw taken zullen bestaan uit: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Documentatie schrijven over applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein softwarebedrijf. Er werken ongeveer 15 medewerkers, verdeeld in meerdere teams, zoals back-end en front-end development, projectmanagement

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

Bekijk vacature »
Jordi Kroon

Jordi Kroon

01/10/2013 21:15:14
Quote Anchor link
Hoi iedereen,

Ik ben op dit moment bezig met mijn eigen (mini) framework. Nu kwam ik laatst eens tegen dat static methods 'bad practise' zijn en dat je deze niet moet gebruiken.

In de onderstaande class gebruik ik static methods voor het redirecten/refreshen van een pagina.

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
52
53
54
55
56
57
58
59
60
61
62
63
<?php

namespace System\Framework\HTTP;

use System\Framework\Routing\Route;
use System\Framework\Application;

class Response {
    
    public static function redirect($routeName, $status_code = 302) {
        
        $routeInfo = route::getRouteByName($routeName);
        
        if(!$routeInfo) {
            throw new \Exception(sprintf('Route %s not found!', $routeName));
        }
else {
            if(!headers_sent()) {
                header('location: ' . self::getBasePath() . $routeInfo[1], false, $status_code);
            }
        }

        
        exit();
    }

    
    public static function URLRedirect($url, $status_code = 302) {
        
        if(!headers_sent()) {
            header('location: ' . $url, true, $status_code);
        }
else {
            throw new \ErrorException('Headers already send, could not redirect.');
        }

        
        exit();
    }

    
    public static function refresh() {
        if(!headers_sent()) {
            header('location: ' . self::getBasePath() . self::getUri());
        }
else {
            throw new \ErrorException('Headers already send, could not refresh page.');
        }

        
        exit();
    }

    
    public static function getUri() {
        if (isset($_GET['r'])) {
            $uri = $_GET['r'];
        }
else {
            $uri = '/';
        }


        return $uri;
    }

    
    public static function getBasePath() {
        $config = Application::getConfig();
        
        return $config['BasePath'];
    }
}


?>


Is dit een goede manier om dit te doen of is dit ook 'bad practise'?
Gewijzigd op 01/10/2013 21:16:14 door Jordi Kroon
 
PHP hulp

PHP hulp

24/11/2024 04:11:10
 
Wouter J

Wouter J

01/10/2013 21:37:32
Quote Anchor link
Je gebruikt heel erg veel static methods, allemaal fout in een OO applicatie. Static methods zijn leuk voor Utility functies, die je even wilt groeperen in een class. Niet voor echte objecten.

De functie getBasePath bijvoorbeeld. Die zal iets moeten worden als:
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 Response
{
    private $basepath;

    public function setBasePath($basepath)
    {

        $this->basepath = $basepath;
    }


    public function getBasePath()
    {

        return $this->basepath;
    }
}

?>


De klasse mag helemaal niet bepalen dat de setting uit een Application klasse komt. Dat wordt bepaalt buiten de klasse.
 
Jordi Kroon

Jordi Kroon

01/10/2013 21:43:44
Quote Anchor link
Bedankt voor je snelle reactie Wouter.

De config is bij mij een array. Hoe kan ik deze dan het beste aanroepen? Is een config class om de config array uit te lezen een slimme zet?
 
Wouter J

Wouter J

01/10/2013 22:04:58
Quote Anchor link
Ja, dat lijkt mij het mooist. Maar je kan hem ook in de applicatie klasse houden, het geen het mij om ging is dat de klasse dat niet zelf mag bepalen. Je mag natuurlijk nog steeds Response->setBasePath($app->getConfig('basepath')) gebruiken.
 
Jordi Kroon

Jordi Kroon

01/10/2013 22:28:21
Quote Anchor link
Ik heb nu de static methods in de prullenbak gegooit en de Application::getConfig veranderd.

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php

namespace System\Framework\HTTP;

use System\Framework\Routing\Route;
use System\Framework\Config;

class Response {

    public function redirect($routeName, $status_code = 302) {

        $route = new Route;
        $routeInfo = $route -> getByName($routeName);

        if (!$routeInfo) {
            throw new \Exception(sprintf('Route %s not found!', $routeName));
        }
else {
            if (!headers_sent()) {
                header('location: ' . $this -> getBasePath() . $routeInfo[1], false, $status_code);
            }
else {
                throw new \ErrorException('Headers already send, could not redirect.');
            }
        }


        exit();
    }


    public function URLRedirect($url, $status_code = 302) {

        if (!headers_sent()) {
            header('location: ' . $url, true, $status_code);
        }
else {
            throw new \ErrorException('Headers already send, could not redirect.');
        }


        exit();
    }


    public function refresh() {
        if (!headers_sent()) {
            header('location: ' . $this -> getBasePath() . $this -> getUri());
        }
else {
            throw new \ErrorException('Headers already send, could not refresh page.');
        }


        exit();
    }


    public function getUri() {
        if (isset($_GET['r'])) {
            $uri = $_GET['r'];
        }
else {
            $uri = '/';
        }


        return $uri;
    }


    public function getBasePath() {
        $config = new config;
        return $config -> get('BasePath');
    }

}

?>
 
Wouter J

Wouter J

01/10/2013 22:39:48
Quote Anchor link
Nee, je hebt mijn config punt nog niet begrepen. Nu maak je een hele nieuwe klasse aan in je method. Wie zegt dat die basepath een setting is in die config? Daar weet de response toch helemaal niks vanaf? De response weet alleen alles over de response. Als hij het basepath nodig heeft moet hij dat aangeven, zodat een klasse bij het aanmaken van de response klasse het basepath kan instellen. Zo dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$response
= new Response();
$response->setBasePath($config->get('basepath'));
// of
// $response->setBasePath('/whoa');

?>


Toevoeging op 01/10/2013 22:50:25:

Ook het route gedoe heb je nog niet begrepen. Laat ik een voorbeeldje gebruiken:

Ik kom als bezoeker aan in een gevangenis waar iedereen altijd in hun cel zit en ik mag vrij door de gangen lopen. Ik ben opzoek naar een gevangene. Ga ik nu bij elke cel aan de gavangene vragen voor die bepaalde persoon? Nee, want die gevangene weten niks van elkaar. Sterker nog, die gevangenen mogen niks van elkaar weten. Ik ga naar de hoofdbewaker en vraag het aan hem.

Zo werkt het ook met route objecten. Ik kan niet zomaar aan een route object vragen naar een ander route object, daar mag hij niks vanaf weten. Ik moet aan een klasse die gaat over het opslaan en verkrijgen van die route objecten vragen naar het object. Dat object noemen we een datamapper
Gewijzigd op 01/10/2013 22:50:56 door Wouter J
 
Jordi Kroon

Jordi Kroon

03/10/2013 09:43:14
Quote Anchor link
Bedankt voor je uitleg Wouter. Nu zit ik met een soort probleem.

Nu maak ik in mijn controller een nieuw response object aan. Alleen is het niet verstandig om iedere keer setBasePath aan te roepen na het aanmaken van het object. Hoe kan ik dit het beste doen?
 
NOLot -

NOLot -

03/10/2013 09:59:55
Quote Anchor link
Eigenlijk wil je die set base path niet gebruiken in je Response class, maar meer in je controller op het moment dat je je Response object aanmaakt. Ik neem aan dat je in je controller toegang hebt tot je config object? Zo ja dan kun je dus doen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$response = new \System\Framework\Http\Response;
$response->redirectTo($this->config['basePath'] .'/hierjepath');


Op die manier kun je ook je Response class gebruiken om te redirecten naar pagina's die niet bij je eigen site horen.
Gewijzigd op 03/10/2013 10:02:24 door NOLot -
 
Jordi Kroon

Jordi Kroon

03/10/2013 17:49:05
Quote Anchor link
Dat lijkt mij geen goed plan. Bij een refresh wil ik namelijk geen parameters versturen. Ook is het zo dat redirect alleen redirect naar routes. URLRedirect redirect naar interne/externe links.
 



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.