Archief - Model View Control (MVC)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Devil9L

Legacy Member
Hey,

ik ben op zoek naar enkele best - practices voor het maken van custom-made websites, voor verschillende interne-bedrijven worden hier interne-websites opgebouwd, met elk hun databases/content etc.
producten hebben bepaalde specs, en of artikels.

nu zijn we op zoek of het rendabel is om hiervoor een mvc op te zetten?

iemand ervaringen met mvc? zo ja welke? wat waren de opdrachten.
welke servers (iis-apache)/scripting language?

thx.

Shaddix

Legacy Member
Je kan verschillende kanten uitgaan. Het beste zal je uitkomen met een framework volgens mij.

PHP -> Zend, CodeIgniter,... (bv op een Apache PHP server)
Java -> Spring MVC,... (bv op een Apache Tomcat server)
.NET -> ASP.NET MVC (bv op een iis server?)

Op die manier word je haast gedwongen om "proper" MVC te programmeren. Plus zo'n frameworks hebben nog tientallen andere voordelen.

Dieterg

Legacy Member
Voor PHP werk ik nu al een tijdje met CodeIgniter! Voor kleinere websites is dit framework echt wel aan te raden. Je moet niet via een command line ofzo installeren + het vraagt niet veel geheugen! Nu moet ik wel toegeven dat ik nog niet gewerkt heb met Zend. Dat staat wel op men to-do lijstje! In ieder geval als je wil werken met MVC is zoals shaddix een framework aan te raden!

wonko

Legacy Member
De vraag is een beetje tweeledig. MVC is geen oplossing voor een probleem, maar eerder een manier om tot een oplossing te komen.

Als je interne sites moet programmeren, raad ik je aan om aan de slag te gaan in een taal die je kent, met een technologie die je kent. Als je dan toch een deel business-processen gaat herbouwen, dan kies je inderdaad best voor het gebruik van "gekende" of "goede" processen. Gebruik een framework, ga voor afsplitsing van business-logic van applicatie-logica, ga voor een gedeelde lib voor je business-modellen, werk OO, test (ten minste je business logic op unit-niveau, en je applicaties op applicatie-niveau)...

De toepassing van het MVC-patroon is een logische keuze, en komt gratis bij een goed framework. Als je geen framework neemt, neem dan minstens een ORM. Als je geen taal weet te kiezen, kijk dan naar iets wat de OO principes goed ondersteunt, en mogelijkheid geeft tot testing (Ruby, Java, deels PHP). Als je OO wat roestig is, ga dan er eerst voor om dat goed onder de knie te krijgen.

Durf ook refactoren (met testen zal dit een stuk eenvoudiger worden) en gebruik een versie-controle-systeem (git, mogelijks subversion).

dJeez

Legacy Member
Laat ons de vraag omdraaien : wat doe je nu? Welke programmeertalen/scripting talen gebruik je momenteel?

Ik ben een enorme voorstander van Zend Framework als je voor PHP als scripting taal zou gaan. Sinds kort heb ik ook wat ervaring met het Play! framework in Java, en da's ook wel knap (en vooral handig). Alleen mis ik bij dat laatste wel een kant-en-klare oplossing voor i18n op modelniveau, iets dat in zowat elk gekend PHP framework (nu ja, de ORM layer) reeds zit ingebakken (weliswaar niet altijd even optimaal). Als ORM voor PHP zou ik zonder twijfel voor Propel gaan en Doctrine(2) links laten liggen.

PoMpElSiEn

Legacy Member
wat is je argumentatie voor propel vs doctrine?
puur uit intresse omdat ik mij hier verder in ging verdiepen in combinatie met zend maar in zend zit doctrine al ingebakken (nuja ZF2)

dJeez

Legacy Member
PoMpElSiEn zei:
puur uit intresse omdat ik mij hier verder in ging verdiepen in combinatie met zend maar in zend zit doctrine al ingebakken (nuja ZF2)
Heh? Kiezen ze in ZF2 ook al voor Doctrine2? Waar heb je dat gelezen? Ben je er zeker van dat je Symfony2 en ZF2 niet door mekaar aan 't halen bent? Want afgaande op de docs lijkt het er sterk op dat ze bij Zend_Db blijven (hun eigen ORM layer dus - cfr. Zend Db 2.0 Requirements - Zend Framework 2.0 - Zend Framework Wiki).

Maar check de syntax eerst eens, bekijk dan wat voor queries je in Doctrine krijgt bij vb. i18n en vergelijk die met Propel 1.6 (ik kan het u hier ook al zeggen : Doctrine2 zorgt daar voor N+1 queries - je moet de vertalingen apart ophalen!, Propel maakt er 1 query van en je doet de hele bewerking via fluent interfaces).

