Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130

    sulla struttura di un progretto e librerie esterne

    Ciao a tutti

    Una domanda sulla struttura di un progretto in cui si comincino ad adottare dell librerie esterne:

    suppopniamo di avere gia' un'applicazione che adotta una qualche implementazione di MVC e che a un certo punto dobbiate cominciare a scrivere delle classi che NON fanno parte dell'architettura MVC in senso stretto, ma che sono usate dalle action per eseguire dei task tipo spedire email, elaborare documenti xml ecc. ecc..

    Supponiamo anche che la struttura della vostra applicazione sia la seguente:

    myApp
    - [controllers]
    - [models]
    - [views]
    - [js]
    - [css]
    - index.php

    (le cartella sono gli item con il nome tra parentesi quadre)

    Dove mettereste queste nuove classi? Suppongo in una cartella chiamata [lib]?

    E come nominereste le classi stesse? Intendo dire come mettete in pratica una qualche nozione di namespacing? Per esempio usereste il path della classe all'interno del nome della classe?

    codice:
    myApp/lib/xml/logToXml.php
    contenente appunto la classe:

    codice:
    class lib_xml_logToXml {
       ;
    }
    Capisco ci siano 1000 modi di gestire la struttura di una applicazione ma volevo capitre quale e' secondo voi la piu' sensata o la piu' pratica

    grazzzzie

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    io in questi casi uso una cartella /common, posta allo stesso livello delle altre cartelle che hai.
    Dentro /common ci vanno tutte le classi di libreria, di supporto diciamo, che non accedono direttamente ai dati del DB (quello lo fa soltanto il model).
    Se per esempio ho una classe statica di configurazione chiamo il file common/config.class.php e dentro definisco la classe Config. Altro esempio, se ho una libreria di funzioni (non una classe questa volta) che ha a che fare con date e orari la chiamo common/date_time.func.php.
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    Utente di HTML.it L'avatar di nourdine
    Registrato dal
    Nov 2005
    Messaggi
    1,130
    grazie marco_c. Senti ma i namespace ci sono da php5.3 no? mai usati? funzionano?

  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    sì mi sembra di aver sentito 5.3.
    Mai usati, sono fermo a 5.2.6.
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  5. #5
    Hi Raga,
    Sarei interessato anch'io all'argomento.
    Non vi nascondo che stò facendo fatica ad organizzare tutti i vari files utilizzando una struttura tipo MVC.
    Mi è stato espressamente richiesto lo sviluppo di una applicazione ma suddividendo il tutto, io non svillupperò con OOP quindi non si tratterà di paradigma MVC, in ogni modo vorrei organizzare tutti i files con la stessa logica, + o -

    Va bene per la classi nella cartella "common" e anche tutto quello che riguarda l'interazione con il db nella cartella "models" ma la cartella "controllers" a questo punto a cosa serve ?

    Poi non riesco ancora a capire come organizzare le img, css, js, anche questi potrei inserirli nella cartella dei file comuni "common" ?

    Un'altra cosa, la mia index.php dell'applicazione condivide con il resto dell'ambiente il layout in css con delle img di sfondo nei vari <div>, ovviamente se inserisco pagine su un'altro livello perdo il path.

    Qualcuno sarebbe cosi gentile da indicare una struttura directory sulla logica MVC, comprensiva di tutto: js, css, img, classi, file.php, etc. ?



    10KS


    .

  6. #6
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    A parte che suddividere i file come si fa di solito nel MVC e poi NON usare la OOP la vedo dura...

    cmq sia. Il controller ha senso se usi dei template grafici (cioè la V e la C di MVC...). Il controller tira su il template, comunica con il MODEL per recuperare i dati, eventualmente elaborarli e metterli dentro il template da stampare a video.
    Se invece non usi template grafici fai collassare la V con la C e quindi i tuoi controller saranno contemporaneamente controller e viewer.

    Per quanto riguarda le immagini io le tengon in cartelle separate /img, /js, /css.
    La struttura di un'applicazione potrebbe quindi essere questa

    - controller
    - model
    - view
    - altre_librerie
    - css
    - js
    - img

    Per i path io di solito inizializzo sempre in un file setup o qualcosa del genere i path che mi servono, quindi per esempio indico che la cartella immagini è uguale a "../img"

    Poi se devo fare un'altra applicazione, il suo file setup specificherà che la cartella immagini è uguale invece a "../../../img" e tutto sta in piedi

    Per esempio la struttura di un sito web con un'applicazione per la gestione dei contenuti (CMS) e il frontend del sito stesso potrebbe essere fatta così

    CMS (BACKEND)
    - file di setup
    - controller
    - view
    - css
    - js
    - img
    FRONTEND
    - file di setup
    - controller
    - view
    - css
    - js
    - img
    - ALTRE_LIBRERIE
    - MODEL

    Ovviamente le librerie e il model restano a livello base perchè sono accedute in egual modo sia dal backend che dal frontend
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  7. #7
    marco_c,
    Sei stato chiarissimo, grazie 1000 !
    vedo cosa riesco a fare e nel caso mi rifaccio sotto !!

    10ks



    .

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.