Autor Zpráva
Míra.Plánička
Profil *
Dobrý den,
měl bych dotaz. Již jsem trošku pokročil v PHP, a tak se snažím následovat MVC model v objektech.
Takto vypadá strom mých adresářů-
/ten-web/
/model/ = všechny třídy
/view/ = šablony
/controller/ = 1 soubor - bootstrap.php (ten zjistí z $_get adresu a podle toho načte třídu a šablonu.)
index.php = ten pouze načte bootstrap.php

Je toto správná cesta? Popř. jak to dělat lépe?

Moc děkuji za jakýkoliv názor a radu.
bukaj
Profil
Míra.Plánička
Pro inspirace se lze podívat na stránky různých MVC frameworků, jak to je řešené tam (seznam na wiki).

Moc se mi nezdá, aby ve složce nazvané jako model bylo všechno a ve složce controller akorát bootstrap, ale proti gustu…
Míra.Plánička
Profil *
bukaj
A mohou se zeptat, jak to řešíte vy?
bukaj
Profil
Míra.Plánička
A mohou se zeptat, jak to řešíte vy?
Na kontroléry jako takové jsem zanevřel, protože jsem zjistil, že do nich nastrkám moc věcí :o) Proto jsem se omezil na moduly a akce. Každá třída reprezentuje jednu akci, ne controller, a třídy jsou nastrkané v modulech. Většinou každé akci odpovídá jedna šablona a jednomu modulu jeden layout.
/
    actions
        modul1/             – akce pro modul1
            akce.php
            dalsi_akce.php

        modul2/             – akce pro modul2
            akce.php

    lib/                    – „knihovny“ důležité k běhu aplikace
        App.php
        Ld.php
        Router.php
        …

    models/                 – modely
        tabulka.php
        jina_tabulka.php

    views/
        layouts/            – layouty
            modul1.phtml    – nejčastěji jeden layout pro modul

        modul1/             – šablony pro modul1
            akce.phtml      – nejčastěji vždy jedna šablona pro jednu akci
            dalsi_akce.phtml

        modul2/             – šablony pro modul2
            akce.phtml

    .htaccess               – přesměrovává všechno krom dotazů na obrázky a styly na
                            – index.php
    config.php              – cesty k akcím, modelům, layoutům a šablonám
    index.php               – veškerá inicializace aplikace
    libs.php                – cesty ke knihovnám

Ale pomalu začínám uvažovat, že vždycky budu akorát používat jednu podsložku pro modul, do které budu strkat všechno týkající se toho modulu.

PS. Prosím nevykat :o)
H13
Profil
Podívej se na Joomlu, tam je hezkej příklad MVC modelu

struktura:

model/stranka.php // práce s databází
view/stranka/view.html.php // zde se zpracovávají data z modelu pro zobrazení
view/stranka/tmpl/default.php // a zde už se jen zobrazují v šabloně
controller// práce s requesty

s tím že extistuje hlavní controller:
controller.php ... který je zde v případě hlavního zobrazení
a pak jeden hlavní soubor, kde se definují třídy:
hlavni.php
suky
Profil
Míra.Plánička
Ja bych zase doporucil Zend Framework a to nasledovne:

(link)
P.4 presne vysvetluje odpoved na tvuj dotaz.
P.5 popisuje MVC do podrobna.
P.6 je o neco obsahlejsi nez P.4 co se tyka MVC.
V P.7 je strucne popsan princip MVC.
P.8 ti poslouzi pro detailni doatzy okolo MVC v ZF.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0