logo   Boghandel - Mappestruktur




Den aktuelle beskrivelse af OOP tager sit udgangspunkt i et site til E-handel (boghandel).


Mappestruktur


Under hensyntagen til de andre forhold, der vil gælde for sites til andre formål, kan strukturen for boghandelen med fordel anvendes som prototype.


Mappestrukturen og filnavne for boghandelen ser sådan ud:

        1. edit
        2. edited
        3. edited-failed
        1. add
        2. added
        3. added-failed
        4. edit
        5. edited
        6. edited-failed
        7. list
        8. remove
        1. edit
        2. edited
        3. edited-failed
        4. list
        5. remove
        1. edit
        2. edited
        3. edited-failed
        4. invoice
        5. list
        6. remove
        1. add
        2. added
        3. added-failed
        4. added-no-upload
        5. edit
        6. edited
        7. edited-failed
        8. edited-no-upload
        9. list
        10. remove
      1. business
      2. categories
      3. clients
      4. error
      5. index
      6. logout
      7. orders
      8. products
        1. _footer
        2. _header
      9. index
        1. Callback_function_notes
        2. DomainKeys_notes
        3. extending
        4. faq
        5. Note_for_SMTP_debugging
        6. pop3_article
        7. use_gmail
        1. Subfile 1
        1. contents
        2. index
        3. test_db_smtp_basic
        4. test_mail_advanced
        5. test_mail_basic
        6. test_pop_before_smtp_advanced
        7. test_pop_before_smtp_basic
        8. test_sendmail_advanced
        9. test_sendmail_basic
        10. test_smtp_advanced
        11. test_smpt_advanced_no_auth
        12. test_smtp_basic
        13. test_smpt_basic_no_auth
        14. test_smtp_gmail_advanced
        15. test_smtp_gmail_basic
        1. ...
        2. phpmailer.lang-dk
        3. ...
        1. contents
        2. phpmailerTest
        3. test
        4. test_callback
        5. testemail
      1. aboutus
      2. changelog
      3. class.pop3
      4. class.smtp
      5. license
      6. PHPMailer
      7. README
    1. Admin (DB)
    2. Application (DB)
    3. Basket (Akt)
    4. Business (DB)
    5. Catalogue (DB)
    6. Core (Akt)
    7. Country (DB)
    8. Dbase (DB)
    9. Email (Akt)
    10. Form (Akt)
    11. Helper (Sta)
    12. Login (Sta)
    13. Order (DB)
    14. Paging (Akt)
    15. Paypal <(Akt)
    16. Session (Sta)
    17. Upload (Akt)
    18. Url (Sta)
    19. User (DB)
    20. Validation (Akt)
    1. Core
    2. Invoice
    1. ecommerce.sql
    1. 1
    1. Div billeder
    1. autoload
    2. config
    1. basket.js
    2. query-1.4.2.min.js
      1. Div. billeder
    1. basket
    2. basket_left
    3. basket_qty
    4. basket_remove
    5. basket_small_refresh
    6. basket_view
    7. paypal
    1. activate
    2. basket
    3. cancel
    4. catalogue
    5. catalogue-item
    6. checkout
    7. error
    8. index
    9. invoice
    10. ipn
    11. login
    12. logout
    13. orders
    14. registered
    15. registered-failed
    16. return
    17. summary
    1. _footer
    2. _header
  1. index
  2. output
  3. readme




Klassetyper

Ved oprettelse af nye klasser bør anlægges en rimelig stram formålsbestemt strategi. Som udgangspunkt bør nye klasser etableres ud fra et af følgende tre formål:

En klasse bør som hovedregel indeholde funktionalitet til benyttelse i både site og admin.


  • DB-tabel klasser (DB)
    For hver tabel eller flere sammenhørende i databasen etableres en klasse til de funktioner, der anvendes til brug / vedligehold af deraf. Der bør tilstræbes (mnemoteknisk) navnesammenfald mellem klasse og tabel.
    I DB-tabeller kan man med fordel definere den / de involverede tabeller som parametre. Som navn anvendes et praktisk "kaldenavn" til angivelse i koden. Som værdi anvendes tabellens eget navn.
    private $_table = 'categories';
    private $_table_2 = 'products';
    $sql = "SELECT * FROM `{$this>_table}`
    En DB-klasse vil som oftest også indeholde funktioner uden CRUD.
    Eksempler på DB-tabel klasser:
    DbaseFælles funktioner knyttet til udveksling af data med databasen.
    OrderFunktioner knyttet til tabellerne Ordrestamdata, Ordrelinier og Ordrestatus
    UserFunktioner knyttet til tabellen Brugerstamdata


  • Afgrænset aktivitet klasser (Akt)
    For hver afgrænselig aktivetet på tværs af site og admin etableres en klasse til de funktioner, der er relevante for aktiviteten, f.eks: Form, validering, indkøbskurv. Der bør tilstræbes (mnemoteknisk) navnesammenfald mellem klasse og aktivitet.
    Eksempler på klasser til afgrænsede aktiviteter:
    FormFunktioner knyttet til <FORM ... .
    ValidationFunktioner knyttet til validering
    CoreFunktioner knyttet til Framework
    BasketFunktioner knyttet til Indkøbskurv


  • Static klasser (Sta)
    For hver type aktivitet, hvis funktioner anvendes generelt på tværs af site og admin etableres en klasse; f.eks til: Url og login. Funktionerne i klasserne bør altid være at typen Static.
    Eksempler på Static klasser:
    URLFunktioner knyttet til læsning af URL-parametre og andet relateret til sidernes URL-adresse.
    HelperFunktioner, der skal bruges enkeltvis overalt.
    LoginFunktioner knyttet til login til sitet
    SessionFunktioner knyttet til $_SESSION






















x
x