k33theod Δημοσ. 1 Απριλίου 2019 Δημοσ. 1 Απριλίου 2019 3 ώρες πριν, hdonoblepsias είπε Στο config εχω βαλει το url του site. Επισης το κουφο ειναι οτι αν ειμαι πχ στην σελιδα products : Στο ιδιο σημειο του header αν κανω Echo base_url(); Θα εμφανισει https://onoma.gr Αν απο διπλα ακριβως βαλω link με a href=“<?php echo base_url();?>contact” θα παει να ανοιξει https://onoma.gr/products/contact. Υ.γ. Πιστευεις οτι αξιζει να ξαναρχισω να μαθαινω αλλο framework και να παω σε laravel? Εννοω αρκετα καλυτερο για να μπω στην διαδικασια; Δες λίγο το documentation του base_url . To τι θα ανοίξει ένας δεσμός έχει να κάνει με το πως εσύ στο framework έχεις καθορίσει που οδηγούν τα url σου σε ποιά views δηλαδή. Μπορεί επίσης το https://onoma.gr να έχει redirect που να σε πηγαίνει αλλού Μπορείς να γράψεις σε κάθε περίπτωση την δική σου base_url χρησιμοποίησε τη $_SERVER['HTTPS'] και τη $_SERVER['SERVER_NAME'] Επίσης το src="<?php echo base_url();?>assets/my_images/logo.png" είναι μισό με μεταβλητή και μισό hardcoded, δεν μομίζω ότι βοηθάει και πολύ.
hdonoblepsias Δημοσ. 1 Απριλίου 2019 Μέλος Δημοσ. 1 Απριλίου 2019 9 λεπτά πριν, k33theod είπε Δες λίγο το documentation του base_url . To τι θα ανοίξει ένας δεσμός έχει να κάνει με το πως εσύ στο framework έχεις καθορίσει που οδηγούν τα url σου σε ποιά views δηλαδή. Μπορεί επίσης το https://onoma.gr να έχει redirect που να σε πηγαίνει αλλού Μπορείς να γράψεις σε κάθε περίπτωση την δική σου base_url χρησιμοποίησε τη $_SERVER['HTTPS'] και τη $_SERVER['SERVER_NAME'] Επίσης το src="<?php echo base_url();?>assets/my_images/logo.png" είναι μισό με μεταβλητή και μισό hardcoded, δεν μομίζω ότι βοηθάει και πολύ. Απλά λέω πως γίνεται στο ίδιο div το echo του base_url() να δίνει το onoma.gr (οπως και είναι δηλωμένο) και όταν μπαίνει μέσα σε href ή src να μην παίρνει αυτή την τιμή?
k33theod Δημοσ. 1 Απριλίου 2019 Δημοσ. 1 Απριλίου 2019 (επεξεργασμένο) 5 λεπτά πριν, hdonoblepsias είπε Απλά λέω πως γίνεται στο ίδιο div το echo του base_url() να δίνει το onoma.gr (οπως και είναι δηλωμένο) και όταν μπαίνει μέσα σε href ή src να μην παίρνει αυτή την τιμή? Αυτό που λες δεν ισχύει θα κάνεις έλεγχο του page source πριν κάνεις κλικ στο δεσμό Επεξ/σία 1 Απριλίου 2019 από k33theod
PC_MAGAS Δημοσ. 1 Απριλίου 2019 Δημοσ. 1 Απριλίου 2019 (επεξεργασμένο) Στις 11/3/2019 στις 2:49 ΠΜ, hdonoblepsias είπε Καλησπερα. Οπως θα εχετε καταλαβει, προσφατα αρχισα να ασχολουμε με web development ξεφευγοντας απο το wp. Το φορουμ με εχει βοηθησει απιστευτα και τους ευχαριστω ολους για αυτο. Για να μαθω προσπαθω να υλοποιω καποιες ιδεες μου που δεν μπορουσα με wp. Ξεκινησα με php, mysql, html, css, μετα αρχισα να φτιαχνω τα προτζεκτ σε mvc με framework, μετα να γινονται οι πιο πολλες διαδικασιες με ajax κλπ... εδω που εχω φτασει εχω ομως καποιες αποριες και θελω να τις γραψω μαζεμενες μην ανοιγω διαφορετικα νηματα. Και οποιος εχει ορεξη, απανταει σε οτι μπορει. α) αρχισα με php, μετα πηγα σε codeigniter και αρχισα να το ψιλομαθαινω. Διαβαζω ομως στο ιντερνετ οτι ειναι στα τελειωματα. Αξιζει να παω σε laravel με οτι κοπο συνεπαγεται ή να συνεχισω codeigniter? β) Στο mvc δεν μπλεκεται και καλα το frontend με το backend. Αυτο πως γινεται δεν το καταλαβαινω. Εστω οτι εγω ειμαι ο designer και φτιαχνω μια σελιδα στο view, δεν πρεπει να ξερω τι data μου στελνει ο controller ή κατι αλλο, φτιαχνω ενα temlate στο View, δεν θα πρεπει ο developer να μπει και αυτος για να βαλει πχ ενα js? Γενικα δεν εχω καταλαβει πως ακριβως γινεται μια συνεργασια developer - designer. Επειδη η ερωτηση δεν μου ειναι επειγουσα, αν ειναι δυσκολη η απαντηση δεν υπαρχει προβλημα να μην απαντηθει. γ) Εστω οτι εχω ενα site στον αερα. Πως μπορω να κανω αλλαγες χωρις να φαινονται στο επισκεπτη? Σκεφτομαι οτι κατεβαζω ενα copy στον υπολογιστη και το φτιαχνω εκει, σημειωνω τα αρχεια που αλλαξα και ανεβαζω τα νεα στο σερβερ. Αν ομως τοπικα εχω κανει και αλλαγες στην βαση, και οσο το φτιαχνω, στο live site εχουν γινει αλλαγες απο χρηστες (πχ εγγραφες κλπ), οπουε οταν θα ανεβασω την φτιααγμενη βαση, θα χαθουν οι αλλαγες του live site. δ) Σαν το γ) περιπου αλλα λιγο πιο περα. Εστω οτι φτιαχνω ενα php script σαν αυτα που πουλιουνται στο codecanyon, και γινει εγκατασταση σε δεκα διαφορετικους χωρους, και ο καθενας το εχει φερει στα μετρα του, με τις εγγραφες του, τα λογοτυπα του, την επωνυμια του (αυτα θα ειναι δυναμικα στην βαση) και εγω αποφασιζω να βγαλω μια ενημερωση v2.0 που θα εχω προσθεσει πραγματα, θα εχω κανει αλλαγες στην βαση κλπ, πως θα μπορει να αναβαθμισει καποιος χωρις να χασει τα δεδομενα του. Παιδια κανω αυτε τις ερωτησεις οχι γιατι εχω αμεση αναγκη τις απαντησεις, απλα θελω να μαθω και θελω να μαθω σωστα. Επισης δεν θελω να μπειτε σε λεπτομεριες και κουραστειτε (πατας εδω, περνας εκεινο κλπ). Σαν μεθοδολογια θελω να μου πειτε ή ακομα και λεξεις κλειδια για να ψαξω παραπανω σε αυτα τα ερωτηματα. Ευχαριστω πολυ α) Σου συνιστώ ΑΝΕΠΙΦΥΛΑΚΤΑ να πάς είτε σε laravel ή ω ναι symfony, και για εμένα το codeigniter ήταν το πρώτο μου framework και με το που το άλλαξα μετά είδα την γλύκα. Γενικά αμά πας σε άλλο και ειδικά στο symfony θα δείς διαφορές: Το logic δεν είναι στο model ΑΛΛΑ "σπασμένο" σε πολλαπλά services. Ότι εξτραδάκι θες (πχ 3η βιβλιοθήκη) το περνάς στον constructor μιας κλάσης ενός service ή και στην function. Ακόμη πρέπει να το δηλώσεις σαν service. Είναι ψιλο pain in ass στην αρχή αλλά έχει τα ωφέλη (εύκολο αυτοματοποιημένο testing + ευκολότερη επαναχρησιμοποίηση κώδικα). Η βάση δεδομένων επικοινωνείτε με την χρήση του Doctrine ORM (συνήθως) που αυτό έχει και καλά (ευκολότερο σχεδιασμό βάσης + ευκολία στο sanitization των δεδομένων) αλλά και κακά (καθυστέρηση). Μπορείς να το αλλάξεις σε PDO αλλά χάνεις όποιο εργαλειάκι έρχεται εξτρά με το ΟRM και θα πρέπει να το κάνεις εσύ ή να χρησιμοποιήσεις κάποιο άλλο. β) Ουσιαστικά διαχωρίζεις σε λογικά modules την εμφάνιση και την λογική δηλαδή δες το view σαν ξεχωριστό κώδικα που "κουμπώνει" σε controller. Σημειωση ένα view μπορεί να καλείτε από πολλαπλά controllers, αυτό δεν σημαίνει ότι ΔΕΝ θα έχεις server-side κώδικα και εκεί πέρα πχ. πώς θα κάνεις ένα view σε pdf. Ο designer το view στου θα το κάνει ειτε σε html είτε σε κάποιο mockup πρόγραμμα στην καλύτερη σε κάποια template γλώσσα (twig). Εσύ σαν super dev θα το κάνεις να παίζει στην php. γ) Εκεί παίζει πολύ μεγάλη μπάλα. Πρώτος θες κάποια script που θα σου αλλάζουν την βάση από έκδοση σε έκδοση τα λεγόμενα database migration scripts. Εκεί τα δημοφιλή framework όπως laravel https://laravel.com/docs/5.8/migrations και symfony https://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html σου δίνουν λύσεις (βλ. στα link). Γενικά θές script να σου "φτιάξει" την εφαρμογή σε μορφή έτοιμη που θα μπορεί να τοποθετείτε στον σέρβερ και θα παίζει. Εκεί παίζουν εργαλεία όπως gulp και τρέχουν όλα τα tasks που χρειάζονται. Ύστερα θες να βρεις έναν τρόπο που θα αναβαίνει στον server εκεί έχεις μεγάλη ποικιλομορφία όπως από το να το ανεβάζεις σε ftp και το index.php να καταλαβαίνει μέσω λογικής εάν θα αναβαθμιστεί η όχι μέχρι και να χτίζεις ενα docker image και μέσω script να εκτελείτε η διαδικασία. Γενικά το deployment είναι ένα κομμάτι αυτούσιο που θέλει μελέτη, οι λύσεις είναι αρκετές και περιλαμβάνει αρκετό scripting. Επιπλέων θες την διαχείριση του κώδικα σε εκδόσεις με κάποιο εργαλείο διαχείρισης εκδόσεων πχ. git και κάποια πολιτική και κανόνες διαχείρησης. Σε μεγάλες εταιρείες έχουν γίνετε δια μέσω ακόλουθων branches (το branching γίνετε με το εργαλείο version controll): Master/release branch: Κλάδος που έχει τον κώδικα έτοιμο προς production. Σε υπηρεσίες SaaS πχ. facebook κλπ κλπ έχουν συνήθως 1 όμως λογισμικά όπως phpBB έχουν πολλαπλά. Staging: Branches τα οποία έχουν εκδόσεις έτοιμες προς release. Developent Branches: Στα οποία έχουν τις αλλαγές υπό ανάπτυξη. Καλείσαι σαν developer, εαν δεν έχεις κάτι τέτοιo στην εταιρεία, να το αναπτύξεις για να κάνεις την ζωή σου και των επόμενων μετά απο εσένα ευκολότερη. Τέλος δεν ξεχνάμε και εργαλεία όπως Jenkins που σε συνδιασμό με σκρίπτ, git,gulp αλλά και την πολιτική branching κάνεις όλη δουλειά του κτισίματος και του deployment, και η διαδικασία αυτή λέγετε continious integration. δ) Εάν μιλάμε ότι θές να κάνεις εφαρμογή σαν phpBB3-like wordpress-line, με την ένοια ότι ο χρήστης/πελάτης παίρνει και την φτύνει μέσω ftp στον σέρβερ, εκεί ορίζεις σκρίπτ να κάνει όλη την δουλεία του retention/recovery και backup και το index.php αποφασίζει εάν θα το καλέσει. Γενικά το deployment να γίνετε μέσω script και εργαλείων και διαδικασιών που κρίνεις εσύ ότι πρέπει να γίνουν, αυτοματοποίησε σε κώδικα ότι μπορείς όσο αφορά ενέργειες ενημέρωσης, δοκιμής και αναβάθμισης. Για το γ και δ γενικά είναι έξτρα κώδικας που εάν δεν έχεις καλό supervisor/boss/προηστάμενο που να ξέρει από αυτά θες καλά επικοινωνιακά skills ή και λίιιγο θεατριλίκι, πχ. boss παρουσιάστικε αυτό το σφάλμα και για να φτιαχτεί θέλουμε όλα αυτά και είναι μεγάλο κα κρίσιμο. Καλό είναι στο σπίτι σου να έχεις ένα προυπάρχων κώδικα-template-οδηγίες και να τον ακολουθει τυφλοσούρτη που θα καλύπτει τις περισσότερες ανάγκες. Είδικά εάν είσαι freelancer για λιγο καιρό μην παίρνεις δουλείες και επένδυσε σε "κώδικα βάσης" δηλαδή κώδικα που θα τον παίρνεις και πάνω σε αυτόν θα κτίζεις μπορεί να μην είναι git project αλλά βάση γνώσης που ανάλωγα με περιστάσεις μπορείς να πατάς σε αυτό. Ακόμη για την βάση γνώσης αξιοποίησε το stackoverflow και ρωτοαπάντα εκεί όπως κάνω και εγώ ακόμη και ένα blog με οδηγίες βοηθάει. Επεξ/σία 2 Απριλίου 2019 από PC_MAGAS 1 1
hdonoblepsias Δημοσ. 1 Απριλίου 2019 Μέλος Δημοσ. 1 Απριλίου 2019 3 ώρες πριν, k33theod είπε Αυτό που λες δεν ισχύει θα κάνεις έλεγχο του page source πριν κάνεις κλικ στο δεσμό Τελικά καλά το είχα δηλώσει και κόντευα να τρελαθώ γιατί μου δείχνει το σωστό path στο echo και όχι στο src. Το έψαξα χίλιες φορές και στο τέλος συνειδητοποίησα οτι έχω ξεχάσει να κάνω echo το base_url. Δηλαδή το είχα έτσι src="<?php echo base_url();?>assets/my_images/logo.png"
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα