static methods

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Laravel / PHP developer gezocht!

Functie omschrijving Wij zijn op zoek naar een Laravel PHP Developer voor een leuk bedrijf in de omgeving van Amsterdam! Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken; van A tot Z; Je hebt na de oplevering contact met de klant wanneer zij problemen ervaren; Je denkt mee over het verbeteren van de werkprocessen; Je denkt mee over softwareoplossingen; Je speelt in op de behoefte van de klant; Je houdt je bezig met het verbeteren, aanpassen en vernieuwen van de

Bekijk vacature »

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

.NET software developer

Functie omschrijving Voor een gewilde werkgever in omgeving Roosendaal zijn wij op zoek naar een back-end software developer met een aantal jaar werkervaring. Je krijgt een plekje in het workflow team en je zal betrokken worden bij het bouwen van nieuwe software, en het optimaliseren van bestaande code. Je werkt bij dit bedrijf in een Scrum team waarin je soms klantcontact hebt. Jouw werkzaamheden zullen er als volgt uit zien: Je krijgt een plekje op de in-house IT afdeling. Deze afdeling bestaat uit zo'n 12 collega's, verdeeld over verschillende specialisaties (BI, Beheer, Business software & workflow). De vacature staat open

Bekijk vacature »

Junior/medior Back end developer PHP, Laravel

Functie Jij als ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor veel van je tijd je bezig houden met het ontwikkelen van maatwerk features en applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. Jij als full stack developer zult dus

Bekijk vacature »

.NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

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 »

C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

Senior PHP Developer

Als Senior PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn en coach je andere developers op de hard en soft skills. Wat doe je als Senior PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden je MBO of HBO ICT in ontvangst mogen nemen? Of ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een uitdagende werkgever in de regio van Tilburg zijn wij op zoek naar een ambitieuze back-end programmeur met affiniteit met MS Acess. Samen met een enthousiast team ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL, Maar affiniteit met MS Acess is nog belangrijker. Je bent sociaal naar klanten en flexibel ingesteld. Je denkt altijd in kansen en gaat graag de uitdaging aan. Verder

Bekijk vacature »

Front end developer

Functie Jij als front end developer gaat werken binnen de teams van onze klant, uiteraard met alle moderne technieken. Opdrachten worden echt gericht op jouw leerdoelen en jouw behoeftes. Wij hebben een omgeving gecreëerd waarin je echt jezelf kan zijn en waar echt gekeken wordt naar jouw voorkeuren. Maak je een fout? Geen probleem, leer ervan en dan ga weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en dus jezelf snel ontwikkelen. Eisen Je bent communicatief vaardig en houdt van een dynamische omgeving Je hebt HBO werk- en denkniveau Je hebt gedegen kennis

Bekijk vacature »

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

.NET developer

Functie Als .NET developer werk jij samen in een multidisciplinair ontwikkel team met 1-2 Senior .NET developers, twee front-end developers, Data Scientists en één UX designer. Als team werken jullie aan het ontwikkelen van een Cloud based applicatie en aan het stabieler maken van deze applicatie. Ook unit testing gaat erg belangrijk worden in jouw nieuwe functie. Samen met de Senior .NET ontwikkelaar wordt jij verantwoordelijk voor het ontwikkelen van de API. Jullie werken met veel data en incidenteel komen er ook data vraagstukken en zullen er wat queries gedraaid moeten worden. Dit betekend dat jij veel gaat werken met

Bekijk vacature »

Mendix Ontwikkelaar - Vernieuwen van het applicati

Bedrijfsomschrijving De ontwikkelingen in de transportsector gaan razendsnel. Bij ons kun je een belangrijke rol spelen in deze sector. We streven ernaar om onze klanten te ontzorgen op het gebied van continuïteit en veiligheid met innovatieve producten en diensten. We willen dat onze klanten de veiligste vervoerders van Europa worden. Ons team werkt hard om deze ambitieuze doelstellingen te bereiken en we bieden een motiverende werkomgeving aan. We zijn op zoek naar zelfstarters met een focus op resultaat en beslissingsbevoegdheid. Functieomschrijving Als Mendix ontwikkelaar bij deze organisatie heb je een gevarieerde baan. Het applicatielandschap wordt vernieuwd en de “schade en

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

06/11/2024 00:41:00
 
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.