Even een ideetje dat ik had hoor en ik kan me niet voorstellen dat het nog niet bestaat. Ben momenteel lekker bezig met het Zend Framework en het OOP vind ik zeer prettig werken in PHP.
Nu zat ik gewoon wat aan te pielen en ik heb altijd een hekel aan UI's maken. Heel vaak hetzelfde werk opnieuw doen (in mijn geval), en dus handmatig HTML en CSS rammen tot het eruit ziet als een goede web applicatie (zover als dat lukt). jQuery UI helpt wel mee uiteraard.
Alleen in het geval van web-applicaties moet het toch mogelijk zijn om zoiets ook OOP in PHP op te lossen? Ik snap dat een normale website, zoals een blog oid, dat niet nodig heeft, want die heeft z'n eigen mooie design, maar standaard web applicaties die tree's, datagrids, panels, buttons e.d. moeten hebben net als WinForms of Swing kunnen toch eenduidig gemaakt worden door middel van een framework in PHP?
Wat ik bedoel is een OOP Framework dat het meeste kwa HTML en JS werk uit handen neemt en de looks simpel te stylen zijn met CSS.
Even een pseudo-voorbeeldje, in de trant van ZF:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| //Maak nieuwe layout (BorderLayout, om Swing te imiteren)
$layout = new UI_Layout_BorderLayout();
//maak panels
$menuPanel = new UI_Panel(array('height' => '80px'));
$leftPanel = new UI_Panel(array('width' => '30%', 'isCollapsible' => true));
$contentPanel = new UI_Panel();
$footerPanel = new UI_Panel(array('height' => '80px'));
//panels toevoegen aan layout
$layout->add(array($menuPanel, $leftPanel, $contentPanel, $footerPanel));
//panel is inklapbaar (of kan zoals array-definitie)
$leftPanel->isCollapsible(true);
//maak menu
$menuPanel->add(new UI_Button('Orders', '/orders/overview'));
->add(new UI_Button('Users', '/users/overview'));
//of een kleinere button met een specifieke url:
emailButton = new UI_Button(array('caption' => 'Email Helpdesk', 'url' => 'mailto:helpdesk@company.com'));
emailButton->setFontSize(Font_Sizes::SMALL)->setHeight('32px');
$menuPanel->add($emailButton);
//vul andere content.....
$contentView = new Zend_View( ........... );
$contentPanel->add($contentView);
etc. etc. etc.
//renderen (in Zend_View, of ergens anders natuurlijk)
$layout->setSkin('/skins/vistalook'); // hier staan de CSS, de JS en plaatjes e.d.
$layout->render(); |
En deze genereert zeer generieke html met div's en lists en dl's en dt's etc....welke dan te skinnen is met een CSS en JS bestanden die de looks en het gedrag bepalen.
Nu kan ik zelf al een heel end komen, maar dit
MOET toch gewoon al bestaan of niet soms, want als ik er op kom dan bestaat het hoogstwaarschijnlijk al? Ik kon het niet zo direct vinden eigenlijk. Ik kom bij KoolPHPSuite en MochaUI, maar die zijn niet wat ik bedoel en respectievelijk een verzameling tooltjes en een volledige Javascript oplossing. Kan natuurlijk ook zijn dat er alleen betaalde oplossingen zijn.
In mijn eentje ga ik dit niet goed kunnen maken, want zoveel kan ik niet, maar ik vond het een leuke brainfart en het leek mij prettig werken in het geval van web-applications in PHP.
Zijn hier erg grote limitaties in HTML waardoor dit niet zou kunnen werken? Met jQuery is tegenwoordig namelijk zoveel mogelijk.
Engineering is like Tetris. Succes disappears and errors accumulate.