static methods

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Integratie Developer / Architect

Dit ga je doen Als Integratie Developer / Architect binnen deze organisatie krijg je echt de kans om impact te maken. De organisatie is groeiende maar houdt een corporate cultuur buiten de deur. Heb je een goede business case: zorg voor goede argumentatie en ga ervoor! Geen stroperig beslissingsproces dat jouw ideeën in de weg staat! Enkele van jouw taken: Je ontwerpt en ontwikkelt nieuwe integraties met behulp van interne tools (Boomi) of externe partners; Je vertaalt functionele specificaties naar technische oplossingen; Je denkt mee over strategische ontwikkelingen op het gebied van applicatie integratie; Je voert regie op leveranciers en

Bekijk vacature »

Senior Front-end developer Consultancy

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »

.Net ontwikkelaar - Het schoolsysteem verbeteren!

Bedrijfsomschrijving Onze klant is een prettige en kleinschalige organisatie waar hard gewerkt wordt om het onderwijs te verbeteren. Daarom werken ze aan complexe om administratieve, financiële en facilitaire processen te versnellen en te verbeteren. Dit doen ze vanuit een platte organisatie voor klanten die door geheel Nederland verspreid zitten, hier horen vanzelfsprekend een aantal aansprekende HBO scholen en universiteiten toe. Functieomschrijving Je komt terecht in een organisatie waar op dit moment 2 scrumteams werken. Jij zal als .Net developer binnen 1 van deze scrumteams functioneren, iedereen binnen dit team heeft zijn/haar eigen expertise waardoor er met verschillende invalshoeken aan een

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

Front end developer React

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

Ervaren Software Developer

Functie omschrijving Ben jij een ervaren Software Developer, en heb je ervaring met technieken zoals C#, MS Access & SQL? Vind jij het leuk om maatwerk software te ontwikkelen voor klanten in een specifieke branche? Dan is dit de baan voor jou! Als ontwikkelaar ben jij samen met een team van 12 collega’s verantwoordelijk voor het bouwen van nieuwe functionaliteiten en het uitbreiden van de core applicatie. Belangrijk is dat je ervaring hebt met C# en MS Access. Je bent flexibel en klantvriendelijk ingesteld, omdat het belangrijk is om de klanten zo goed mogelijk van dienst te kunnen zijn. Thuiswerken

Bekijk vacature »

Senior Lead Front End Developer

Functieomschrijving Voor Stichting Waternet zijn wij op zoek naar een senior Lead Front End Developer. Binnen het DevOps team Online zijn we op zoek naar een Senior Lead Front End developer met kennis van toegankelijkheid. Deze developer zal zich bezighouden met development van webpaginas die in verbinding staan met systemen uit het back office. Taken Ontwerpen, ontwikkelen, implementeren, documenteren en beheren van webapplicaties in een Azure-omgeving Debuggen, analyseren en oplossen van problemen in de OTAPomgevingen Je participeert in het DevOpsTeam Online voor het verder uitwerken en implementeren van gebruikerswensen Je bent betrokken bij toegankelijkheid audits en het implementeren van WCAG

Bekijk vacature »

Fullstack Webdeveloper .NET Azure Big Data SaaS

Bedrijfsomschrijving Deze klant van ons is recentelijk onderdeel geworden van een grote moederorganisatie, ze zijn dé partij als het gaat om software maken voor ambitieuze ondernemers, ze maken maatwerk software. Vanuit het fantastisch vormgegeven hightech gebouw te Rotterdam centrum werken ze met zo'n 40 medewerkers aan hoogwaardige software gericht op financiële data, betaalinformatie, maar ook backoffice software. De software wordt webbased, desktop en mobile aangeboden en er worden zeer moderne ontwikkeltechnieken toegepast. Je moet dan denken aan patroonherkenning, Big Data, Machine Learning en OCR. Als Developer, ongeacht je niveau, ga je hier te maken krijgen met de allerleukste kant van

Bekijk vacature »

.NET developer

Functie Als developer heb jij de keuze om aan te sluiten bij het team (13 developers) die op locatie projectmatig bij klanten werkt. Wanneer jij liever intern bij de werkgever werkt is er ook alle ruimte voor jou in het interne team (8 developers) van dit bedrijf. Je werkt samen aan verschillende projecten bij of voor de klant. Het project wordt aangeleverd door sales aan de project manager. Die maakt samen met de Resourcer een planning en op basis daarvan wordt uit het development team een “projectgroep” opgesteld. Hoeveel en welke projecten jij wilt oppakken gebeurt geheel in samenspraak met

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

Bekijk vacature »

Software Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

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

16/04/2024 13:30:48
 
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.