Significato dei nomi delle directory

-1

Stavo cercando un dizionario dove sono descritti i significati e gli scopi di ciascun nome di directory usato negli alberi dei file del software.
Non riesco a trovare nulla tranne il Linux FHS, ma questo è limitato al sistema operativo GNU / Linux.

Quindi vorrei chiederti qualcosa per capire il significato delle seguenti cartelle:

/controllers
/models
/vendor
/src


Questo è quello che ho capito finora:

  • /controllers è dove dovrei mettere i file che hanno lo scopo di control altri file. Per esempio nei controller potrei avere un file PHP che carica un file per chiamare le query MySQL, quindi uno che analizza le query per strutturare un array, e quindi uno che chiama il gestore dei template.

  • /models Non ho idea di cosa si intende per ...

  • /vendor è dove si trovano le dipendenze esterne richieste dal software.

  • /src è dove si trovano i file di origine.


I miei dubbi sono:

  1. Qual è la cartella /models ?

  2. Se ad esempio includo nel mio progetto, Mustache.php, avrò Moustache in /src/Mustache .
    Ma aggiunge anche alcune dipendenze nella cartella /vendor .
    Il problema è che, nel mio progetto, anche Moustache è una cosa "vendor" (credo), quindi non dovrebbe spostarsi a /vendor ?

  3. Se sto scrivendo in PHP, HTML, JS e CSS. Ogni file che uso per la produzione sarà anche il file sorgente, quindi perché non dovrei mettere tutto nella cartella /src e tenere fuori forse solo il% min_punto%, .js e .css ?

posta Fez Vrasta 02.12.2013 - 11:22
fonte

2 risposte

5

Dove hai trovato esattamente queste cartelle? I dettagli di tale struttura dipendono spesso dal progetto, dal linguaggio di programmazione e dal framework web in uso. Questo assomiglia a una struttura MVC piuttosto tipica (modello, vista, controller) come spesso utilizzata nei progetti web. Anche se manca la parte vista (a meno che non sia / src). In ogni caso questo non ha nulla a che fare con il FSH di Linux che definisce solo il livello del SO e non i singoli progetti.

Dovresti iniziare a leggere un po 'del modello MVC . Normalmente il controllore deve semplicemente ricevere una richiesta in arrivo per un determinato URL e ottenere i dati dal modello necessario alla vista per eseguire il rendering della risposta. Quindi il controller dovrebbe fare meno lavoro possibile.

Il modello è il luogo in cui risiedono tutti i database e la business logic.

Nella maggior parte dei casi, il fornitore dovrebbe contenere plug-in esterni e librerie incluse nel progetto. Se scrivi dei plugin tu stesso, puoi metterli anche lì. Altri framework avranno una cartella dedicata / lib per tali cose (Forse questo è / src nel tuo caso?)

Non so esattamente a cosa dovrebbe essere / src. Ovviamente questo dovrebbe significare fonte, ma io vengo da uno sfondo di Ruby on Rails.

Per / lib: spesso hai bisogno di librerie aggiuntive che scrivi per alcune attività che non si adattano esattamente al modello mvc, ad esempio hai bisogno di alcune classi helper che facciano cose come convertire i dati in XML o generare dati statistici e grafici o qualche database driver per alcuni database specifici il tuo framework non supporta nativamente. Tutte queste cose andrebbero nella cartella / lib. Ma tu sei libero di aggiungere altro come Rails, ad esempio ha cartelle come / script, / helper, / mailer, / config e molti altri. E naturalmente sottocartelle, come la maggior parte delle volte si vuole mantenere .js, .html e .css separati, dal momento che questi diventano molti file in progetti più grandi (anche in questo caso Rails come esempio nella maggior parte dei casi mantiene i file html delle viste in sottocartelle denominate simili ai controller, poiché spesso esiste una relazione diretta tra i controller e le visualizzazioni che visualizzano, quindi il controller dei clienti avrà bisogno di tutti i file html utilizzati per visualizzare le informazioni sui clienti)

Come detto, tutto dipende dai tuoi strumenti. Soprattutto i framework web spesso definiscono strutture molto chiare e dipendono dal fatto che i file corretti siano nel posto giusto. Quindi se non usi il PHP puro ma un framework come CodeIgniter dovresti consultare la documentazione di frameworks.

    
risposta data 02.12.2013 - 11:32
fonte
2

Durante lo sviluppo di un progetto, penso che due principi principali possano essere applicati alla denominazione di cartelle / directory:

  • Scegli semanticamente corretto e nome descrittivo
  • Scegli un nome popolare / consolidato usato per una directory con un determinato scopo

Esistono molte convenzioni sui nomi stabilite. Dagli esempi che hai portato, ho incontrato src utilizzato nei progetti Java per nominare la directory principale contenente il codice sorgente. models e controllers sono comunemente usati in MVC (modello -view-controller).

Detto questo, per capire i nomi devi capire il contesto in cui sono usati _ linguaggio, framework, tipo di progetto, ecc.

    
risposta data 02.12.2013 - 11:34
fonte

Leggi altre domande sui tag