Uniek MVC ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wouter Van Marrum

Wouter Van Marrum

24/04/2014 16:31:58
Quote Anchor link
Hallo iedereen,

Deze vraag is al zo vaak gesteld, maar toch doe ik het opnieuw.
Ik wil een CMS/MVC maken maar zoals de meeste hier voor zullen stellen is (ontdek het wiel niet opnieuw).
Daar ben ik het helemaal mee eens daarom wil ik advies wat het meest verstandige is om een CMS/MVC te ontwikkelen MET behulp van allemaal losse componenten.

Hierbij denk ik dan aan het deze voorbeeld opzet :
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
{root folder}
-application
  - controllers
  - models
  - views
-cache (aangemaakt door twig)
-min (minify folder)
-public
  - css
  - js
  - images
  - ( wysiwyg folder)
-system
  - config
  - constants
  - core
  - lib ( externe mapjes met classes, bijv. CURL, redbean, TWIG )
index.php
.htaccess


Nu is mijn idee om in de core folder een bootstap.php aan te maken die alles inlaad dmv een autoloader.
Maar om nu zelf alles opnieuw te schrijven wil ik componenten van andere frameworks gebruiken.

Illuminate Database van Laravel zodat ik gebruik kan maken van schema.
Een routing class van symfony.

Aangezien alles wordt aangeroepen met namespaces wil ik gebruik maken van de psr-0 autoloader class.
En dan dmv class_alias alle classes te kunnen aanroepen op een normale manier zonder alle namespaces ervoor te zetten.

Wat vinden jullie hier van ?
Advies en tips zijn altijd welkom.
 
PHP hulp

PHP hulp

28/03/2024 10:10:54
 
Wouter J

Wouter J

24/04/2014 16:43:05
Quote Anchor link
> En dan dmv class_alias alle classes te kunnen aanroepen op een normale manier zonder alle namespaces ervoor te zetten.

Dan haal je toch het hele nut van namespaces weg oO

> Wat vinden jullie hier van ?

Ik zou je aanraden om gewoon met een al bestaat framework te gaan werken. Niet omdat je "het wiel niet opnieuw mag uitvinden", maar omdat je op die manier veel sneller de goede weg leert. Als je voor jezelf gaat beginnen dan kun je alles maken op een manier die jij goed vindt. Een framework "dwingt" je al een klein beetje richting het goede pad en ook zijn er vaak heel veel artikelen over geschreven waardoor je automatisch al de "best practises" leert.

Verder heb ik nog wat naming problemen. Zo zou ik "system" "lib"/"src"/"library" hebben genoemd, een systeem map vind ik meer iets voor een computer en wat er in zit is eigenlijk niks meer dan een library. Ook zou ik je 3th party libraries, ook wel vendors genaamd, in "vendor" of "libs" plaatsen en niet in "lib". Als laatste zou ik deze vendor niet opnemen in je library folder, maar gewoon in de root.

Ook zou ik de Router van Symfony cachen en niet alleen Twig templates.

Ook zou ik je willen aanraden om eens naar Silex te kijken. Dat is praktisch de Symfony2 Router en HttpFoundation bij elkaar in een mooie kleine API. De rest mag je er lekker zelf om heen bouwen. Dan heb je al een goede basis voor je CMS.
 
Wouter Van Marrum

Wouter Van Marrum

24/04/2014 17:10:08
Quote Anchor link
Bedankt voor je reactie wouter,

De reden dat ik die namespaces zelf weg zou halen is omdat je anders lange regels krijgt.
Maar met class_alias blijf je toch alsnog de namespace gebruiken alleen geef je ze een alias.
Zelfde doe je bij onderstaand voorbeeld toch ook ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
use com\rsumlang\common as Common;
?>


Het klopt dat je sneller de goede weg leert,
Maar juist omdat dit eerder een maak en gooi maar weg CMS moet zijn wil ik het de moeilijke weg doen.

En als ik een framework zou gebruiken zou ik gaan voor laravel.
Het framework spreekt me gewoon beter aan dan de andere frameworks.

Maar om jouw advies te gebruiken, zal ik eens kijken naar Silex ( omdat jij Symfony2 fijner vind ).
 
Wouter J

Wouter J

24/04/2014 17:15:38
Quote Anchor link
> Maar om jouw advies te gebruiken, zal ik eens kijken naar Silex ( omdat jij Symfony2 fijner vind ).

Laat je niet te snel overrulen door mij hè :) Gewoon je eigen weg doen en misschien 5% van wat ik zeg meenemen, dan ben ik al blij :P

> Maar met class_alias blijf je toch alsnog de namespace gebruiken alleen geef je ze een alias.
> Zelfde doe je bij onderstaand voorbeeld toch ook ?

Het verschil is dat je met "use" statements het per bestand doet en je het met class_alias in je hele project doet. Dat betekend dat ik niet de ene keer klasse Foo uit namespace Marrum\Cms kan halen en de andere keer de klasse Foo uit namespace WouterJ\Cms.
 
Wouter Van Marrum

Wouter Van Marrum

24/04/2014 17:35:44
Quote Anchor link
Haha gebeurt ook niet maar stel het wel op prijs hoor.
Ik ga liever 10x op me bek en dat het werkt dan altijd braaf stil zitten :P

Oke dat wist ik niet,
Had een keer een tut op youtube gezien en die deed dat met namespaces ( vond ik wel netter uit eindelijk ).
Maar als je daardoor conflicten kunt krijgen is het niet best.
 



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.