registry probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Over deze functie Als .NET developer bouw je mee aan innovatieve dienstverlening en draag jij bij aan de groei van de organisatie. Kenter groeit namelijk hard op het gebied van kwaliteit, professionaliteit en innovatie en is altijd op zoek naar verbeteringen. Zij richten zich op de ontwikkeling van moderne meetoplossingen, ook juist op korte termijn. Zo kunnen zij vooruitlopen op het gebied van IoT, realtime data en andere innovatieve oplossingen. Als .NET developer ben je van onschatbare waarde. Je werkt samen met ruim 20 IT professionals aan zowel greenfield- als legacy-projecten. Dat doe je in samenwerking met ontwikkelaars, data engineers,

Bekijk vacature »

Embedded Software Engineer developer

Samengevat: Wij ontwerpen industriële regelsystemen. Ben jij geschikt als Embedded software engineer? Heb jij ervaring met softwareontwikkeling? Vaste baan: Embedded Software Engineer developer Laagspanningsproducten MBO HBO Werkvoorbereiding 3.200 - 5.000 Embedded Software Engineer Deze werkgever is actief in de ontwikkeling en productie van innovatieve elektronica. Van hieruit ontwikkelen wij de meest innovatieve producten zoals onze klanten dat van ons verwachten. Zij werken in teams en kijken welke rol jou het beste past. Het einddoel is voor het hele team gelijk. Een tevreden klant met het innovatief product. Zij bieden een leuk team en doorgroeimogelijkheden. Functie: Voor de vacature als Embedded

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 »

Junior Java Developer

Dit ga je doen Je ontwikkelt innovatieve, maatschappelijk belangrijke applicaties; Je implementeert nieuwe features; Je gaat in gesprek met eindgebruikers en designers om de applicaties continu te finetunen; Je draait mee in een professionele Agile/Scrum omgeving. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de omgeving van Amsterdam. Ze staan zeer goed bekend in de markt door hun innovatieve dienstverlening op IT gebied en hun gepassioneerde werknemers. Voor hun inspanningen op het gebied van IT hebben ze meerdere prijzen gewonnen! Onze klant is onderdeel van een Corporate werkgever en heeft zelf 300 mensen in dienst. Om

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Delphi Developer

As a Delphi Developer you work together with other development teams to make our back-office applications work as optimal as possible. How do I become a Delphi Developer at Coolblue? You work together with other development teams to make our back-office applications work as optimal as possible, being extending features or migrating them to APIs. Everything to put a smile in our colleagues' faces! Although you are a Delphi Developer, you are not averse to some C#. Would you also like to become a Delphi Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing

Bekijk vacature »

Integration Developer

Als Integration Developer zorg jij ervoor dat de systemen van de klanten geautomatiseerd kunnen communiceren met de Bleckmann systemen. Daarnaast zorg je voor dat interne en externe rapportages worden gemaakt en worden onderhouden. Verder zorg je ervoor dat de documenten volgens de specificatie van de klanten uitzien. Je komt terecht in een enthousiast team dat op een duurzame manier bedrijven, markten en mensen verbindt. Binnen deze omgeving krijg jij de veelzijdige taak om onze IT-processen te automatiseren en verder te stroomlijnen Om bovenstaande taken uit te kunnen voeren krijg je een interne opleiding van onze softwarepakketten en bedrijfsprocessen en ben

Bekijk vacature »

Robot Programmeur

Bedrijfsomschrijving: Locatie: regio Breda Dit is een high-tech organisatie met meer dan 600 werknemers wereldwijd. Ze bieden een open en informele werksfeer met een hoge mate van zelfstandigheid en professionaliteit. Ter uitbreiding van het team zijn we op zoek naar een Robot Programmeur. Met productievestigingen in Nederland, Amerika, Tsjechië, China, Mexico en de Verenigde Staten kunnen hun klanten overal ter wereld ondersteund worden. Deze organisatie ontwerpt en bouwt gerobotiseerde productiesystemen, waarbij lassen en andere verbindingstechnologieën een centrale rol spelen. Ze zijn zowel in de automotive als de algemene industrie actief, waar hoge productievolumes en een hoge mate van automatisering essentieel

Bekijk vacature »

Java-softwaredeveloper

Wat je gaat doen: Dit ga je doen Daar kunnen we heel kort over zijn: software ontwikkelen met de agile-/scrumteams van toonaangevende organisaties. Zoals ministeries, gemeentes, financiële instellingen en retail- en energiebedrijven. En als het bij je past, begeleid je collega-developers in het ontwikkelproces. Doordat je tijdelijk aan een opdracht werkt, doe je in korte tijd veel mooie ervaringen op en leer je nieuwe technieken en tools kennen. Je teamleden werken bijvoorbeeld met Spring, JPA/Hibernate, AJAX, REST/JSON, GIT, AWS en TDD. Het interessante is dat jij volledig in control bent en zelf kiest welke opdrachten je oppakt. Het soort rol,

Bekijk vacature »

Lead .NET Developer / Azure / Microservices

Dit ga je doen Als Lead .NET Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties en

Bekijk vacature »

Senior Java developer (backend)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Medior React Native Developer

You are a Medior React Native developer and you like to code for hard and software. You van work home and one at the office. You are familiar with Firebase and able to work independent. There are other native app developers if you have questions. This is a special client because they are open to different constructions. The rest of the team is working for the website. You are not, you can do one app only. Functie-eisen You have been developing in React Native for at least 2+ years You are familiar with Firebase Start as soon as possible You

Bekijk vacature »

Lead Webdeveloper

Als Lead webdeveloper bij KUBUS ben je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de webapplicatie en services van BIMcollab. In je rol als lead developer zoek je als vanzelf op een creatieve manier naar het optimum tussen benodigde implementatie-tijd, de performance van de applicatie en een snelle go-to-market van features, aansluitend bij onze geautomatiseerde test- en release train. Hierbij bewaak je in samenwerking met de andere senior ontwikkelaars in je team de architectuur van de applicatie en adviseer je de product owner over noodzakelijke refactoring om de onderhoudbaarheid van het platform te verbeteren. Ons

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 »

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

- -

02/08/2010 09:43:01
Quote Anchor link
Heej,

Ik ben bezig met een eigen gemaakt MVC framework. Echter loop ik nu tegen een probleem aan met mijn registry class.

Het volgende is er aan de hand:
Ik heb twee database's met identieke tabellen. Alleen de data verschilt.
Nu wordt standaard in mijn code database 1 gebruikt. Deze connectie word opgeslagen in registry item 'mysql'. Nu wil ik de mogelijkheid inbouwen op database 2 te kunnen gebruiken. Dus ik dacht ik laat registry item 'mysql' naar de connectie met database 2 wijzen. Dit lijkt goed te gaan. ( als ik mijn registry print na de wijziging is hij gewijzigd )

In mijn layout heb ik een input veldje waarmee gezocht kan worden. Zodra je begint te typen krijg je onder het input veld een lijstje met mogelijkheden. Deze mogelijkheden moeten uit de database worden gehaald waarnaar 'mysql' verwijst. Echter nadat ik 'mysql' verander heb naar database 2 zoekt hij nog steeds in database 1.

Iemand een idee?

Hieronder mijn registry 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
28
29
30
31
32
33
<?php
    class registry
    {
        private static $_instance = null;
        private static $data = array( );

        function
__construct( )
        {
        }


        static function getInstance( )
        {

            if (!isset(self::$_instance))
                self::$_instance = new self();

            return self::$_instance;
        }


        public static function set( $key, $value )
        {

            $instance = self::getInstance();
            
            $instance->data[ $key ] = $value;
        }


        public static function get( $key )
        {

            $instance = self::getInstance();

            return $instance->data[ $key ];
        }
    }

?>


Update:
Ik zie net dat als ik op een link klik hij altijd database 1 selecteert.

De volgende controle werkt niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    if( $registry->get( 'mysql' ) === false )
    {
        print_r( 'mysql<br/>' );
        $registry->set( 'mysql', $db )
    }


Er word een nieuwe registry aangemaakt als je op een link klikt of refreshed?

Iemand een oplossing?

Update 2:
Tijdelijke oplossing, opslaan in een sessie in welke database word gewerkt.
Gewijzigd op 02/08/2010 11:11:07 door - -
 
PHP hulp

PHP hulp

08/12/2022 03:22:35
 
Sebastiaan Blaas

Sebastiaan Blaas

02/08/2010 14:47:05
Quote Anchor link
ik zie even niet waarom je de klasse zo omslachtig heb geschreven ?

ik zou zelf doen:
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
class registry {
private $m_aData = array ();
public function __construct() {
}

public function __set ( $p_sKey, $p_sValue = FALSE ) {
$this->m_aData[$p_sKey] = $p_sValue;
}


public function __get ( $p_sKey ) {
return isset ( $this->m_aData[$p_sKey] ) ? $this->m_aData[$p_sKey] : FALSE;
}
}


Werking is vervolgens nagenoeg hetzelfde;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if ( $registry->mysql == false ) {
// doe iets
}


overigens check jij of je key bestaat met === wat inhoud of de daadwerkelijke waarde false is. ipv ( zoals ik vermoed dat je wilt ) checken of die bestaat...
Gewijzigd op 02/08/2010 14:47:32 door Sebastiaan Blaas
 
- -

- -

02/08/2010 15:05:05
Quote Anchor link
@Sebas
Mijn class is een singleton class ( klikje )

Je hebt gelijk over de set en get. Dit had ik eerst ook zo gedaan, maar was bang dat ik daar een fout had gemaakt dus toen heb ik het gewijzigd. Had dit nog niet terug veranderd.

Wat betreft de ===. Dit is precies het zelfde als de == met als enigste verschil dat de types dan ook gelijk zijn. Dus false == "false" geeft true, maar false === "false" geeft false. Ik heb zie ik een oudere registy class gepost, want in de huidige zit ook een isset check...
 
Sebastiaan Blaas

Sebastiaan Blaas

02/08/2010 15:24:41
Quote Anchor link
Ik begrijp dat het een singleton is...

en wat betreft je uitleg over de === dat is mijn uitleg alleen dan duidelijker :)

Anywayz.. het stuk met de === is het enige wat ik zie als mogelijke fout.
 
- -

- -

02/08/2010 15:31:40
Quote Anchor link
Dat was in jou class niet te zien ^_^ ( singleton )

Maar goed, bij de === zit het probleem niet...

De search lijkt een 'oude' versie van registry te gebruiken, daarnaast word er een nieuwe registry aangemaakt als er op een link geklikt word of gerefreshed word...
 
Sebastiaan Blaas

Sebastiaan Blaas

02/08/2010 15:38:02
Quote Anchor link
mijn versie was ook geen ST :)

Maar ben nu wel ff je probleemstuk kwijt :)

Bij elke request zal die singleton opnieuw aangeroepen worden.. Maar goed wat ik al zei ben hem ff kwijt nu :)
 
- -

- -

02/08/2010 15:47:01
Quote Anchor link
Ik heb even wat tekst in mijn destruct laten printen van de registry.
Aan het einde van de pagina komt dan de tekst te staan, dat is het probleem.
Hij moet niet 'netjes' aan het einde van de pagina destructen ^_^
 
Bart Waarom verplicht

Bart Waarom verplicht

02/08/2010 16:19:14
Quote Anchor link
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
<?php
/* ... */
        public static function set( $key, $value )
        {

            $instance = self::getInstance();
            
            $instance->data[ $key ] = $value;
        }


        public static function get( $key )
        {

            $instance = self::getInstance();

            return $instance->data[ $key ];
        }


/* ... */
?>


Waarom roep je de instance telkens opnieuw aan?
Daarnaast is $instance->data declared als een private en gebruik je static functions als normale functions

Fixed code:
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
<?php
class registry
{
    private static $_instance = null;
    private $data = array( );

    private function __construct()
    {
    }


    static public function getInstance( )
    {

        if(self::$_instance === null)
        {

            self::$_instance = new self();
        }


        return self::$_instance;
    }


    public function set( $key, $value )
    {
        
        $this->data[ $key ] = $value;
    }


    public function get( $key )
    {

        return (isset($this->data[ $key ]) ? $this->data[ $key ] : null);
    }
}


/* Voorbeeld */
$reg = registry::getInstance();
$reg->set('key', 'value');

var_dump($reg->get('key'));
?>
Gewijzigd op 02/08/2010 16:21:02 door Bart Waarom verplicht
 
Pim -

Pim -

02/08/2010 19:58:28
Quote Anchor link
Magic methods zijn toch veel mooier?
Dus gewoon __get(), __set() en __isset() implementeren.

Verder is deze global registry net zo fout als het gebruiken van global variabelen of $_GLOBAL.
 
Hipska BE

Hipska BE

02/08/2010 22:33:49
Quote Anchor link
met unset($object); zal hij meteen ge-destruct worden op de plaats dat jij dit uitvoert. Tenzij je natuurlijk zoals in uw geval nog referenties naar het object hebt (de static variable). Dit kan je weer tegenwerken door te kopieren met clone op inhoud ipv kopieren met referentie.
 
- -

- -

03/08/2010 08:29:16
Quote Anchor link
@Pim
Tuurlijk is dat mooier, dit had ik ook eerst maar heb zoveel lopen proberen..

@Bart
Eigenlijk zelfde verhaal :p

@Hipska
Ik weet hoe unset werkt ( gebruik ik hier niet ) en ik heb een static variable die naar mijn object verwijst, maar het object lijkt te destructen aan het eind van een pagina wat ik eigenlijk niet wil..


Ik zit net te denken dat ik, wat ik probeer te bereiken, eigenlijk helemaal niet moet willen. Ik hou het wel bij mijn oplossing met de sessie, later ga ik implementeren dat er per user bijgehouden word welke database hij als laatste heeft gewerkt.
Gewijzigd op 03/08/2010 08:35:10 door - -
 



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.