static methods

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

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 »

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 »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

Bekijk vacature »

C# .NET Developer IoT SQL Server

Samengevat: Wij ontwikkelen innovatieve oplossingen om apparaten en bezittingen op een eenvoudige en flexibele manier te beveiligen. Ben jij een C# .NET developer? Heb jij ervaring met C# en SQL server? Vaste baan: C# .NET Developer IoT HBO €3.200 - €4.500 Deze werkgever is gespecialiseerd in hoogwaardige GSM/GPRS alarm- en telemetrietechnologie. Met een eigen productlijn en klantspecifieke ontwikkelingen biedt deze werkgever oplossingen om op afstand te meten, melden, loggen en aansturen, ook op plaatsen zonder stroomvoorziening. Onze producten worden gekarakteriseerd door flexibiliteit in de configuratie, betrouwbaarheid en een extreem laag stroomverbruik. Zij werken voor MKB klanten. Deze werkgever heeft veel

Bekijk vacature »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Senior Front-End Developer at Coolblue?

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 »

Full Stack .NET Developer C# ASP.NET

Samengevat: Deze werkgever is gespecialiseerd in het op afstand bewaken en besturen van machines en processen. Ben jij een ervaren Full Stack .NET Developer? Heb je ervaring met C# en ASP.NET? Vaste baan: .Net Developer C# ASP.NET HBO €3.300 - €4.500 Deze werkgever is een snel groeiende onderneming gespecialiseerd in het op afstand bewaken en besturen van machines en processen, IoT (Internet of Things). Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wil jij bij de top specialisten horen? Ben jij op zoek naar een

Bekijk vacature »

Software Developer

Dit ga je doen Ontwerpen, ontwikkelen en onderhouden van (mobiele) internettoepassingen; Ontwikkelen en onderhouden van Microservices; Ontwerpen en optimaliseren van databases; Identificeren van nieuwe trends/ontwikkelingen binnen de branche. Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt zich op het leveren van kwalitatief hoogwaardige producten aan alle hun klanten. De organisatie telt circa 4.000 medewerkers in meer dan 10 verschillende landen. Momenteel is de organisatie op zoek naar een Software Developer wilt meewerken aan het

Bekijk vacature »

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

Lead developer

Functie Als Lead developer wordt jij onderdeel van een multidisciplinair team van circa 23 software engineers. Als team werken jullie agile en zijn termen als Continuous Integration en Continuous Delivery dagelijkse koek. Jullie werken aan uitdagende en afwisselende projecten met als doel klanten een totaal oplossing aan te kunnen bieden. Jij wordt verantwoordelijk voor complete projecten waarbij jij als verantwoordelijke zorgt dat het project op de juiste manier blijft draaien. Zo haal jij ook de requirements op bij de klant en kijk jij samen met het team en met de salesafdeling hoeveel uren hiervoor nodig zijn. Daarnaast stuur jij jouw

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 »

Ontwikkelaar MS Dynamics 365 Projecten

Samengevat: Deze werkgever is de kwaliteitsdienst in de tuinbouwsector. Ben jij een ervaren ontwikkelaar? Heb jij ervaring met Ms Dynamics 365 BC? Vaste baan: Ontwikkelaar Ms Dynamics 365 BC ICT MBO 3.500 - 5.000 Ontwikkelaar Ms Dynamics 365 BC Ons bedrijf bewaakt en bevordert de kwaliteit van producten, processen en ketens in de tuinbouw. Wij kenmerken zich door openheid, ruimte voor initiatief, collegialiteit en zelfontplooiing. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Functie: Voor de vacature als Ontwikkelaar Ms Dynamics 365 BC Roelofarendsveen MBO

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 »
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

20/05/2024 15:55:06
 
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.