Struttura dei modelli in PHP / MVC

0

Ho alcune classi che sono composte con modelli generati da ORM.

Esempio 1: Ad esempio il Report.php (Modello) utilizza un modello Document.php generato con ORM. In base all'oggetto del documento viene creato un rapporto.

Vorrei conoscere alcuni suggerimenti sul nome per il percorso della cartella Report.php. Appartiene chiaramente alla cartella / Model ma in quale sottocartella?

Esempio 2: CustomTagFilter.php rimuoverà alcuni tag html da una stringa html.

Desidero trovare un chiaro nome di percorso per questo tipo di Modelli. Qualche suggerimento?

/Models/[SUGGESTION]
    
posta danidacar 01.04.2013 - 16:05
fonte

3 risposte

1

Non ci sono regole su come dovresti organizzare il tuo codice modello. Principalmente non perché tutto dipende dalla vostra applicazione. Nel migliore dei casi, possiamo darti qualche spunto di riflessione.

In una piccola applicazione (fino a poche decine di classi di modelli), potrei anche non occuparmi di organizzarli in cartelle separate.

Se un'organizzazione più strutturata delle classi del modello è ritenuta utile, vorrei prima raggruppare le classi in base alla funzionalità, quindi tutte le classi relative all'ORM insieme, le classi che trattano la funzionalità A insieme, ecc. Se è necessaria ancora più organizzazione , aggiungi un altro livello usando qualunque divisione sembra giusta in quel punto.
Per gli esempi pubblicati, la divisione verrebbe probabilmente in

  • Modelli /
    • ORM /
      • Document.php
    • Filtri /
      • CustomTagFilter.php
    • Report.php

L'unica cosa da evitare è usare le categorie catch-all. Se non riesci a pensare a un buon nome di categoria, non metterlo affatto in una sottocategoria (come ho fatto con Report.php).

    
risposta data 08.05.2013 - 14:22
fonte
1

Gli ORM funzionano con Entites , che sono fondamentalmente le istanze delle classi modello (nel tuo caso Document.php), quindi chiamare la tua cartella Entities sarebbe logico.

Per ottenere una definizione corretta di Entity , immergiti nella documentazione dell'ORM che stai utilizzando. ( Qui è un esempio dalla documentazione di Doctrine.)

    
risposta data 03.04.2013 - 13:15
fonte
0

Vorrei andare con Transformers se fossi di umore bizzarro:

/Models/Transformers/Reports.php
/Models/Transformers/CustomTagFilter.php

o Translators se mi sentivo più professionale:

/Models/Translators/Reports.php
/Models/Translators/CustomTagFilter.php
    
risposta data 10.05.2013 - 15:58
fonte

Leggi altre domande sui tag