Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από dpa » 31 Ιαν 2012 13:11

Παιδιά καλημέρα,

Θα ήθελα να ρωτήσω:

Όταν σε ένα cms έχει γενικές ρυθμίσεις το site τις αποθηκεύει στην βάση δεδομένων.

Κάθε φορά που φορτώνει το site τραβάει τα δεδομένα συνέχει από την βάση και σε κάθε διαφορετική σελίδα που ανοίγεις τα ξανατραβάει ??

Η όταν ανοίγει η μία σελίδα τα τραβάει από την βάση και μετά αποθηκεύει τις ρυθμίσεις σε cookies ώστε να είναι πιο γρήγορη η φόρτωση στις άλλες σελίδες. ??

Ευχαριστώ

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από korgr » 31 Ιαν 2012 14:37

Υπάρχουν πολλές αντιμετωπίσεις.
Αν έχεις πίνακα option και κάθε επιλογή σε νέα εγγραφή τότε μπορείς να χρησιμοποιείς db cache ώστε να μην τα τραβάς συνέχεια σε κάθε request.

Μπορείς επίσης να ακολουθείς το μοντέλο της μιας text εγγραφής, όπου τα keys-values ορίζονται σε ξεχωριστή γραμμή αυτής της text εγγραφής στη βάση. Όπως αποθηκεύονται πχ τα modules parameters στο Joomla και σε άλλα cms

Μπορείς να τα αποθηκεύεις σε json

Πολλά μπορείς :)

Άβαταρ μέλους
jpk
Δημοσιεύσεις: 441
Εγγραφή: 09 Μαρ 2011 21:17

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από jpk » 31 Ιαν 2012 14:44

Δεν λες αν είναι δικό σου το cms που συζητάμε . Αν είναι δικό σου το cashing δεν είναι ένα απλό θέμα που έχει απλές απαντήσεις. Είναι αναλόγως τι κάνεις, με ποια συχνότητα και με τι κόστος σε kilobytes. Δεν θα επεκταθώ γιατί δεν δίνεις στοιχεία για το τι κάνεις ακριβώς.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από korgr » 31 Ιαν 2012 14:57

jpk έγραψε:Δεν λες αν είναι δικό σου το cms που συζητάμε . Αν είναι δικό σου το cashing δεν είναι ένα απλό θέμα που έχει απλές απαντήσεις. Είναι αναλόγως τι κάνεις, με ποια συχνότητα και με τι κόστος σε kilobytes. Δεν θα επεκταθώ γιατί δεν δίνεις στοιχεία για το τι κάνεις ακριβώς.
Σε μένα ή στον dpa απευθύνεσαι?

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από dpa » 31 Ιαν 2012 18:14

Μιλάμε για ένα cms που θέλω να φτιάξω δικό μου. Ο korgr κατάλαβε.

Τι εννόεις ??

Κώδικας: Επιλογή όλων

Υπάρχουν πολλές αντιμετωπίσεις. 
Αν έχεις πίνακα option και κάθε επιλογή σε νέα εγγραφή τότε μπορείς να χρησιμοποιείς db cache ώστε να μην τα τραβάς συνέχεια σε κάθε request. 

Μπορείς επίσης να ακολουθείς το μοντέλο της μιας text εγγραφής, όπου τα keys-values ορίζονται σε ξεχωριστή γραμμή αυτής της text εγγραφής στη βάση. Όπως αποθηκεύονται πχ τα modules parameters στο Joomla και σε άλλα cms 

Μπορείς να τα αποθηκεύεις σε json 
Θέλω ένα τρόπο ώστε να μην είναι αργώ το site και εκτελεί πολλά query

Ευχαριστώ

Αν θες δώσε και ένα παράδειγμα

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από dpa » 31 Ιαν 2012 18:35

Μήπως πρέπει να τα γράφω σε xml και όταν κάνει login ο χρήστης να ξαναγράφει το xml και έπειτα να το χρησιμοποιώ σε κάθε σελίδα.

Βέβαια δεν έχω δει πως μπορώ να διαβάσω ένα xml.

Δεν μπορώ να φανταστώ πώς να τα έχω αποθηκευμένα και να τα τραβάω μια φορά από την βάση.

Αυτό που σκέφτηκα εγώ είναι όταν κάνει login ο χρήστης να αποθηκεύει την κάθε ρύθμιση σε cookies. Απλά όταν θα διαγράφει κάποιος τα cookies από το browser θα τα γράφει στο επόμενο login ή στην πρώτη φόρτωση της σελίδας.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από korgr » 31 Ιαν 2012 18:53

Αν μιλάς για τις γενικές ρυθμίσεις του CMS και όχι κάποιες custom ρυθμίσεις του χρήστη, αυτές μπορούν να είναι σε ένα config.php και να τις φορτώνεις με include.
Σε γενικές γραμμές πρέπει να μιλάμε για πραγματικά μεγάλα projects ώστε να μας νοιάζει αν θα γλιτώνουμε κάποια queries τόσο απλά όσο αυτά των γενικών ρυθμίσεων.

