modules en mvc

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

08/01/2013 20:02:42
Quote Anchor link
Oké, maar kunnen jullie dan uitleggen wat een module is, en waarom een router geen module is.
Stel je hebt een Article module. Die regelt het aanmaken, editen en verwijderen van berichten. Dan zou je ook een Router module kunnen hebben die de routes vertaalt naar de juiste controllers. Waar zit 'm dan het verschil in?
 
PHP hulp

PHP hulp

27/05/2026 05:44:05
 
- Raoul -

- Raoul -

08/01/2013 21:01:13
Quote Anchor link
Articles serven echte data naar de user toe, Routers niet. Tevens moet een router ingebakken zitten in je framework.
 
Ozzie PHP

Ozzie PHP

08/01/2013 21:09:58
Quote Anchor link
Thanks Raoul, maar hoe zie jij dan de omschrijving van een module? Ik zie het als een aantal bij elkaar horende bestanden die een bepaald doel hebben. Zo heeft een bannermodule bijvoorbeeld als doel om banners te kunnen beheren.

Ik begrijp dat een Router bij het framework hoort, maar dan zou het toch ook een module van het framework kunnen zijn?
 
- Raoul -

- Raoul -

08/01/2013 21:13:07
Quote Anchor link
Nee, dan is het een "component" van het framework die je kan gebruiken. Kan niet echt een goed voorbeeld bedenken waar zoiets zou moeten, maar ik denk in je lib folder van je framework.

Modules zijn echt door de programmeur zelf gemaakt zodat je meerdere "delen" van eerdere sites kunt hergebruiken.
 
Ozzie PHP

Ozzie PHP

08/01/2013 21:26:18
Quote Anchor link
Hmmmm... ik stel een hoop vragen, ik weet het... maar ik wil dus een eigen framework maken waar mijn websites op draaien. Zou jij eens een directorystructuur kunnen laten zien, hoe jij denkt dat het er uit moet zien?

Hier een klein versimpeld voorbeeldje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
private/control/modules/banners/controller.php
                               /model.php
                               /view.phtml
                       /news/controller.php
                            /model.php
                            /view.phtml
private/domains/leukesite.nl/modules
               /nogleukeresite.nl/modules
public_html/domains/leukesite.nl/css
                            /images
                            /enz.


Waar zou jij nu dan de framework bestanden laten... en in het bijzonder de router module/component?

(Bovenstaande is slechts een voorbeeldje, voel je vrij om aan te geven hoe jij het zou doen. Ik wil in ieder geval wel een soort van mvc implementatie blijven behouden.)
 
- Raoul -

- Raoul -

08/01/2013 21:29:08
Quote Anchor link
Ikzelf heb voor mijn eigen framework eerst een module structuur dat allemaal wel heel erg mooi werkte maar veel problemen opleverde met m'n custom autoloader, de code werd te lelijk en ik heb het er maar uitgezwierd.

Anyway, zo zag mijn structuur eruit, ben niet zeker of het 100% PSR correct is.
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
lib/
   Framework/
      ...
   Twig/
      ...

config/
   application.yml

module/
   Application/
      Module.php
      config/
          module.yml
      src/
          Controller/
              ...
          Model/
              ...
 
Ozzie PHP

Ozzie PHP

08/01/2013 21:33:07
Quote Anchor link
Ah oké, net weer iets anders dan wat ik heb.
Nou, ik ga er nog maar even mee stoeien...
Ben wel benieuwd of iemand nog een goede omschrijving kan geven van wat een module zou moeten zijn (en waarom in dit verband een Router geen module is van het framework)
 
Tim S

Tim S

08/01/2013 21:40:15
Quote Anchor link
http://nl.wikipedia.org/wiki/Module

Een router kan wel een module zijn maar is gewoon ongebruikelijk. Als je een website maakt heb je gewoon je standaard structuur en kan je per website de benodigde modules grbuiken. Als je de router als module wilt gebruiken mag dat natuurlijk, maar de vraag is waarom zou je dat willen?
 
Ozzie PHP

Ozzie PHP

08/01/2013 21:45:24
Quote Anchor link
Hmmm, oké... dus de voorwaarde is dan eigenlijk dat een module herbruikbaar is?
 
Tim S

Tim S

08/01/2013 22:03:37
Quote Anchor link
Het is een onderdeel van een groter geheel, dit onderdeel kan van alles zijn maar een wiel van een auto kan je ook op een andere auto plaatsen.
 
Ozzie PHP

Ozzie PHP

08/01/2013 22:19:33
Quote Anchor link
Oké, thanks. Dit maakt een en ander alweer wat duidelijker!
 
Wouter J

Wouter J

08/01/2013 22:23:32
Quote Anchor link
Oké, hoe 'wij' het bij symfony zien:

Je hebt het core framework en de bundles. Het core framework is de echte basis van je applicatie, deze krijgt de gebruiker niet direct te zien, maar is de laag onder de laag die de gebruiker krijgt te zien. De laag die de gebruiker krijgt te zien is de laag van de bundles. Deze bundles gebruiken het core framework en de controllers, views en models van een bundle worden aangeroepen door het framework.

Het framework bestaat weer uit 3 dingen: Components, Bridges en Bundles. Components zijn 'standalone' libarries. Deze zijn niet met als speciaal doel voor het framework gemaakt, maar kunnen allemaal los gebruikt worden. Zo heb je bijv. een Routing Component en een Console Component. Het mooie is dat deze componenten ook door allerlei projecten gebruikt worden, vooral het Drupal CMS gebruikt heel veel componenten van Symfony.

