Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Zend Framework] Meerdere controller directories per module

Pagina: 1
Acties:

  • robg1984
  • Registratie: December 2002
  • Laatst online: 21-11 08:23
Voor een CMS-systeem hebben wij een module 'products' met de controllers index, edit, delete. Echter, per klant moeten we ook klantspecifieke controllers kunnen hebben. Zo is de structuur nu:

application
-- clients
-- -- KLANT
-- -- -- modules
-- -- -- -- products
-- -- -- -- -- controllers
-- -- -- -- -- -- PricesController.php (deze moet ik kunnen bereiken)
-- modules
-- -- products
-- -- -- controllers
-- -- -- -- IndexController.php
-- -- -- -- EditController.php

In de bootstrap kan ik wel ervoor zorgen dat ik een hele klantspecifieke-module kan hebben.
Ook heb ik gelezen dat sinds versie 0.8.0 (ik gebruik 1.9) het niet meer mogelijk is om door middel van addControllerDirectory() meerdere controller-directories per module te hebben.

Hoe kan ik dit nou oplossen?

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 30-07 08:33
Kan je updaten naar ZF 2.0? Ik geloof dat hierin modules zitten die doen wat jij zou willen.. :-)

  • FoXgun
  • Registratie: September 2009
  • Laatst online: 11-11 23:11
Als ik je goed begrijp, wil je voor elke klant een eigen omgeving maken?

Ik denk dat het misschien handiger is om voor alle klanten één omgeving te maken en door middel van authorisaties en rollen, toegang te bepalen naar de controllers die een specifieke klant nodig heeft/mag gebruiken. Als je 10 klanten hebt, moet je 10 omgevingen beheren, lijkt me niet makkelijk.

Even een stap naar de richting die ik noem, Resources en ZEND_ACL.

[ Voor 8% gewijzigd door FoXgun op 26-02-2013 14:27 ]


  • robg1984
  • Registratie: December 2002
  • Laatst online: 21-11 08:23
Elke klant maakt gebruik van 1 systeem maar de skin e.d. wordt uit zijn eigen client-map gehaald, zo ook de modules maar ook is het dus de bedoeling dat je client-specieke controllers in algemene-modules hebt.

Als ik het met rechten zou doen (zend_acl wordt overigens al gebruikt in het systeem) en elke klant heeft 1 specieke controller, dan nog staan hun controllers in de module-map zelf, en dat wil ik niet, buiten de client-map mag er niks staan wat voor een klant is, alleen algemene dingen.

  • Knetterhard
  • Registratie: November 2009
  • Laatst online: 19-11 08:33

Knetterhard

Dedicated

Neem eens een kijke in de repo van zf-boilerplate.com. Ik zelf gebruik verschillende modules met dezelfde templates (behalve die voor een admin).

Bijv :
modules
- admin
- - controllers
- - layouts
- - views
- site
- - controllers
- - layouts
- - views
- my (ingelogte gedeelte)
- - views
- - controllers

  • robg1984
  • Registratie: December 2002
  • Laatst online: 21-11 08:23
Dat is het probleem ook niet, dat heb ik ook, maar als ik een 'Products'-module heb met een aantal standaard controllers die voor iedereen beschikbaar zijn, moet ik ook de mogelijkheid hebben om een controller te hebben die alleen voor 1 klant beschikbaar is in hun CMS, die wil ik niet kwijt in de standaard 'Products'-module.

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 15:58
Je kan dit wel doen, echter zal je een aantal dingen in de dispatcher meoten overriden en herschrijven. Been there, done that; je gaat het niet willen ;)

Als het enkel om theming gaat, zou ik eerder naar de viewrenderer kijken, kijken of je daar iets mee kan doen. Je zou in principe al je controllers gelijk kunnen houden (dan houd je het nog enigzins onderhoudbaar), en per action meerdere views implementeren (1 per klant), waarbij je de viewrenderer de juiste laat kiezen.

Wat ZF2 betreft is dat ook inderdaad iets om een keer naar te gaan kijken (en iets van een migratieplan op te stellen), zeker als de ontwikkeling van je product nog jaren duurt. Je wil niet over 10 jaar het probleem hebben dat je geen enkele developer meer kan vinden die je product snapt, je van een php-versie afhankelijk bent die dan al lang achterhaald is, en security issues niet meer gefixed worden (nu nog wel, ergens tussen nu en 10 jaar niet meer).

Oh, en als je dan over 10 jaar wel iemand kan vinden die er nog iets van af weet, dan zal die persoon geen laag uurtarief hebben. Maar dat vind ik dan juist weer geen enkel probleem :D

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


  • robg1984
  • Registratie: December 2002
  • Laatst online: 21-11 08:23
Het gaat niet om de view, het gaat om een controller.
Er is maar 1 klant van de 10 die een bepaalde controller (extra) nodig heeft.

Naar Zend versie 2.0 zijn we naar aan het kijken, maar dat is een proces dat langer duurt en wat ernaast loopt.
Pagina: 1