ReflectionClass

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software ontwikkelaar

Ben jij graag bezig met verschillende projecten? Vind jij beleving van klanten én medewerkers ook belangrijk? Wij zijn vanwege de doorontwikkeling van het applicatielandschap van onze opdrachtgever op zoek naar een fulltime software ontwikkelaar. Omschrijving Jij en jouw collega’s zijn verantwoordelijk voor de continuïteit en waarborging van het applicatielandschap. Om de processen vloeiend te laten verlopen is software ontwikkeling daarom van essentieel belang. Onze opdrachtgever doet dit voornamelijk zelf, met door hun eigen ontwikkelde applicaties. Dit betekent dat jij: functionele eisen vertaalt naar gebruiksvriendelijke software; tijdens SCRUM sessies advies geeft over het te bouwen ontwerp; nieuwe software ontwikkelt en het

Bekijk vacature »

Back End Developer

Als Back End developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Je hebt een focus op de back end van onze software, daarvoor werken wij hoofdzakelijk met C# en .NET. Wij hanteren een full-stack benadering, wat betekent dat je naast de back-end ook meehelpt bij andere onderdelen van de code. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein

Bekijk vacature »

Intern - Junior PHP ontwikkelaar in fris en jong t

Bedrijfsomschrijving Werk jij graag een in fris, flexibel en jong team? Bij ons ben jij vrij om te bepalen waar jij het liefst werkt en op de vrijdag komen wij gezellig bij elkaar op kantoor. Flexibiliteit en vrijheid zijn bij ons de norm en dat geeft jou de ruimte en energie om het beste uit jezelf te halen! Ons team bestaat uit vijf enthousiaste collega's die jou graag ondersteunen in zowel je persoonlijke als professionele ontwikkeling. Met twee ervaren Senior Developers als mentoren ben jij in goede handen. Wij zien onszelf als een vriendengroep die gezamenlijk werken aan iets moois

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

Software Programmeur

Functie omschrijving Ben jij op zoek naar een organisatie waar je samen met een team werkt aan iets moois en waar je naast hard werken ook hard kunt lachen? Dan ben je hier aan het juiste adres! Voor een informeel IT-bedrijf in omgeving Wassenaar zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed

Bekijk vacature »

Magento developer

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

Belastingdienst - Freelance Applicatieontwikkelaar

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 6 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Hybride. Kantoordagen in Utrecht, incidenteel in Apeldoorn Functieomschrijving: De afdeling IV – Generieke Voorzieningen – Interactie Online is onderdeel van de keten Interactie. De missie van de keten is: “het faciliteren van de interactie met alle burgers, bedrijven en hun vertegenwoordigers om hen in staat te stellen aan hun fiscale verplichtingen te voldoen en aanspraak te maken op hun rechten.” De afdeling Interactie Online heeft een belangrijke bijdrage binnen deze keten. Dit door het ontwikkelen

Bekijk vacature »

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

Senior Front-End Developer

Als Senior Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Senior Front-End Developer bij Coolblue? Als Senior Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Senior Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Nadenken

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

Bekijk vacature »
Tom

Tom

25/07/2006 11:02:00
Quote Anchor link
Ik ben bezig met wat opzoekwerk ivm OOP in PHP5 en ik stuit hier op een class waarvan ik het gebruik niet helemaal begrijp.

Waarvoor dient de class ReflectionClass ?

Ik kwam het in een class tegen onder deze vorm:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    abstract class CoreObject
    {
        protected $me;

        public function __construct()
        {

            $this->me = new ReflectionClass($this);
        }


        /** ... andere functies van deze class, te uitgebreid ... */
    }
?>


Ergens in een andere functie van deze class, kwam ik bijvoorbeeld volgende regel tegen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$defaults = $this->me->getDefaultProperties();


Kan iemand voor mij het licht aansteken aub, want ik tast nog in het duister...
Gewijzigd op 01/01/1970 01:00:00 door Tom
 
PHP hulp

PHP hulp

05/11/2024 15:39:55
 
B a s
Beheerder

B a s

25/07/2006 11:06:00
Quote Anchor link
Ik heb ook geen idee waar de class ReflectionClass voor dient. Zit er geen documentatie bij? Waar heb je de class vandaan?

Ik kan je wel uitleggen wat de regels betekenen, maar niet wat ReflectionClass precies doet. Daar hebben wij ook code voor nodig om dat te achterhalen.
 
Tom

Tom

25/07/2006 12:04:00
Quote Anchor link
ReflectionClass is een class die in PHP zit ingebakken in Zend Engine 2, en dus een standaard PHP5 class is.

Op de website http://sitten-polizei.de/php/reflection_api/docs/language.reflection.class.reflection_class.html staat: "The ReflectionClass class lets you reverse-engineer classes. To introspect a class, you will first have to create an instance of the ReflectionClass class. You can then call any of the above methods on this instance."

In de php manual is hierover echter weinig te vinden.
 
Jelmer -

Jelmer -