Bridges zijn een uitbreiding van third-party libraries. Zo gebruikt Symfony Doctrine voor zijn database afhandelingen en Twig voor zijn templates. De Bridges zijn een soort components die deze 3th-party libraries uitbreiden. Ze zijn 'de brug' tussen de 3th-party library en het framework.

Als laatste hebben we Bundles. Bundles zijn een mix van components en 3th-party libraries. De SymfonyFrameworkBundle combineert bijv. alle components tot 1 groot mooi framework. De TwigBundle zorgt weer voor integratie van de TwigBridge in het Symfony Framework en de DoctrineBundle voor integratie van Doctrine.

De gebruiker van het Symfony framework maakt ook bundles, een andere mogelijkheid is er niet. Deze bundles mengen ook allerlei ingrediënten van het framework bij elkaar tot iets dat een website wordt. Dat is denk ik de beste beschrijving van bundles, een mengels van stukjes framework tot 1 geheel (wat dat geheel ook moge zijn).
 
Ozzie PHP

Ozzie PHP

08/01/2013 22:36:24
Quote Anchor link
Thanks Wouter. Het is allemaal best complex. Uiteindelijk gaat het er natuurlijk om dat ik een structuur neerzet die voor mijzelf logisch is en makkelijk te onderhouden.

Omdat alles op mijn eigen server staat, hoef ik geen dingen "uit te wisselen". Stel ik maak in het beheergedeelte een "module" om nieuwsbrieven te versturen, dan is die module direct beschikbaar voor alle websites. Ik hoef 'm dus niet eerst in de moduledirectory van de betreffende website te plaatsen.

Maar goed, ik ga er nog eens even rustig voor zitten hoe ik dit het beste kan aanpakken.
 
Reshad F

Reshad F

09/01/2013 00:00:46
Quote Anchor link
je router is noodzakelijk voor de werking van je website. een module is niet noodzakelijk. je kan het vergelijken met het volgende

een auto heeft 4 wielen ( lees router ) nodig om te rijden. ( ja ik weet het je hebt soms ook zulke auto's )

Afbeelding

en je kan er als leuke extraatje een toeter ( lees module ) in je auto bouwen. de koper van deze auto kan deze inbouwen ( lees aanzetten ) maar kan ook beslissen om het gewoon in de kofferbak te laten liggen en niet te gebruiken.

Voor een juiste structuur hmm je hebt er natuurlijk vele.. mijn tip is om gewoon andere frameworks te bekijken en zien hoe zei het gestructureerd hebben in jou geval zou ik kijken naar ZEND, CI etc ( en andere MVC frameworks )
Gewijzigd op 09/01/2013 00:01:22 door Reshad F
 
Ozzie PHP

Ozzie PHP

09/01/2013 00:03:56
Quote Anchor link
Reshad... mooie vergelijking... en dankzij het grappige plaatje zal ik 'm ook makkelijk kunnen onthouden. Thanks!!!
 
Tim S

Tim S

09/01/2013 00:12:27
Quote Anchor link
Hier ben ik het met reshad f eens,

Ik heb wel in elke module een plug-in loader deze laad alle plug ins die in de map plugins/main staan. Als ik dan een sidebar heb met het laatste news maak ik hier een pluin voor deze wordt in elke module geladen. Maar je kan ook een plug in maken om bijvoorbeeld het menu op te halen. De module werkt dan ook zonder plugin, de plug in is dus een toeoeging van de module. Natuurlijk kan je een module ook aanpassen en deze plugins niet laden of andere plug ins laden.
 
Ozzie PHP

Ozzie PHP

09/01/2013 00:31:47
Quote Anchor link
Lekker, ben ik er net over uit wat een module is, begin jij ineens over plugins! Wat zijn plugins dan?

Even terugkomend om de modules. Ik wil dan wel een MVC opzet handhaven, maar waar laat ik dan de eventueel bijbehorende classes? In een library map? Stel we hebben een gastenboek module, zou dit dan bijvoorbeeld een goede opzet zijn?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
.../modules/guestbook/library/guestbook.php
                             /reaction.php
                     /controller.php
                     /model.php
                     /view.phtml


En wat doe je als je meerdere views hebt? Een aparte directory voor de views maken, of in de hoofddirectory zetten?

Zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
.../modules/guestbook/library/guestbook.php
                             /reaction.php
                     /views/guestbook.phtml
                           /reaction.php
                     /controller.php
                     /model.php


of zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
.../modules/guestbook/library/guestbook.php
                             /reaction.php
                     /controller.php
                     /guestbook.phtml
                     /model.php
                     /reaction.php
 
Tim S

Tim S

09/01/2013 00:44:58
Quote Anchor link
Ik zelf heb de root met daarin een map www met hierin mappen als javascript css modules en templates in jou geval views. Alle modules templates js en css staan bij elkaar.
In de root heb ik ook een map www_admin en app. In de map app staan dingen die ik nodig heb voor admin en www.
 
Nicky Monsma

Nicky Monsma

09/01/2013 22:20:28
Quote Anchor link
ik ben meer iemand die het gewoon nog ouder wets doe ik werk alleen met controllers en views ( templates )
models heb je niet echt nodig als je maar 1 database class gebruikt
 
Ozzie PHP

Ozzie PHP

09/01/2013 22:36:51
Quote Anchor link
"models heb je niet echt nodig als je maar 1 database class gebruikt"

Euh... ik denk dat velen het daar niet mee eens zullen zijn :)

Maar wat ik wel merk is dat er vele wegen naar Rome zijn, en dat je daar uiteindelijk zelf je eigen weg in zal moeten vinden. De weg die je zelf het prettigst vindt.
 

Pagina: « vorige 1 2 3 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.