OOP gedachtengang

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack Developer

Functieomschrijving Heb je kort geleden jouw HBO diploma ICT development behaald? Of zit je nog aan het begin van je carrière en heb je affiniteit met C#.NET? Voor een erkende werkgever in de omgeving van Oosterhout zijn wij op zoek naar een fullstack developer. Als C#.NET developer werk je samen met een vooruitstrevend team aan het ontwikkelen van maatwerk software voor klanten. Je hebt affiniteit met SQL, maar nog belangrijker is dat je kennis en ervaring hebt met C#.NET. Jouw werkzaamheden zien er als volgt uit: Het ontwikkelen van onze high-availability en high-performance backend; Je begint de dag rond 8:30

Bekijk vacature »

Junior Fullstack Developer

Functie omschrijving Heb jij je universitair diploma Informatica afgerond en ben jij op zoek naar een startersfunctie waar jouw ontwikkeling in een hoog vaandel staat? Voor een softwarebedrijf in Amsterdam zijn wij op zoek naar een Junior Fullstack Developer. Je begint met een op maat gemaakte training om de kennis bij te spijkeren die jij nog mist. Uiteraard leer je het meeste tijdens je werk, maar de training geeft je hiervoor alvast de juiste handvatten. Je kunt het volgende verwachten! Jij ontwikkelt in technieken als Java, Javascript en SQL. Je werkt hierbij volgens de Agile/Scrum methode; Na het afronden van

Bekijk vacature »

Senior Java Developer

Als Senior Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java 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 bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en

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 »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »

Senior Cobol Applicatieontwikkelaar

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving In de applicatie ETM

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

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 »

Medior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Medior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Junior .NET developer

Functie Jij hebt natuurlijk net jouw Bachelor op zak en gaat nu voor het eerst aan de slag bij een werkgever als junior .NET ontwikkelaar. Waarschijnlijk lijkt het jou spannend om ineens aan de slag te gaan bij klanten in de consultancy. Maak je niet druk, jij komt hier terecht in een warm bad en wordt totaal niet in het diepe gegooid. Zodra jij hier begint wordt jij gekoppeld aan een persoonlijke manager met een persoonlijk ontwikkelplan. Jij krijgt een scala aan trainingen, denk aan trainingen ten behoeve van het opdoen van zelf kennis en gedragscompetenties, maar ook trainingen voor

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. 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 verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Medior Java developer (fullstack)

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 »

.NET developer

Functie Als junior .NET ontwikkelaar ga jij aan de slag in één van de 5 IT teams van dit bedrijf. Jullie werken op basis van interne klantprojecten aan voornamelijk webapplicaties. Dit betekent dat jij continu uitgedaagd wordt en veelal met verschillende soorten projecten bezig bent. Het gave is dan ook dat jullie als team samen bekijken welke technieken het beste passen bij het project waar jullie verantwoordelijk voor zijn. Zo kan het zijn dat jij als .NET developer gaat werken aan een project, maar dat jullie als team liever gebruik maken van Haskell of F# om de klus te klaren.

Bekijk vacature »

PHP developer

Functie Voor een opdrachtgever in omgeving Leiden zijn wij op zoek naar een PHP developer die affiniteit heeft met C++. Ben jij reeds afgestudeerd of heb je al een paar jaar ervaring? Lees snel verder en kijk of dit iets voor jou is! 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 het gebied van

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Pagina: « vorige 1 2 3 4 5 volgende »

Niels K

Niels K

21/06/2012 15:51:50
Quote Anchor link
Hartelijk dank voor de (positieve) reacties.

Allereerst even voorop gesteld dat de discussie op Twitter / Facebook ging over Zend en Symfony (Dus MVC en HTTP framework)

Daarom zei ik dat Wouter fan is van het HTTP framework Symfony en ik / kees en andere fan ben van het Zend MVC framework.

Quote:
Maar ik denk dat als je frameworks gaat presenteren, je twee betere keuzes had kunnen maken, namelijk micro-framework vs full-stack-framework


