Comment construire un site web modulaire avec le framework Zend. J'ai des pages en db, chaque page est représentée en tant qu'url. Chaque page a un contenu 1toN. Chaque contenu a un contrôleur, une action et une position (+ autres colonnes désormais non importantes). Ainsi, une requête est une page et plusieurs contenus (plusieurs actions). Comment puis-je construire toutes les actions avant la sortie? Je voudrais avoir la conception de mise en page comme l'exemple ci-dessous, où le contenu est placé dans des conteneurs (les actions sont exécutées avant l'impression de la mise en page).Site web modulaire avec framework zend, pile d'actions
<div id="left">
<?= $this->layout()->left_container ?>
</div>
<div id="center">
<?= $this->layout()->center_container ?>
</div>
<div id="right">
<?= $this->layout()->right_container ?>
</div>
Jusqu'à présent, j'appelle des actions de mise en page de vue, mais je n'aime pas cette approche:
foreach ($contents as $item) {
echo $this->action($item['action'], $item['controller'], null, array('content' => $item));
}
Merci.
p.s.
Le code d'adepretis est similaire à mon, les vues de mes actions sont exécutées dans la mise en page, ce qui signifie que lorsqu'une erreur survient, elle est imprimée dans la mise en page où l'action est appelée. N'y a-t-il pas de lactosérum que les actions sont construites avant la mise en page? Une autre mauvaise chose est que dans chaque action que je dois exécuter ...-> setResponseSegment, je voudrais que cela soit automatisé.
p.s. # 2
J'ai trouvé la réponse, elle est listée ci-dessous comme réponse. S'il y a un lactosérum, je peux le faire plus facilement s'il vous plaît écrivez-le.
Votre code est similaire à mon, les vues de mes actions sont exécutées dans la mise en page, ce qui signifie que lorsqu'une erreur s'est produite, elle est imprimée dans la mise en page; n'y at-il pas de lactosérum que les actions sont construites avant la mise en page? Une autre mauvaise chose est que dans chaque action que je dois exécuter ...-> setResponseSegment, je voudrais ce automatisé –
Je ne comprends pas exactement ce que vous entendez par "il n'y a pas de lactosérum que les actions sont construites avant la mise en page" .. La sortie de mise en page est rendue après l'exécution de toutes les actions. Et pour l '"automation": si vos contrôleurs étendent MyController_Action, la méthode init() fait exactement cela pour toutes les actions. –
Par cela je veux dire, Si vous faites une erreur dans l'action, il sera imprimé dans la mise en page où il est positionné; donc je suppose que les actions sont appelées quand elles sont mises en page. Exemple: echo $ variableDoesntExists; dans l'une des actions, imprimera avis dans la conception ... –