25/07/2006 12:26:00
Quote Anchor link
Zoals hij al zegt, het is een klasse die een beschrijving van een klasse en al zijn methods kan geven. Het enige nut dat ik kan bedenken is dat je zo een klasse waar je de code niet van hebt, of waarvan de code te complex is (veel overerving bijv.) makkelijk vanaf de andere kant kan benaderen:

Niet vanaf de achterkant, dus de opbouw van de klasse, maar vanaf de voorkant, het resultaat van alle overervingen e.d. Zo kan een klasse makkelijker onderzocht worden voor bijv. gebruik, of het namaken ervan terwijl je dezelfde 'interface', toegangspunten, behoudt.
 
Jelmer -

Jelmer -

25/07/2006 12:28:00
Quote Anchor link
Op PHPfreakz.nl heb ik er een keertje iets over gelezen, misschien dat je er wat aan hebt.
 
Tom

Tom

25/07/2006 14:03:00
Quote Anchor link
Na wat zoekwerk toch ook op php.net gevonden:
http://be2.php.net/manual/nl/language.oop5.reflection.php
 
Tom

Tom

25/07/2006 16:33:00
Quote Anchor link
Goed... ik kom er blijkbaar niet echt uit. Hier is een deel van een mvc framework dat ik op het net heb gevonden :

class coreObject
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
<?php

abstract class coreObject
{
    protected $me;

    public function __construct()
    {

        $this->me = new ReflectionClass($this);
    }


    public function setFrom($data)
    {

        if (is_array($data) && count($data)) {
            $valid = get_class_vars(get_class($this));
            foreach ($valid as $var => $val) {
                if (isset($data[$var])) {
                    $this->$var = $data[$var];
                }
            }
        }
    }


    public function toArray()
    {

        $defaults = $this->me->getDefaultProperties();
        $return = array();
        foreach ($defaults as $var => $val) {
            if ($this->$var instanceof coreObject) {
                $return[$var] = $this->$var->toArray();
            }
else {
                $return[$var] = $this->$var;
            }
        }


        return $return;
    }


    public function __destruct()
    {
    }
}


?>


class coreObjectDb extends coreObject
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
<?php

abstract class coreObjectDb extends coreObject
{
    protected $db;

    public function __construct()
    {

        parent::__construct();

        static $connection = null;

        if ($connection === null) {
            $connection = DB::connect(CORE_DSN);              
            if (!PEAR::isError($connection)) {
                $connection->setFetchMode(DB_FETCHMODE_ASSOC);
            }
else {
                throw new Exception($connection->getMessage());
            }
        }


        $this->db = $connection;
    }

    function
__destruct()
    {

        parent::__destruct();

        if (DB::isConnection($this->db)) {
            $this->db->disconnect();
        }
    }
}


?>


class coreObjectWeb extends coreObjectDb
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
<?php

abstract class coreObjectWeb extends coreObjectDb
{
    protected $user;
    protected $session;

    public function __construct()
    {

        parent::__construct();

        $this->user = new coreUser();
        $this->session = coreSession::singleton();
    }


    public function __destruct()
    {

        parent::__destruct();
    }
}


?>


class coreModule extends coreObjectWeb
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
<?php

abstract class coreModule extends coreObjectWeb
{
    public $presenter = 'smarty';
    protected $data = array();
    public $name;
    public $tplFile;
    public $moduleName = null;
    public $pageTemplateFile = null;

    public function __construct()
    {

        parent::__construct();

        $this->name = $this->me->getName();
        $parts = explode('_',$this->name);
        $this->tplFile = array_pop($parts).'.tpl';
    }


    abstract public function __default();

    protected function set($var,$val) {
        $this->data[$var] = $val;
    }


    public function getData()
    {

        return $this->data;
    }


     public static function isValid($module)
    {

        return (is_object($module) &&
                $module instanceof coreModule &&
                $module instanceof coreAuth);
    }


    public function __destruct()
    {

        parent::__destruct();
    }
}


?>


class coreAuth extends coreModule
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

abstract class coreAuth extends coreModule
{
    function
__construct()
    {

        parent::__construct();
    }

 
    abstract function authenticate();

    function
__destruct()
    {

        parent::__destruct();
    }
}


?>


Vervolgens zijn er uiteraard de classen die de authenticatie op zich nemen. Van die classen kan je dan verderbouwen om een module voor de website in elkaar te steken.

Nu vraag ik mij af wat het nut is van de 2 functies in de class coreObject, namelijk: toArray() en setFrom($data) !? Ze lijken verder nergens in een class gebruikt te worden, ook niet in de controller.
Gewijzigd op 01/01/1970 01:00:00 door Tom
 
Tom

Tom

25/07/2006 17:26:00
Quote Anchor link
Never mind... na lang zoeken op het web heb ik de auteur van het oorspronkelijke script gevonden (want dit is blijkbaar een aangepast script). Die heeft me uitgelegd waarvoor deze functies dienen.
 



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.