FotisM Posted February 16, 2019 Share Posted February 16, 2019 Presta 1.7.5 vs PHP V 7.2 Γεια χαρά, πάει πολύς καιρός που έγραψα κάτι εδώ. Υπάρχει ένα θέμα με κάποιες εντολές php του κώδικα του Presta (1.7.5) που είναι deprecated στην version 7.2 της PHP. Για παράδειγμα, η create_function που υπάρχει τουλάχιστον στο module gamification (αν όχι κι αλλού). Μια που τα overrides δεν δουλεύουν και με τον καλύτερο τρόπο στην 1.7 (ή και καθόλου), δυστυχώς θα πρέπει να γίνουν κάποιες αλλαγές στον κώδικα, τουλάχιστον μέχρι να αλλαχθούν σε κάποια επόμενη αναβάθμιση. Για το συγκεκριμένο module λοιπόν, η αλλαγή που έκανα εγώ και μου δούλεψε ήταν η αντικατάσταση των γραμμών: $content = preg_replace_callback('#\{config\}([a-zA-Z0-9_-]*)\{/config\}#', create_function('$matches', 'return Configuration::get($matches[1]);'), $content); $content = preg_replace_callback('#\{link\}(.*)\{/link\}#', create_function('$matches', 'return Context::getContext()->link->getAdminLink($matches[1]);'), $content); $content = preg_replace_callback('#\{employee\}(.*)\{/employee\}#', create_function('$matches', 'return Context::getContext()->employee->$matches[1];'), $content); $content = preg_replace_callback('#\{language\}(.*)\{/language\}#', create_function('$matches', 'return Context::getContext()->language->$matches[1];'), $content); $content = preg_replace_callback('#\{country\}(.*)\{/country\}#', create_function('$matches', 'return Context::getContext()->country->$matches[1];'), $content); σε: $content = preg_replace_callback('#\{config\}([a-zA-Z0-9_-]*)\{/config\}#', function($matches) { return Configuration::get($matches[1]); }, $content); $content = preg_replace_callback('#\{link\}(.*)\{/link\}#', function($matches) { return Context::getContext()->link->getAdminLink($matches[1]); }, $content); $content = preg_replace_callback('#\{employee\}(.*)\{/employee\}#', function($matches) { return Context::getContext()->employee->$matches[1]; }, $content); $content = preg_replace_callback('#\{language\}(.*)\{/language\}#', function($matches) {return Context::getContext()->language->$matches[1]; }, $content); $content = preg_replace_callback('#\{country\}(.*)\{/country\}#', function($matches) { return Context::getContext()->country->$matches[1]; }, $content); Σίγουρα υπάρχουν κι άλλες αλλαγές που μπορούν να γίνουν, το topic είναι ανοιχτό για όποιον θέλει να τις μοιραστεί με τους ενδιαφερόμενους. 1 Link to comment Share on other sites More sharing options...
sanctusmob Posted February 16, 2019 Share Posted February 16, 2019 Προτεινόμενη έκδοση για το πρεστα 1.7.5 είναι η php 7.1... Link to comment Share on other sites More sharing options...
FotisM Posted February 18, 2019 Author Share Posted February 18, 2019 On 2/16/2019 at 9:47 PM, sanctusmob said: Προτεινόμενη έκδοση για το πρεστα 1.7.5 είναι η php 7.1... Κατανοητό, και ευχαριστώ για την ενημέρωση. Φαντάζομαι δε, ότι στα μελλοντικά upgrades του presta θα έχει αντικατασταθεί η εντολή, όπως και ό,τι άλλο είναι deprecated πλέον στις νέες εκδόσεις της PHP. Απλά, προσωπικά προτιμώ να είμαι έτοιμος για την επόμενη PHP version, μια που τα one-click upgrades κλπ δεν μπορώ να τα χρησιμοποιήσω με τίποτα, με τόσες επεμβάσεις που θα αναγκαστώ να κάνω λόγω μη υποστήριξης των overrides. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now