Ondanks bovenstaande verklaring, even nog een reactie op deze zin. Ik ben direct begonnen met het realiseren van projecten met Zend framework. Ik heb dus nooit een framework like Silex gebruikt. Ik kan dus niet beoordelen of het in het 'framework-leer-proces' beter is om te beginnen met een klein framework. Er zijn ook mensen die zeggen dat je beter kan beginnen met het bouwen van een eigen framework.

Mijn mening is, dat je pas een eigen framework moet bouwen als je geen framework kan vinden wat aan jouw eisen voldoet. Aangezien er behoorlijk wat frameworks zijn, is dat dus (haast) nooit het geval.

Wat de eisen van een framework zijn, laat ik in het midden.

Quote:
Because I really don't care whether Symfony2 is MVC or not. Probably because the MVC word is so overloaded and because nobody implements exactly the same MVC pattern anyway.


Ik twijfelde of ik die nog moest opnemen in mijn verhaal. Ik heb het niet gedaan aangezien Fabien het volgende zegt:

Quote:
I don't like MVC because that's not how the web works. Symfony2 is an HTTP framework; it is a Request/Response framework. That's the big deal. The fundamental principles of Symfony2 are centered around the HTTP specification.


Hij vind MVC niets aangezien het web zo niet werkt. Dat betekend dus dat hij een framework heeft gemaakt dat niet op het MVC pattern lijkt, aangezien hij daar niet van houd. Anders spreekt hij zichzelf tegen toch?

Quote:
Because I really don't care whether Symfony2 is MVC or not.


ORM:

Wat ik nog als discussie punt wil stellen. Is een ORM eigenlijk wel gewenst? Werkt dat nu echt zo lekker als het allemaal voorgeschoteld wordt. Is het niet veel mooier om gewoon query's te tikken zonder al die rompslomp?

Wat is nu precies het voordeel van een ORM?

Het voordeel van deze techniek is dat je code niets af hoeft te weten van het soort database dat gebruikt wordt. Hierdoor wordt het eenvoudig om van database te switchen. Daarnaast maakt dit de rest van je programma eenvoudiger. Je kan rechtstreeks met de tabellen werken zonder dat je ingewikkelde mappers of iets dergelijks hoeft te maken.

Maar, heb jij wel eens in een project van een type database moeten switchen? En als dat zo is, getuigd dat niet van een slecht voorbereiding?

En heb je met een ORM wel eens geprobeerd een zeer ingewikkelde query te schrijven? ééntje met flink wat joins, unions, subquery's (voor zover je subquery's mooi vind), group by's en nog wat lastige zaken?

Maar goed, zegt iemand, daar heb ik een oplossing voor. De meeste ORM's bieden ook de mogelijkheid om een normale query te tikken. Maar ben je dan niet je database onafhankelijkheid (Wat juist zo'n groot voordeel van een ORM is) kwijt? En op het moment dat je meerdere van zulk soort query's hebt, wordt je applicatie dan geen bende?

Het tweede 'voordeel' van een ORM is dat je tabellen naar objecten map waardoor de communicatie met de database een stuk eenvoudiger is. Echter, waarom moet je een ORM hebben om dit te bereiken? Waarom niet gewoon wat mooie data mappers? Zijn die nou zo moeilijk om te schrijven? Je bereikt dan toch precies hetzelfde? Het voordeel van wat mooie mappers is dat je gewoon lekker query's kan bakken zonder al die rompslomp eromheen.

Dat is naar mijn mening ook één van de grootste nadelen van een ORM. Doordat je een taal (SQL bijvoorbeeld) probeert te abstraheren / evenaren / nabouwen / geef het beest een naampje, wordt je code algauw enorm ingewikkeld. Waar is de tijd gebleven dat je nog netjes query's schreef?

Nog een nadeel van een ORM is, is dat ze nooit doen wat je exact wilt. De ene gebruikt backticks de andere doet het weer fout met haakjes, en noem maar op.

Ooit wel eens nagedacht over query optimalisatie? Weet jij exact hoe je dit doet in jouw ORM?

En als je nu iets database gerelateerd wilt schrijven? Hoe ga je dat doen? Schrijf je dan wel ineens een normale query? Is dat niet hypocriet dan?

Tot slot:

Hopelijk begrijp je dat bovenstaande verhaal een beetje overtrokken en sarcastisch geschreven is, maar ik hoop dat ik een (leuke) discussie oproep.

Mooi topic dit, daarvoor ben ik hier op PHPhulp!

Niels Kieviet
Gewijzigd op 21/06/2012 15:55:01 door Niels K
 
PHP hulp

PHP hulp

21/11/2024 15:55:15
 
Wouter J

Wouter J

21/06/2012 16:10:26
Quote Anchor link
@Niels, ah nu gaan we wel onze mening erin gooien! :) Het mooie van Symfony is dat hij het open laat of je een ORM gebruikt of niet. Je kan ook gewoon overstappen op Models of gebruik gaan maken van de gewone PDO/MySQLi objecten. Symfony laat in het midden wat je doet met die DB, dat is nou zo mooi. Beslis zelf niet wat jij het best vind, maar laat de uiteindelijke gebruiker beslissen welke 3th party hij gebruikt. Precies zoals met Twig, vind je Smarty mooier? Dat kan zo!

En van DB wisselen in een project slechte voorbereiding? Ik heb een tijdje met RoR gewerkt (die gebruikt Active Record) en daar is het de standaard dat je in develop mode een SQLite DB gebruikt en in productie mode een MySQL db (oid). Dus ik denk niet dat het iets te maken heeft met slechte voorbereiding...

Quote:
Mijn mening is, dat je pas een eigen framework moet bouwen als je geen framework kan vinden wat aan jouw eisen voldoet. Aangezien er behoorlijk wat frameworks zijn, is dat dus (haast) nooit het geval.

Natuurlijk, maar Silex is al een framework. Je hoeft niet zelf een framework te bouwen.

Even een voorbeeldje met een gastenboek systeem:
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
require_once __DIR__.'/vendor/Silex/autoload.php';

$app = new Silex\Application();

// beetje Twig is altijd leuk
$app->register(new Silex\Provider\TwigServiceProvider(), array(
    'twig.path' => __DIR__.'/views',
));


$guestBookMapper = new Guestbook\Mapper();

// als guestbook wordt opgeroepen in de url
$app->match('/guestbook', function() use ($app, $guestBookMapper) {
    // haal de 10 laatste berichten op
    $posts = $guetsBookMapper->getRecent(10);

    // render de show_all.twig page met de 10 recentste berichten
    return $app['twig']->render('show_all.twig', $posts);
});


// als guestbook/show/12 wordt opgeroepen (of elke andere id)
$app->get('/guestbook/show/:id', function(Silex\Application $app, $id) use ($guestBookMapper) {
    // kijk of bericht bestaat
    if ($post = $guestBookMapper->getById($id)) {
        // ja, hij bestaat, render show_single.twig met de gegevens van het bericht
        return $app['twig']->render('show_single.twig', $post);
    }
else {
        // nee, hij bestaat niet :( toon 404 pagina
        $app->abort(404, 'Dit bericht bestaat niet');
    }
});

?>
Gewijzigd op 21/06/2012 16:11:08 door Wouter J
 
Niels K

Niels K

21/06/2012 19:18:10
Quote Anchor link
Hoi Wouter,

Je draait om het punt heen ;-) Ik wil niet weten of het kan, ik wil weten wat jij er van vind. Ondanks mijn verhaal gebruik ik (af en toe) wel een ORM. Simpelweg omdat het makkelijk is.

Maar sinds ik een aantal artikelen gelezen heb, heb ik een andere mening gevormd. Ben jij het daar mee eens?

Quote:
Symfony laat in het midden wat je doet met die DB, dat is nou zo mooi. Beslis zelf niet wat jij het best vind, maar laat de uiteindelijke gebruiker beslissen welke 3th party hij gebruikt. Precies zoals met Twig, vind je Smarty mooier? Dat kan zo!


Zeker! Dat vind ik juist zo mooi aan Symfony, het laat je helemaal vrij, terwijl Zend dat juist niet doet. Alhoewel dat ook niet helemaal waar is. Met zend kan je ook bepalen wat je wel en niet doet. Dus wel of geen Doctrine, of wel of geen Smarty / Twig.

Alleen heb ik wel mijn bedenkingen omtrent een template parser. Waarom moet dat? Kan jij nu echte voordelen opnoemen?

Quote:
En van DB wisselen in een project slechte voorbereiding? Ik heb een tijdje met RoR gewerkt (die gebruikt Active Record) en daar is het de standaard dat je in develop mode een SQLite DB gebruikt en in productie mode een MySQL db (oid). Dus ik denk niet dat het iets te maken heeft met slechte voorbereiding...


Ik bedoelde te zeggen dat, dat juist één van de voordelen van een ORM is, maar dat je zulk soort situaties bijna niet tegenkomt.

Ik zeg altijd, een goede ontwikkelomgeving staat gelijk aan de live omgeving.

Quote:
Natuurlijk, maar Silex is al een framework. Je hoeft niet zelf een framework te bouwen.


Exact, maar dat bedoelde ik niet. Ik gaf alleen een reden waarom je evt een eigen framework / beheersysteem (Zie ook topic van Ozzie PHP van een aantal maanden geleden) kan schrijven.

Tot slot,

Code voorbeeld ziet er goed uit. Ik heb niets tegen Silex? Alleen ik probeer mensen na te laten denken i.p.v iets klakkeloos over te nemen. Je moet geen framework gaan gebruiken omdat andere mensen het aanraden of omdat andere mensen zeggen dat het een goed framework is.

Of ben je dat niet met mij eens?

Dankjewel voor je antwoord!

Niels Kieviet
Gewijzigd op 21/06/2012 19:18:59 door Niels K
 
Wouter J

Wouter J

21/06/2012 19:54:47
Quote Anchor link
Quote:
Je draait om het punt heen ;-) Ik wil niet weten of het kan, ik wil weten wat jij er van vind. Ondanks mijn verhaal gebruik ik (af en toe) wel een ORM. Simpelweg omdat het makkelijk is.

Maar sinds ik een aantal artikelen gelezen heb, heb ik een andere mening gevormd. Ben jij het daar mee eens?

Tja, zoals ik net al had gezegd heb ik nog geen groot project gemaakt en nog maar weinig met ORM's gewerkt, maar ik vind het wel fijn werken. En ja, er zitten nadelen aan, maar goed. Ik ben van mening dat aan elke libary/framework/app/pattern voordelen zitten en nadelen.

Quote:
Code voorbeeld ziet er goed uit. Ik heb niets tegen Silex? Alleen ik probeer mensen na te laten denken i.p.v iets klakkeloos over te nemen. Je moet geen framework gaan gebruiken omdat andere mensen het aanraden of omdat andere mensen zeggen dat het een goed framework is.

Nee, het was ook niet om jou van Silex te overtuigen. Het was om dit topic, en Jasper, een voorbeeld te geven van hoe het ook kan. Om een voorbeeld te geven van een micro-framework in gebruik. Juist omdat ik het volledig eens ben met het laatste dat je zegt. Je moet niet iets klakkeloos overnemen, je moet zelf opzoek gaan naar wat jij het best vind werken.
Daarom heb ik eerst aan alle 3 de frameworks gesnuffeld en vervolgens begonnen met Symfony. Waarom? Nou allereerst omdat de website en documentatie van Symfony er het best uitzag (ja, ben en blijf een webdesigner). En ten tweede toch zeker wel omdat de code veel moderner was met de nieuwste technieken (Silex maakt zelfs al gebruik van traits(!)).

En een template parser, goed of niet?
Zie daarvoor: http://www.phphulp.nl/php/forum/topic/template-engine-doen-of-niet-doen/83080/
Samengevat, ik hou van template parsers omdat:
1) het makkelijker is om te leren (voor designers), want (dit gaat over Twig) de syntax lijk redelijk op JavaScript. Iets wat designer met jQuery nu wel redelijk doorhebben.
2) het goede support heeft voor blocks en extenden van templates
3) autoescaping
4) designer beperken => zorg dat de designer niet alles kan doen zodat er geen grote fouten ontstaan
5)
 
Jasper DS

Jasper DS

21/06/2012 21:07:14
Quote Anchor link
Bedankt iedereen voor deze interessante bijdrage's, ik heb weer veel informatie kunnen verwerken. Ben momenteel dan toch begonnen met ZEND gewoonweg omdat ik merk dat het een veel gebruikt framework is en het sowieso handig is om het te kennen. Later als ik genoeg ervaring heb kan ik dan uitmaken wat nu het beste framework is op alle vlakken en mijn eigen mening vormen. Dat gaan nu nog niet, simpelweg omdat ik niet genoeg kennis heb!

Bedankt voor dit leuke topic en er zullen binnenkort waarschijnlijk wel wat ZEND vragen van mijn kant komen! ;-)

EDIT:

nog even over de gedachtengang, ik denk dat ik een beetje moeite heb met het opsplitsen van een echte pagina naar een view, controller, moddel.

Ik heb 2 pagina's : index.php (-> basis info + taal kiezen) , login.php (-> formpje om in te loggen) Zijn dat nu 2 aparte controllers of 1 controller met een action "login" als ik "Each page of the application is known as an action and actions are grouped into controllers" in mijn achterhoofd hou?
Gewijzigd op 21/06/2012 21:25:31 door Jasper DS
 
Wouter J

Wouter J

21/06/2012 21:42:50
Quote Anchor link
Nee, je moet de taken onderverdelen. Elke taak heeft zijn eigen controller. In een gastenboek heb je bijv. meerdere taken: Post taken (laten zien van een bericht, maken van bericht, bewerken v. bericht, verwijderen v. b.) en inlog taken (inloggen van gebruikers, dit wordt met Zend_Auth gedaan).

Deze 2 taken hebben ieder een eigen controller. Dan heb je nu al die dingen die er binnen zo'n taak gedaan worden, vaak de CRUD (create, read, update en delete). Dit zijn acties, ook heb je vaak een show actie.

Vervolgens heb je ook verschillende tabellen: users (voor inlog systeem) en posts (voor de berichten). Elke tabel krijg zijn eigen Model.

Ik vind die engelse quote een beetje vaagjes en niet echt geweldig...
 
Jasper DS

Jasper DS

21/06/2012 21:48:38
Quote Anchor link
Oke, dus een inlog-systeempje is nog iets te ingewikkeld?


Toevoeging op 21/06/2012 22:47:38:

Niels, ben ik op de goede weg?

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

/**
 *  Deze classe doet ... ik heb geen idee
 *
*/


class Application_Model_DbTable_Guestbook extends Zend_Db_Table_Abstract
{

    protected $_name = 'guestbook';
    protected $_rowClass = 'Application_Model_Guestbook';

}


?>


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

/**
 * Dit is het Guestbook object waar ik al mijn info uit kan trekken via de controller, de info haal ik uit de Mapper
 */


class Application_Model_Guestbook extends Zend_Db_Table_Row_Abstract
{

    protected $id;
    protected $comment;
    protected $email;
    protected $date;

    public funtion __set($name, $value)
    {

        if(method_exists($this,$name='set_'.$name))
        {

        return $this->$name($value);
        }

        else
        {
            trigger_error($name.' is not avaliable .',E_USER_ERROR);
        }    
    }


    public function __get($name)
    {

        if(method_exists($this,$name='get_'.$name))
        {

            return $this->$name();
        }

        else
        {
            trigger_error($name.' is not avaliable .',E_USER_ERROR);
        }
    }


    // ik denk dat ik de setters en getter nog moet maken?
    
    public function getId()
    {

        return $this->id;
    }

    
    public function setId($id)
    {

        $this->id = $id;
    }

    
    // Wat moet er in deze classe nog worden toegevoegd?
}


?>


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

/**
 * Dit object haalt info uit de db en stopt dat in het Guestbook object
 */

class Application_Model_GuestbookMapper {

    protected $dbTable;

    public function setTable(Zend_Db_Table_Abstract $table)
    {

        $this->dbTable = $table;
    }


    public function getTable()
    {

        return $dbTable;
    }


    public function save(Application_Model_Guestbook $guestbook)
    {

        // Ik veronderstel dat ik hier mijn data uit het object Application_Model_Guestbook moet halen?
        $this->getTable()->insert($data);
    }


    public function fetchAll()
    {

        // Tabelobject? Wat is mijn tabelobject?
    }
}


?>
 
Niels K

Niels K

22/06/2012 19:01:23
Quote Anchor link
Wouter J:
Tja, zoals ik net al had gezegd heb ik nog geen groot project gemaakt


Ik had je uitgenodigd toch ? ;-)

Wouter J:
... en nog maar weinig met ORM's gewerkt, maar ik vind het wel fijn werken. En ja, er zitten nadelen aan, maar goed.....


Dat klopt, ze werken inderdaad fijn. Maar zodra je echt een moeilijke query wilt bakken wordt een ORM al gauw lastig. Zijn er mensen die deze ervaring delen?

Quote:
... Ik ben van mening dat aan elke libary/framework/app/pattern voordelen zitten en nadelen.


Daar heb je een goed punt! :-) Elke framework heeft wel zijn ditjes en zijn datjes. Maar een framework is iets anders dan een ORM ;-)

Wouter J:
Nee, het was ook niet om jou van Silex te overtuigen. Het was om dit topic, en Jasper, een voorbeeld te geven van hoe het ook kan. Om een voorbeeld te geven van een micro-framework in gebruik.


Ah, sorry dan heb ik dat verkeerd geïnterpreteerd. Zoals ik zei kan ik daar niet over oordelen omdat ik direct met Zend Framework begonnen ben. Dat heb je als je bij een bedrijf pas echt begint met programmeren.

Wouter J:
Juist omdat ik het volledig eens ben met het laatste dat je zegt. Je moet niet iets klakkeloos overnemen, je moet zelf opzoek gaan naar wat jij het best vind werken.


Kijk, we komen er wel uit ;p

Wouter J:
Daarom heb ik eerst aan alle 3 de frameworks gesnuffeld en vervolgens begonnen met Symfony. Waarom? Nou allereerst omdat de website en documentatie van Symfony er het best uitzag (ja, ben en blijf een webdesigner). En ten tweede toch zeker wel omdat de code veel moderner was met de nieuwste technieken (Silex maakt zelfs al gebruik van traits(!)).


Top, iedereen zijn eigen favorite framework toch? Ik vind zowel Zend als Symfony lekker werken. (Heb 1 project met Symfony gedaan)

Ik heb echter veel meer verstand van Zend Framework dan van het Symfony framework dus als ik wat dingen uitleg probeer ik het op basis van Zend Framework te doen.

Wouter J:
En een template parser, goed of niet?


Zie mijn reactie in het desbetreffende topic.

@Jasper PHP

Ik heb geen tijd meer om op jouw reactie te reageren. Its party time ;-) Ik zal morgen op jouw reactie reageren.
 
Reshad F

Reshad F

22/06/2012 19:27:07
Quote Anchor link
hmm ik vraag me af, ik ben met CI begonnen en dat is ook gebaseerd op MVC en ik begrijp dat wel grotendeels is het dan handig om op ZEND over te stappen of op Symfony aangezien de een MVC is en de ander niet?

of zou dit niet uit moeten maken.
 
Wouter J

Wouter J

22/06/2012 23:09:01
Quote Anchor link
Nee, heel groot is het verschil niet. Alleen net wat kleine stapjes. Je zou zelfs kunnen zeggen dat het HTTP pattern een implementatie is van het MVC pattern, want zoals Fabien al zei, niemand weet hoe het MVC goed moet worden geïmplementeerd: Het is een geweldig pattern, alleen zo onduidelijk als het maar kan zijn.

Quote:
Maar een framework is iets anders dan een ORM ;-)

Daarom zei ik ook framework/libary/app/pattern, ik denk dat een ORM daar wel ergens tussen valt :)
 
Reshad F

Reshad F

22/06/2012 23:14:18
Quote Anchor link
wat vond jij makkelijker uitgelegd/gedocumenteerd wouter? Zend of Symfony? en zeg alsjeblieft niet alleen maar Symfony omdat je er fan van bent :P
 
Wouter J

Wouter J

23/06/2012 00:08:23
Quote Anchor link
Symfony. Hun website leest makkelijker, straalt professionaliteit uit en is overzichtelijk. Na het lezen van een Symfony documentatie wil ik altijd meteen beginnen, ik kan me niet herinneren dat met Zend te hebben gehad...

Maar ben je al begonnen met symfony? Of begrijp je het niet? (vertel maar even in je eigen topic, houden we de zaken goed gescheiden)

Edit:
Even iets opgezocht waardoor je ziet dat ik niet de enige ben die dit vind:
Quote:
In addition to the content of the Quick Tour I also found the design of Symfony’s website to be quite appealing. Although it is said to not judge a book by its cover we humans tend to notice things that are pretty. The same is true of Symfony’s website. Its pleasing to look at, pleasing to use, and I felt a sense of professionalism and polish that made me feel safe to learn more about the code.

I spent a few nights reading in bed on my iPad the rest of Symfony’s tutorials and docs and finally felt confident enough to begin coding. I did begin doing some coding in Symfony and aside from the difficulty of learning a new project’s jargon I was actually having an enjoyable time using Symfony.
(bron)
Gewijzigd op 23/06/2012 10:16:49 door Wouter J
 
Roel -

Roel -

25/06/2012 22:00:26
Quote Anchor link
Ik snap het met die autoloader nog niet helemaal, het lijkt mij juist omslachtig.
De werking snap ik helemaal, alleen je gebruikt voor de eerste keer dat je een object aanmaakt een andere naam voor object, dat lijkt mij juist verwarrend.

Klopt dit?
 
Wouter J

Wouter J

25/06/2012 22:08:17
Quote Anchor link
Nee, je gebruikt altijd dezelfde naam.
 
Roel -

Roel -

25/06/2012 22:14:20
Quote Anchor link
Ook als je het in submappen plaatst?
Dan heb je /www/classes/User/User.php en als je dan new User doet, dan kom je daar uit?
 
Wouter J

Wouter J

25/06/2012 22:19:39
Quote Anchor link
Nee, daarom moet je die klasse een andere naam geven. Dus niet een klasse User maar een klasse User_User.

En, ja dat staat heel lelijk en ja dat kan veel mooier. Met namespaces:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
// lib/MyProject/User/User.php

namespace MyProject\User;

class User
{
   // ...
}
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// index.php

// registreer de autoloader


use MyProject\User\User;

$user = new User();
?>
 
Roel -

Roel -

25/06/2012 23:00:08
Quote Anchor link
Is dat dan niet hetzelfde idee als gewoon require typen? xD
 
Wouter J

Wouter J

26/06/2012 10:05:32
Quote Anchor link
Roel, het mooie van een autoloader is dat deze het automatisch doet. Hierdoor heb je nooit problemen met nog niet gedefinieerde klassen.
En het is lazy-loading: De klasse wordt pas ingevoegd als je hem nodig hebt, niet eerder.
 
John Cena

John Cena

26/06/2012 10:08:08
Quote Anchor link
En het staat ook fancyer, dat kun je niet ontkennen :)

Vind het toch mooier om er Application_Model_DbTable_Settings te typen als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
require_once('/application/model/dbtable/settings.php'); ?>
 
Roel -

Roel -

26/06/2012 19:36:58
Quote Anchor link
Ik kan er met m'n verstand gewoon niet bij. Je gebruik bij je class definitie namespace en bij de instanciëring use?
 

Pagina: « vorige 1 2 3 4 5 volgende »



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.