Αν όμως σε καίει τόσο πολύ βάλε τα σε cookies

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από dpa » 31 Ιαν 2012 19:20

Φίλε αν θες βοήθησε με. Υποτίθεται ότι φτιάχνεις μεγάλο project.

Κώδικας: Επιλογή όλων

Υπάρχουν πολλές αντιμετωπίσεις. 
Αν έχεις πίνακα option και κάθε επιλογή σε νέα εγγραφή τότε μπορείς να χρησιμοποιείς db cache ώστε να μην τα τραβάς συνέχεια σε κάθε request. 

Μπορείς επίσης να ακολουθείς το μοντέλο της μιας text εγγραφής, όπου τα keys-values ορίζονται σε ξεχωριστή γραμμή αυτής της text εγγραφής στη βάση. Όπως αποθηκεύονται πχ τα modules parameters στο Joomla και σε άλλα cms 

Μπορείς να τα αποθηκεύεις σε json 
Τι εννοείς με τα παραπάνω ?? τι εννοείς με db cache.

τι εννοείς με το text εγγραφής

Αν θες βοήθησέ με δώσε μου ένα παράδειγμα.

Ευχαριστώ πολύ

Αν τα αποθηκεύω σε αρχείο config.php θα πρέπει συνέχει να το ξαναγράφω.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από korgr » 31 Ιαν 2012 20:06

Το database caching δεν είναι απλό πράγμα ώστε να αναλυθεί μέσα σε λίγα posts.
Πάντως θα μπορούσες να πάρεις μια ιδέα στο http://forum.junowebdesign.com/php-arti ... s-php.html

Για το config.php μίλησα για μόνιμα settings όχι μεταβλητά.

Οι text εγγραφές είναι ένα πεδίο σαν και αυτά που αποθηκεύεις πχ ένα άρθρο.
Ένα χαρακτηριστικό παράδειγμα από settings ενός Module στο δικό μου CMS:

Κώδικας: Επιλογή όλων

marginTop=0
marginRight=0
marginBottom=0
marginLeft=0
paddingTop=20px
paddingRight=0
paddingBottom=0
paddingLeft=0
useModuleContainer=1
widthInPixels=__EMPTY__
createdText_1=created by
createdLinkText_1=korinthorama.gr
createdURL_1=http://www.webpage.gr
createdText_2=__EMPTY__
createdLinkText_2=__EMPTY__
createdURL_2=__EMPTY__
footer_text_color=a0a0a0
link_text_color=68385b
use_colors=1
show_timer=1
moduleAlign=center
moduleHR=none
Μετά το ανακτείς μόνο με ένα query (ένα πεδίο)
Ας υποθέσουμε πως μετά το έχεις σε μια μεταβλητή $params

Το χειρίζεσαι κάπως έτσι:

Κώδικας: Επιλογή όλων

						$params = explode(PHP_EOL, $params);
						foreach($params as $param){
							list($var, $value) = explode("=", $param);
							${$var} = str_replace("__EMPTY__", null, $value);
						}
Μετά από αυτό θα τα έχεις σε μεταβλητές πχ:

$marginRight
$marginBottom
$marginLeft

κλπ

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από dpa » 31 Ιαν 2012 20:20

Δηλάδή έχεις έναν πίνακα στην βάση που τις αποθηκεύεις και μετά σε ένα αρχείο εκτελείς ένα sql αποθηκεύεις όλες τις τιμές σε ξεχωριστές μεταβλητές και μετά αυτό το αρχείο το κάνει include σε όλες τις σελίδες ??? Αυτό εννοείς ??

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από dpa » 01 Φεβ 2012 11:42

Φίλε καλημέρα,

Είναι έτσι το παραπάνω που έγραψες.

Θα αποθηκεύσω σε έναν πίνακα στην db και μετά σε ένα αρχείο θα τα τραβήξω με query και θα τα αποθηκεύσω σε διαφορετικές μεταβλητές ??

Και έπειτα να κάνω Inlcude αυτό το αρχείο σε όλες τις σελίδες ??

Ευχαριστώ

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από korgr » 01 Φεβ 2012 12:59

Το συγκεκριμένο παράδειγμα αφορά ανάγνωση από την βάση σε κάθε page request.
Απλά κάνει get ένα μόνο row για όλες τις ρυθμίσεις. Δεν έχει σχέση με Includes.
Τα includes είναι για μόνιμες ρυθμίσεις του CMS, όχι μεταβλητές που θα μπορούσαν να αλλάζουν συνεχώς από τον διαχειριστή.

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Αποθήκευση γενικών ρυθμίσεων ιστοσελίδας

Δημοσίευση από dpa » 01 Φεβ 2012 13:15

Σε ευχαριστώ πολύ.

Πιστεύω πως κατάλαβα.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης