ReflectionClass

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/Senior Python developer

Functie Jij als Senior Python developer hebt al ruime ervaring opgedaan. Bedrijven komen bij de organisatie om technische vraagstukken op te lossen. Jij als specialist bent dus de representatie van deze kwaliteit. Je zult de keuze krijgen tussen lange of korte projecten waarin je komt te werken in multidisciplinaire teams. Projecten die je gaat uitvoeren zijn zeer uitlopend. Zodoende kun je aan de ene kant kiezen voor een greenfield project en stroom je bij een ander project midden in een migratietraject in. Voor de ene klant ontwikkel je ene nieuwe portal en voor het andere project duik je veel meer

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in een ontwikkelteam met 7 .NET developers. In ons team werken er drie senior .NET developer, twee medior .NET developers en twee junior .NET developers. Er is dan ook genoeg senioriteit in ons team om jou te kunnen bieden wat jij nodig hebt! Wij werken in scrum en hebben drie wekelijkste sprints. Daarnaast doen wij minimaal vier keer per jaar een release. Ons platform is ontzettend complex en groot. Het is dan ook in het begin belangrijk dat jij de processen gaat begrijpen. Jij krijgt dan ook een cursus om beter te begrijpen

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 »

Fullstack Developer TOTO

Do you want to work with the latest technologies on the development of new systems and applications? Get moving and strengthen Nederlandse Loterij as a Fullstack Developer TOTO. Thanks to your efforts, complex business critical applications are always running smoothly. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Fullstack Developer you score by: Taking ownership of the development cycle of an application in a large scale, high availability, geo redundant landscape Coaching your peer developers and safeguarding code quality Integrating the application with other components of the system using the available API’s Managing

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving Startende Software Ontwikkelaar gezocht met kennis van C# .NET! Ben jij net klaar met je opleiding en ben je op zoek naar je eerste echte werkervaring? Of heb jij al enige werkervaring maar ben toe aan iets nieuws? Dan is dit de perfecte kans voor jou! Wij zoeken namelijk een Junior Software Ontwikkelaar die klaar is voor een nieuwe uitdaging bij een leuke werkgeven in de regio Zeist. In deze functie werk jij vaak aan verschillende projecten en ga je bij klanten op bezoek. Ben jij op zoek naar een functie met uitdaging, diversiteit en verantwoordelijkheid? Dan is

Bekijk vacature »

C# .NET Software Ontwikkelaar

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Arnhem gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Als C# .NET Developer binnen dit bedrijf houd je je niet alleen bezig met het verbeteren van

Bekijk vacature »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Voor een opdrachtgever in omgeving Moordrecht zijn wij op zoek naar een programmeur. 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

Bekijk vacature »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

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 »

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 »

Applicatie Ontwikkelaar

Bedrijfsomschrijving DUO verzorgt als uitvoeringsorganisatie, zijnde onderdeel van het Ministerie van Onderwijs, Cultuur en Wetenschap de uitvoering van complexe wet- en regelgeving en heeft een uitgebreid dienstenpakket. DUO financiert en informeert onderwijsdeelnemers en onderwijsinstellingen. Voor verdere informatie zie www.duo.nl Functieomschrijving Wie zoeken we? Jij bent een enthousiaste, flexibele OPS’er die het leuk vindt om het bestaande examenlandschap te vernieuwen. Je bent leergierig en hebt interesse in cloud- en containertechnieken zoals OpenShift, Docker en Helm. Je gaat een uitdaging niet uit de weg en wil je nieuw opgedane kennis graag delen met de collega’s binnen en buiten het team. Doordat de

Bekijk vacature »

Java/Kotlin Developer

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 »

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

17/02/2025 19:11:29
 
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.