Beginnende OOP scripter

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed

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 »

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 »

Senior Java developer

Als Senior Developer bij Sogeti ben je onderdeel van onze toonaangevende best-gecertificeerde Java community. Deze bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Aval en de Nationale Politie. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We

Bekijk vacature »

Starter/junior PHP developer

Functie Momenteel zijn ze op zoek naar een junior PHP developer om het team te versterken. Als back-end developer bouw je de enterprise software die hun bedrijf helpt bij haar primaire processen. Afhankelijk van de omvang van het project werk je in een klein team aan een project. Ze hebben dagelijkse stand-ups en elke twee weken een scrumsessie, begeleid door de Scrum Master, waar je je ideeën kunt presenteren en samen met de Product Owner kunt werken aan het beste product. Ze vertrouwen enorm op hun eigen bedrijfssoftware. Dit geeft hun een groot voordeel ten opzichte van hun concurrentie. Zo

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

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 »

SQL ontwikkelaar

Functieomschrijving Voor een gave werkgever in regio Breda zijn wij per direct op zoek naar een SQL ontwikkelaar/ functioneel consultant. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Je test de ontwikkelde oplossingen om er zeker van te zijn dat deze voldoen aan de functionele specificaties en de behoeften van de organisatie; Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Je stelt op

Bekijk vacature »

Developer Full Stack

Functie omschrijving Developer gezocht! Ben jij een enthousiaste developer die graag wil bijdragen aan ontwikkelingen binnen een mooie organisatie? Solliciteer dan snel. Wij zijn op zoek naar een Full Stack Developer uit de regio Nijkerk die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een SaaS applicatie. Je moet beschikken over beheersing van zowel de Nederlandse als Engelse taal aangezien je samen met de klant gaat werken. Bedrijfsprofiel Je komt te werken binnen een echt familiebedrijf dat al sinds 1925 actief is binnen de FMCG branche. Het bedrijf heeft 40 medewerkers en er heerst een platte communicatiestructuur waarbij

Bekijk vacature »

Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Opleveren van mooie eindproducten, middels de Agile methodiek; Samenwerken in een team van 10 collega's; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven. De

Bekijk vacature »

C#.NET Developer

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »
Glenn roelofs

Glenn roelofs

13/07/2010 17:27:11
Quote Anchor link
Goeie avond mensen,

Ik ben pas bezig met oop scripten.
en ik zou graag reacties willen hebben van wat ik goed doe en wat ik fout doe in mijn scripts
Het zijn werkende scriptjes.
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
<?PHP
class Profiel {
    function
getnaam($id) {
        //Input Controleren.
        if(!is_array($id) || count($id) {
            return false;
        }

        
        //Data ophalen
        $query = "select 'naam' from 'gebruikers' where 'id' = '$id'";
        $result = mysql_query($query);
        
        //Controleren als qeury werkt
        if(!$result) die("Qeury Werkt niet. " . mysql_error());
        
        //Info ophalen uit db als gevonden is
        $naam = mysql_result($result, 0);
        
        //Naam weergeven
        echo 'Gebruikersnaam:' . $naam . '<br />';
    }
}

?>

en
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
<?PHP
class Combat{
        function
att($att) {
            $aanval = round($att/5);
            echo 'U deed '.$aanval.' Damage.<br />';
        }
        function
wapenatt($wapenatt) {
            $wapenaanval = round($wapenatt/13);
            echo 'U deed '.$wapenaanval.' Damage Met u wapen.<br />';
        }
        function
skil1($skil1) {
            $skilaanval1 = round($skil1*1.5);
            echo 'U deed '.$skilaanval1.' Damage Met u Skil1.<br />';
        }
        function
skil2($skil2) {
            $skilaanval2 = round($skil2*2.3);
            echo 'U deed '.$skilaanval2.' Damage Met u Skil2.<br />';
        }
        function
total($att, $wapenatt, $skil1, $skil2) {
            $aanval = round($att/5);
            $wapenaanval = round($wapenatt/13);
            $skilaanval1 = round($skil1*1.5);
            $skilaanval2 = round($skil2*2.3);
            $total = ($aanval+$wapenaanval+$skilaanval1+$skilaanval2);
            echo 'U deed '.$total.' Damage in totaal.<br />';
        }
}

?>
 
PHP hulp

PHP hulp

27/04/2024 00:25:16
 
Wesley Overdijk

wesley Overdijk

13/07/2010 17:59:48
Quote Anchor link
elke functie, prepend je met private, public, of protected. Ik zie meerdere dingen die je kan oplossen met het object, dus $this. Verder is het niet zo net om een echo in een class te doen, als je de html en php gescheiden houd.
 
Glenn roelofs

Glenn roelofs

13/07/2010 18:04:03
Quote Anchor link
bedankt voor de informatie wesley.
maar wat is dan de beste manier om de informatie te weergeven?
 
Chris -

Chris -

13/07/2010 18:38:30
Quote Anchor link
De functie return je, en echo je wanneer je hem oproept ;-)

Dus je geeft bij wijze van alleen een cijfer terug (attack -> damage), en het verhaal eromheen doe je dus niet in je class terug laten komen.
 
Glenn roelofs

Glenn roelofs

13/07/2010 18:43:16
Quote Anchor link
als ik het goed begrijp dus zo:
return 1243;

en in de oproep gedeelte dit:
$combat = new Combat();
U deed
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $combat->att($att); ?>
Damage
 
Chris -

Chris -

13/07/2010 19:22:28
Quote Anchor link
Ja, alleen dan geen shorttags gebruiken maar gewoon normale tags!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $combat -> att($att)?>


En volledige namen gebruiken is ook handig ;-) $combat -> attack(); bijvoorbeeld
 
Niels K

Niels K

13/07/2010 19:30:36
Quote Anchor link
Is dit niet wat? Wel een beetje aanpassen naar jouw wens, en de database klassen maken, goede oefening misschien?

Verder moet je de naamgeving aanpassen en wat overzichtelijker programmeren. PHPDoc misschien een goed idee?

Verder kan je dit natuurlijk helemaal aanpassen, met foutenafhandeling ( exceptions ) en dergelijke. Succes!
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
<?php
/**
 * Profile class
 */

class Profile
{
    /**
     * @var String
     */

    private $name;
    
    /**
     * Constructor.
     *
     * @param String $unique_id
     */

    public function __construct( $unique_id )
    {

        // Control input
        if( isValid( $unique_id ) )
        {

            // Make new database
            $database = new MySQL( );
            // Connect
            $database->connect( 'localhost', 'username', 'password', 'database' );
            // Make query
            $query =
            "
                SELECT
                    name
                FROM
                    users
                WHERE
                    id = '"
.$database->addslashes( $unique_id ). "'
            "
;
            // Run the query
            $database->query( $query );
            
        }
    }

    
    /**
     * Controls the input.
     *
     * @param String $unique_id
     * @return Bool
     */

    protected function isValid( $unique_id )
    {

        return ( ctype_digit( $unique_id ) );
    }
    
    
}

?>
Gewijzigd op 13/07/2010 19:39:17 door Niels K
 
Glenn roelofs

Glenn roelofs

13/07/2010 19:56:44
Quote Anchor link
Welke voor en nadelen zijn voor het gebruiken van short tags?
want hoor het vaker gebruik geen short tags
 
- Mark -

- Mark -

13/07/2010 19:59:13
Quote Anchor link
Short tags kunnen zijn uitgezet door je webhost. Dan zie je al je php code gewoon in beeld.
 
Glenn roelofs

Glenn roelofs

13/07/2010 20:07:01
Quote Anchor link
o oke dankje wel dat wist ik niet:)
maar tot nu toe werkt alles wel gewoon dus en ik maak geen projecten voor andere mensen aleen voor eigen doeleine
 
Niels K

Niels K

13/07/2010 20:08:36
Quote Anchor link
Het maakt niet uit voor wie het is.. Als je het nu doet doe je het de volgende keer op een server waar hij uit staat ook:) Je moet proberen jezelf niks verkeerd aan te leren. Want aanleren is makkelijker dan afleren..
 
Glenn roelofs

Glenn roelofs

13/07/2010 20:10:05
Quote Anchor link
dat is wel zo niels:)
ik zal er gaan opletten bij me scripts die nu maak of ga verbeteren
Nog meer tip's & trucs voor OOP?
ik hoor het graag of een Nederlandse tut om oop beter onder de knie te krijgen is erg gewenst
 
Niels K

Niels K

13/07/2010 20:11:00
Quote Anchor link
@Glenn..

Lees mijn vorige reactie eens..

"ik hoor het graag of een Nederlandse tut om oop beter onder de knie te krijgen is erg gewenst"

Laat pas geleden een lid van phphulp deze eens gemaakt hebben

http://phptuts.nl/view/45/

Verder een aantal tips:

- Veel blijven oefenen
- Gewoon hier op het forum vragen of je denkwijze, script goed is. Daarvoor dient dit forum.
- Veel blijven lezen
- Download een aantal frameworks om te kijken hoe hun het gedaan hebben. Een mooi framework in PHP5 om mee te beginnen is Zend Framework. Oftewel kijk af van andere mensen
Gewijzigd op 13/07/2010 20:16:19 door Niels K
 
Glenn roelofs

Glenn roelofs

13/07/2010 20:27:01
Quote Anchor link
@niels

ik zie nergens u reactie staan
maar bedankt voor de link ik ga hem ff goed lezen en uitwerken na mijn wens
 
Niels K

Niels K

13/07/2010 20:44:38
Quote Anchor link
Niels Kieviet op 13/07/2010 19:30:36:
Is dit niet wat? Wel een beetje aanpassen naar jouw wens, en de database klassen maken, goede oefening misschien?

Verder moet je de naamgeving aanpassen en wat overzichtelijker programmeren. PHPDoc misschien een goed idee?

Verder kan je dit natuurlijk helemaal aanpassen, met foutenafhandeling ( exceptions ) en dergelijke. Succes!
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
<?php
/**
 * Profile class
 */

class Profile
{
    /**
     * @var String
     */

    private $name;
    
    /**
     * Constructor.
     *
     * @param String $unique_id
     */

    public function __construct( $unique_id )
    {

        // Control input
        if( isValid( $unique_id ) )
        {

            // Make new database
            $database = new MySQL( );
            // Connect
            $database->connect( 'localhost', 'username', 'password', 'database' );
            // Make query
            $query =
            "
                SELECT
                    name
                FROM
                    users
                WHERE
                    id = '"
.$database->addslashes( $unique_id ). "'
            "
;
            // Run the query
            $database->query( $query );
            
        }
    }

    
    /**
     * Controls the input.
     *
     * @param String $unique_id
     * @return Bool
     */

    protected function isValid( $unique_id )
    {

        return ( ctype_digit( $unique_id ) );
    }
    
    
}

?>


Nu wel?
 
Martijn B

Martijn B

13/07/2010 21:14:59
Quote Anchor link
De functie ctype_digit() wil graag een variabele van het type string anders zou het fout kunnen gaan dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
return ( ctype_digit( (string)$unique_id  ) );
?>

----

Is de methode isValid() alle nodig binnen je klasse? Zo ja maak deze dan private en niet protected. Alle methodes die private zijn beginnen bij mij met een _ dus dan zou het _isValid worden, vind ik duidelijker.

----

Een getal in je query hoef je niet te escapen.
Alleen de casten naar bijvoorbeeld in integer.

Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$query
=
            "
                SELECT
                    name
                FROM
                    users
                WHERE
                    id = '"
. (int)$unique_id . "'
            "
;

?>


Dit als extra beveiliging, als je vergeet $unique_id op inhoud te controleren.
 
Martijn B

Martijn B

13/07/2010 21:16:47
Quote Anchor link
arghhh, dubbel...
Gewijzigd op 13/07/2010 21:17:16 door Martijn B
 
Jurgen Meijer

Jurgen Meijer

14/07/2010 11:08:26
Quote Anchor link
Ik zie meerdere dingen die verder uitgewerkt kunnen worden. Bij OOP gaat het vooral om uitsplitsen van je code. Zo heb je bijv een object Player, Character (die je weer kan extenden naar verschillende typen, warrior, mage of wat voor setting je ook zit).

voorbeeld:

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
<?php
class Character{
    
    public $characterid = 0;
    
    public $hp = 0;

    public $strength = 0;
    
    public $skill = 0;
    
    public $status = 0;
    
    private $database;
    
    public function __construct($id = NULL){
        
        if(!is_null($id)){
            $this->db = database::getInstance('mysql');
            
            /// haal speler op en assign vars
        }
    }

    
    public function save(){
        // object opslaan    
    }
}


class Mage extends Character{
    //doe hier stuff voor mage
}

class Combat{
    
    public function doDamage($characterid, $damage){
        
    }

    
    // nog meer combat functies
}

?>
 
Niels K

Niels K

14/07/2010 11:44:17
Quote Anchor link
Klopt, jullie hebben gelijk. Ik had er niet zo goed over nagedacht, en later komen steeds ideeën in mijn hoofd. Maar voor de TS moet het ook een uitdaging zijn vind ik.
 
Glenn roelofs

Glenn roelofs

14/07/2010 11:59:27
Quote Anchor link
Bedankt jurgen,

zoals jij een voorbeed geeft is voor mij het idee om een game te bouwen met damage en verschillende classes .
ik doe dit samen met een vriend van mij
en we wouden het eerst in normaal php schrijven(is wel makkelijker voor mij)
maar we dachten van nee we gaan het netter maken qua scripting en we gaan OOP gebruiken.
en die vriend van mij maakt ook AS3 scripts ervoor zoals een worldmap enz
 
Jurgen Meijer

Jurgen Meijer

14/07/2010 12:36:13
Quote Anchor link
Je kunt AS3 ook gewoon met PHP laten praten door een HTTP request te doen naar een pagina waar je waardes van ophaalt.
 



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.