Μετάβαση στο περιεχόμενο

Τοπική εγκατάσταση

Οδηγός για να τρέξει η εφαρμογή Carpet Emblem σε περιβάλλον ανάπτυξης.

Απαιτήσεις

  • PHP 8.x με επεκτάσεις: mysqli (ή PDO αν χρησιμοποιηθεί), json, mbstring, και ό,τι απαιτεί το composer.json.
  • Composer για εξαρτήσεις PHP.
  • MySQL/MariaDB με βάση δεδομένων για το project.
  • Διακομιστής web (π.χ. Apache/Nginx) με document root στον φάκελο public/, ή ενσωματωμένος server PHP για δοκιμές.

Βήματα

  1. Κλωνοποίηση / αντιγραφή του repository στον τοπικό δίσκο.

  2. Εξαρτήσεις:

    composer install
    

  3. Ρυθμίσεις περιβάλλοντος: αντιγραφή .env.example σε .env και συμπλήρωση:

  4. DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT
  5. APP_ENV (π.χ. development για Tracy bar και Twig χωρίς cache)
  6. BASE_DIR, APP_ROOT — συνήθως BASE_DIR="../" και APP_ROOT=${BASE_DIR}/app όπως στο παράδειγμα
  7. BASE_URL, API_URL, REDIRECT_AFTER_LOGIN, REDIRECT_AFTER_LOGOUT
  8. Παράμετροι session (SESSION_*) και κρυπτογράφηση (ENCRYPT_KEY)
  9. Αν χρησιμοποιείται αποστολή email: MAIL_* — αν εμφανίζεται σφάλμα TLS «Peer certificate CN did not match», ορίστε MAIL_HOST στο hostname που εμφανίζεται στο πιστοποιητικό ή, μόνο αν το επιτρέπει ο πάροχος, MAIL_SMTP_VERIFY_PEER=0 (βλ. .env.example).

  10. Βάση δεδομένων — migrations (Phinx):

    composer migrate
    
    Έλεγχος κατάστασης: composer migrate:status

  11. Προαιρετικά seeds (δεδομένα επίδειξης):

    composer seed
    

  12. Δικαιώματα φακέλων: ο φάκελος log/ (για Tracy σε development) πρέπει να είναι εγγράψιμος από τον web server.

  13. Πρόσβαση: ρύθμιση virtual host ώστε το public/index.php να είναι το σημείο εισόδου (π.χ. carpet-emblem.test όπως στο .env.example).

Δοκιμές

  • Τα tests τρέχουν με PHPUnit (βλ. phpunit.xml, tests/).
  • Παράδειγμα: ./vendor/bin/phpunit

Στατικό site τεκμηρίωσης (MkDocs)

Τα Markdown στον φάκελο docs/ μπορούν να γίνουν στατικό HTML (π.χ. για hosting ή offline ανάγνωση) με MkDocs και το θέμα Material.

Από τη ρίζα του repository:

pip install -r requirements-docs.txt
mkdocs serve    # προεπισκόπηση στο http://127.0.0.1:8000
mkdocs build    # HTML στο public/docs/ — στον browser: /docs/ (τα αρχεία μπορούν να commit-άρονται ώστε να είναι διαθέσιμα χωρίς rebuild)

Μετά το build, η τεκμηρίωση είναι διαθέσιμη ως στατικά αρχεία (π.χ. https://<το-host-σας>/docs/), χωρίς να περνά από το index.php — το public/.htaccess εξυπηρετεί υπάρχοντα αρχεία/φακέλους απευθείας.

Η ρύθμιση βρίσκεται στο mkdocs.yml (use_directory_urls: false ώστε να παράγονται αρχεία .html όπως changelog.html, όχι μόνο φάκελοι changelog/index.html). Το docs/changelog.md ενσωματώνει το changelog.md της ρίζας μέσω pymdownx.snippets (έτσι το κείμενο δεν διπλοτυπείται και το build δουλεύει χωρίς symlink). Στο changelog.md του repository, μετά από κάθε γραμμή ημερομηνίας χρειάζεται κενή γραμμή πριν από τη λίστα αλλαγών (- …), αλλιώς το HTML δεν βγάζει <ul>/<li>.

Σημειώσεις

  • Το public/index.php φορτώνει .env, ορίζει ζώνη ώρας Europe/Athens, ενεργοποιεί Tracy όταν APP_ENV=development, και αναλύει JSON body σε $_POST για API requests.
  • Για API με σώμα JSON, τα δεδομένα εμφανίζονται στον controller ως $_POST μετά το parse.