Τοπική εγκατάσταση¶
Οδηγός για να τρέξει η εφαρμογή Carpet Emblem σε περιβάλλον ανάπτυξης.
Απαιτήσεις¶
- PHP 8.x με επεκτάσεις:
mysqli(ή PDO αν χρησιμοποιηθεί),json,mbstring, και ό,τι απαιτεί τοcomposer.json. - Composer για εξαρτήσεις PHP.
- MySQL/MariaDB με βάση δεδομένων για το project.
- Διακομιστής web (π.χ. Apache/Nginx) με document root στον φάκελο
public/, ή ενσωματωμένος server PHP για δοκιμές.
Βήματα¶
-
Κλωνοποίηση / αντιγραφή του repository στον τοπικό δίσκο.
-
Εξαρτήσεις:
composer install -
Ρυθμίσεις περιβάλλοντος: αντιγραφή
.env.exampleσε.envκαι συμπλήρωση: DB_HOST,DB_USER,DB_PASS,DB_NAME,DB_PORTAPP_ENV(π.χ.developmentγια Tracy bar και Twig χωρίς cache)BASE_DIR,APP_ROOT— συνήθωςBASE_DIR="../"καιAPP_ROOT=${BASE_DIR}/appόπως στο παράδειγμαBASE_URL,API_URL,REDIRECT_AFTER_LOGIN,REDIRECT_AFTER_LOGOUT- Παράμετροι session (
SESSION_*) και κρυπτογράφηση (ENCRYPT_KEY) -
Αν χρησιμοποιείται αποστολή email:
MAIL_*— αν εμφανίζεται σφάλμα TLS «Peer certificate CN did not match», ορίστεMAIL_HOSTστο hostname που εμφανίζεται στο πιστοποιητικό ή, μόνο αν το επιτρέπει ο πάροχος,MAIL_SMTP_VERIFY_PEER=0(βλ..env.example). -
Βάση δεδομένων — migrations (Phinx):
Έλεγχος κατάστασης:composer migratecomposer migrate:status -
Προαιρετικά seeds (δεδομένα επίδειξης):
composer seed -
Δικαιώματα φακέλων: ο φάκελος
log/(για Tracy σε development) πρέπει να είναι εγγράψιμος από τον web server. -
Πρόσβαση: ρύθμιση 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.