Doctrine2 (gebaseerd op de docs, niet getest - http://www.doctrine-project.org/blog/doctrine2-behavioral-extensions#translatable) :
PHP:
$em->clear(); // ensure the cache is clean
$article = $em->find('Entity\Article', 1 /*article id*/);
$article->setLocale('nl_BE');
$em->refresh($article);
$repository = $em->getRepository('Gedmo\Translatable\Entity\Translation');
$translations = $repository->findTranslations($article);

Propel equivalent van het bovenstaande (http://www.propelorm.org/behaviors/i18n):
PHP:
$article = ArticleQuery::create()
  ->joinWithI18n('nl_BE')
  ->findPk(1);
Bij Propel heb je dan direct de vertalingen mee en kan je ze via de normale getters op je model uitlezen...

Ik weet wel snel wat kiezen zo :p.

Overigens is integratie van Propel in een Zend Framework app echt een makkie (ZF1 dan wel, maar in ZF2 zal 't ook wel lukken zeker, ik heb het nog niet bekeken).

dendaak

Legacy Member
Is het eigenlijk moeilijk om wegwijs te geraken uit een framework?
Als je dan een framework kiest, met wat start je dan best? CodeIgniter, CakePHP, Zend, Yii,...

Ik heb reeds ervaring in de template engine Smarty maar verder nog niets.
Wel heb ik ervaring in MVC programmeren in AS3.0.

Vanaf wanneer is het aan te raden om een framework te gebruiken? Enkel bij grote applicaties/websites?

Shaddix

Legacy Member
Frameworks als CodeIgniter en Cake zijn erg makkelijk om mee te starten, ook al omdat er gewoon hele goede tutorials voor bestaan!

Zelf ga ik naar een framework vanaf er een database aan te pas komt.

dendaak

Legacy Member
Waarin verschillen frameworks van elkaar? Wanneer opteren voor Zend, waneer voor Cake?

Ik lees bijvoorbeeld:

CakePHP vs ZEND :
Overall, both these frameworks are good to use as per your requirements. CakePHP is suitable for developers new to MVC and those who require stricter conventions. ZF is a choice for those who need better control over the application design and built-in support for renowned Web services. Both the frameworks are developing fast and the choice is entirely yours.

Wat zijn zoals jullie voorkeuren om te zeggen ik werk liever met framework x dan y?

PoMpElSiEn

Legacy Member
dJeez zei:
Heh? Kiezen ze in ZF2 ook al voor Doctrine2? Waar heb je dat gelezen? Ben je er zeker van dat je Symfony2 en ZF2 niet door mekaar aan 't halen bent?

Haalde ze idd door elkaar mijn fout :)
en was nen boek aan het doornemen zend + doctrine tzal daarom wel zijn --'

hmm precies toch eens die propel bekijken bij nader inzien .. thnx :)

Cycloon

Legacy Member
dendaak zei:
Wat zijn zoals jullie voorkeuren om te zeggen ik werk liever met framework x dan y?

Er zijn zelden mensen die meer dan 1 framework goed kennen, daarom zal je weinig meningen vinden. Vanaf je ergens bent ingewerkt en je kan er productief met zijn dan kijken de meeste mensen niet meer naar iets nieuws.

Shaddix

Legacy Member
het is een beetje zoals windows vs linux vs mac
iedereen heeft zen eigen voorkeur

wonko

Legacy Member
Overweeg zeker ook Symfony, ook goede tutorials rond te vinden, en een mooi systeem.

Rusko

Legacy Member
Ik weet niet of je nog op zoek bent. Maar laravel is een opkomend PHP mvc framework en het ziet er alllesbehalve slecht uit.

Ook al veel documentatie

Moto

Legacy Member
Wat zijn zoals jullie voorkeuren om te zeggen ik werk liever met framework x dan y?
Altijd kijken naar het simpelste framework nooit naar het makkelijkste framework

En met simpelste bedoel ik, met een laag genoeg abstractie-niveau waar ge u comfortabel bij voelt om ook complexe problemen simpel/duidelijk mee op te lossen

makkelijke frameworks met een hoger abstractie-niveau zullen er op eerste zich beter uit zien maar dat is meestal enkel maar voor simpele problemen
voor complexe problemen gaan ze meestal een grotere extra complexiteit veroorzaken dan een simpel framework

Rusko

Legacy Member
Moto zei:
Altijd kijken naar het simpelste framework nooit naar het makkelijkste framework

En met simpelste bedoel ik, met een laag genoeg abstractie-niveau waar ge u comfortabel bij voelt om ook complexe problemen simpel/duidelijk mee op te lossen

makkelijke frameworks met een hoger abstractie-niveau zullen er op eerste zich beter uit zien maar dat is meestal enkel maar voor simpele problemen
voor complexe problemen gaan ze meestal een grotere extra complexiteit veroorzaken dan een simpel framework

En wat is volgens u dan het simpelste framework? :)

Fr3aK

Legacy Member
CakePHP/Symfony/CodeIgniter zijn zowat aan elkaar gewaagd qua gebruiksvriendelijkheid en gemakkelijkheid, zijn ook zeer uitbreidbaar maar als je grotere applicaties gaat bouwen kan je beter overstappen naar Zend Framework.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan