[ZF] Scheiden van backend en frontend

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees Schepers

kees Schepers

11/07/2011 17:48:41
Quote Anchor link
Voor een applicatie die ik wil ontwikkelen met Zend Framework is het de bedoeling dat deze een backend en frontend heeft. De frontend is niet erg spannend en is voor iedereen vrij toegankelijk zonder rechten te controleren.

De backend is uitsluitend toegankelijk voor een kleine set aan gebruikers die in een MySQL tabel staan.

Om deze twee 'lagen' te scheiden lees ik over diverse mogelijkheden op internet. O.a. het gebruiken van modules dus modules/admin/controllers en modules/default/controllers etc.

Nu heb ik hier opzich geen problemen mee behalve dat de admin niet echt een module is maar een heel deel (zelfs groter als de frontend) maar daar heb ik dan nog niet zo'n probleem mee.

Kan je op deze manier nog wel op dezelfde manier gebruik blijven maken van je models?

En hoe lossen jullie dit op met urls + het rerouten daarvan?
 
PHP hulp

PHP hulp

23/11/2024 18:56:18
 
Niels K

Niels K

11/07/2011 18:14:15
Quote Anchor link
Wil je van alles twee? Of echter alleen controllers, en models? Ik bedoel wanneer je één bootstrapper gebruikt moeten je models gewoon blijven werken. Je include path moet gewoon goed staan. (Dus twee bootstrappers moet ook werken) Bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$tableUser
= new Table_User();
$tableUser->get();
// Of
$tableUser->select()->where() // etc
?>


Zend framework gaat dan op basis van je include paths proberen het bestand te includen en de klasse te instantieren. De _ wordt omgezet naar een / en je klasse moet dan ook Table_User heten.

Je krijgt dat de volgende mappen structuur:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
- Models
    - Table
        - user.php


Je user.php ziet er dan zo uit.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
class Table_User extends Zend_Db_Table_Abstract {}
?>


En over routes.. Sommige routes blijven voor zowel de frontent als de backend gelijk. Andere zul je dus twee keer aan moeten maken denk ik.
Gewijzigd op 11/07/2011 19:17:17 door Niels K
 
Pim -

Pim -

11/07/2011 19:25:42
Quote Anchor link
Het module-systeem van ZF is toch juist bedoeld om scheidingen als dit mogelijk te maken? Gewoon twee modules gebruiken dus.
 
Niels K

Niels K

11/07/2011 19:28:27
Quote Anchor link
Dit geeft ook voldoende informatie lijkt mij: klik
 
Kees Schepers

kees Schepers

11/07/2011 20:25:36
Quote Anchor link
Niels Kieviet op 11/07/2011 18:14:15:
Wil je van alles twee? Of echter alleen controllers, en models? Ik bedoel wanneer je één bootstrapper gebruikt moeten je models gewoon blijven werken. Je include path moet gewoon goed staan. (Dus twee bootstrappers moet ook werken) Bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$tableUser
= new Table_User();
$tableUser->get();
// Of
$tableUser->select()->where() // etc
?>


De bedoeling is -juist- dat alleen views/controllers opgedeeld worden in deze twee secties en niet de models want die zijn voor beide zijden gelijk.

Wat betreft het modulaire systeem en ook van jouw link, geeft mij het gevoel dat je elk groot onderdeel moet opsplitsen in een module. Echter vind ik dan de admin daar nog een schep bovenop dus als het op die manier beredeneerd word zou de admin ook op die manier opgesplitst moeten worden.

In deze applicatie is de admin vele malen groter als de voorkant.

Maargoed veel tutorials wijzen er ook op dat je het modulaire systeem hiervoor moet gebruiken dus dat ga ik denk ook maar doen..
Gewijzigd op 11/07/2011 20:26:49 door kees Schepers
 
Niels K

Niels K

11/07/2011 20:30:39
Quote Anchor link
Tja, naar mijn weten kan je gewoon één model plaats maken. Ik zou zeggen probeer eens wat uit :-)
 
Kees Schepers

kees Schepers

11/07/2011 20:33:20
Quote Anchor link
Ja ga ik zeker doen, het ging mij meer erom hoe andere ZF ontwikkelaars dit punt oppakte, dus volgens mij met het maken van modules :)
 
Niels K

Niels K

11/07/2011 20:41:25
Quote Anchor link
Ja dat klopt. Ik zou het persoonlijk ook doen op de manier zoals het in de Zend Framework tutorial / documentatie wordt uitgelegd. Maar wanneer ik een backend gebruik is dat meestal mijn Content Management System. (Als ik die vergelijking mag maken :-)) En aangezien die in Symphony 2 is gebouwd werk ik dus niet met de Zend Framework module methode. Frontend bouw ik wel in Zend Framework. Dus misschien dat ik mijn CMS eens naar Zend Framework verhuis of mijn FO naar Symphony maar goed dat is een andere discussie.

Het is een persoonlijk keuze. Jij moet er tenslotte mee werken.

Veel succes!
Gewijzigd op 11/07/2011 20:42:30 door Niels K
 



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.