hdonoblepsias Δημοσ. 11 Μαρτίου 2019 Δημοσ. 11 Μαρτίου 2019 Καλησπερα. Οπως θα εχετε καταλαβει, προσφατα αρχισα να ασχολουμε με 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 που θα εχω προσθεσει πραγματα, θα εχω κανει αλλαγες στην βαση κλπ, πως θα μπορει να αναβαθμισει καποιος χωρις να χασει τα δεδομενα του. Παιδια κανω αυτε τις ερωτησεις οχι γιατι εχω αμεση αναγκη τις απαντησεις, απλα θελω να μαθω και θελω να μαθω σωστα. Επισης δεν θελω να μπειτε σε λεπτομεριες και κουραστειτε (πατας εδω, περνας εκεινο κλπ). Σαν μεθοδολογια θελω να μου πειτε ή ακομα και λεξεις κλειδια για να ψαξω παραπανω σε αυτα τα ερωτηματα. Ευχαριστω πολυ
Predatorkill Δημοσ. 11 Μαρτίου 2019 Δημοσ. 11 Μαρτίου 2019 γ) θα χρησιμοποιεις git, επιβαλλεται. Οσο για τις αλλαγες στη βαση χωρις να ειμαι ειδημων στην mysql νομιζω αυτο που θες λεγεται migration. 1
hdonoblepsias Δημοσ. 11 Μαρτίου 2019 Μέλος Δημοσ. 11 Μαρτίου 2019 5 ώρες πριν, Predatorkill είπε γ) θα χρησιμοποιεις git, επιβαλλεται. Οσο για τις αλλαγες στη βαση χωρις να ειμαι ειδημων στην mysql νομιζω αυτο που θες λεγεται migration. Τωρα γκουγκλαρα, δεν ηξερα οτι υπαρχει κατι τετοιο. Μονο την σελιδα github ηξερα που νομιζα οτι απλα ανεβαινουν κωδικες για download. Μια ερωτηση για να κλεισουμε το ερωτημα γ). Τωρα που φτιαχνω ενα προτζεκτ, πρεπει να ενδιαφερθω απο τωρα για να χρησιμοποιησω git ή μπορω να ολοκληρωσω πρωτα το προτζεκτ και μετα να ασχοληθω;
Predatorkill Δημοσ. 11 Μαρτίου 2019 Δημοσ. 11 Μαρτίου 2019 Απο τωρα, παντα ετσι να ξεκινας βασικα. Το github πλεον επιτρεπει να εχεις private repos δωρεαν. Τα πλεονεκτηματα ειναι παρα πολλα, δες καποια βιντεο στο youtube και θα καταλαβεις. Γυρω απο αυτο υπαρχουν πολλα εργαλεια που μπορουν να βοηθησουν το dev-> prod flow, πχ travis ci. Το git εχει παρα πολλες λειτουργιες και οταν προγραμματιζεις μονος σου χωρις καποια ομαδα ειναι ευκολο να μαθεις τα βασικα. ενα παραδειγμα ειναι τα branches, μπορεις να εχεις το κυριως «κλαδι» και να δουλευεις πανω σε αυτο, αν θες να προσθεσεις κατι καινουριο πχ ενα νεο module στο κωδικα σου τοτε μπορεις να δημιουργησεις ενα νεο κλαδι και οταν τελειωσεις με το module και βεβαιωθεις οτι ολα δουλευουν ρολοϊ να ενωσεις αυτα τα δυο κλαδια και το master σου να εχει το καινουριο module. Δες βιντεο και θα ενθουσιαστεις με το τι μπορεις να κανεις.
hdonoblepsias Δημοσ. 11 Μαρτίου 2019 Μέλος Δημοσ. 11 Μαρτίου 2019 24 λεπτά πριν, Predatorkill είπε Απο τωρα, παντα ετσι να ξεκινας βασικα. Το github πλεον επιτρεπει να εχεις private repos δωρεαν. Τα πλεονεκτηματα ειναι παρα πολλα, δες καποια βιντεο στο youtube και θα καταλαβεις. Γυρω απο αυτο υπαρχουν πολλα εργαλεια που μπορουν να βοηθησουν το dev-> prod flow, πχ travis ci. Το git εχει παρα πολλες λειτουργιες και οταν προγραμματιζεις μονος σου χωρις καποια ομαδα ειναι ευκολο να μαθεις τα βασικα. ενα παραδειγμα ειναι τα branches, μπορεις να εχεις το κυριως «κλαδι» και να δουλευεις πανω σε αυτο, αν θες να προσθεσεις κατι καινουριο πχ ενα νεο module στο κωδικα σου τοτε μπορεις να δημιουργησεις ενα νεο κλαδι και οταν τελειωσεις με το module και βεβαιωθεις οτι ολα δουλευουν ρολοϊ να ενωσεις αυτα τα δυο κλαδια και το master σου να εχει το καινουριο module. Δες βιντεο και θα ενθουσιαστεις με το τι μπορεις να κανεις. Ωραια. Σε ευχαριστω παρα πολυ!!! Θα το κοιταξω τωρα. Και επειδη φοβαμαι μην μπερδευτω με λαθος βιντεο στο youtube, θα κοιταξω να αγορασω μαθημα απο udemy, οπως εκανα με codeigniter και jquery.
Predatorkill Δημοσ. 11 Μαρτίου 2019 Δημοσ. 11 Μαρτίου 2019 (επεξεργασμένο) Β) Στην αρχη βαζεις fake/dummy data εκει που χρειαζεται, υποτιθεται παντα οτι εχετε καταληξει στις δομες πριν ξεκινησετε. Το flow στην εταιρια που δουλευω ειναι: 1. Συζητηση με πελατη, συνηθως πανω απο 1 ραντεβου για τα πολυπλοκα projects 2. Σχεδιασμος σε Invision ή Figma 3. Υλοποιηση του 2 απο τον front end, καποιες φορες ξεκιναει μαζι του ο backend καποιες αλλες οχι. Στη δευτερη περιπτωση αφου τελειωσει το backend τοτε ξαναπιανει ο front και το τελειωνει ειδαλλως πανε μαζι. Δ) Πρεπει να δημιουργησεις update scripts τα οποια θα αναλαμβανουν να αλλαξουν τα εγκατεστημενα αρχεια αλλα και να παραμετροποιησουν τη βαση εφοσον εχεις και εκει αλλαγες. Πρεπει να προσεξεις τα εξης: 1. Καθε εκδοση να εχει version number ωστε το update script να μπορει να δει ποια εκδοση υπαρχει εγκατεστημενη στο χρηστη και να κανει τις αλλαγες που πρεπει και εχεις ορισει. Φαντασου πχ καποιος να εχει την εκδοση 1.0.0 εσυ να προχωρας σε αναβαθμισεις με breaking changes και να εχεις φτασει στην 1.5.0, ο χρηστης να μην εχει αναβαθμισει για μεγαλο διαστημα και ξαφνικα να του ρθει να κανει update, υπαρχει πιθανοτητα να τα διαλυσει ολα. Με το versioning λοιπον μπορεις να του κανεις σταδιακη αναβαθμιση πχ απο την 1.0.0 να τον πας στην 1.0.5, στην 1.4.0 και μετα στην 1.5.0. Μπορεις να τα διαλυσεις ολα αμα δε κανεις versioning καθως μπορει η εκδοση 1.5.0 να χρειαζεται κατι που επρεπε να ειχε δημιουργηθει απο την 1.4.0 και να τα καψεις ολα. Φυσικα ολα τα παραπανω checks μπορεις να τα βαλεις ολα σε ενα robust update script που θα τα κανει ολα μονο του. Επεξ/σία 11 Μαρτίου 2019 από Predatorkill
skiabox Δημοσ. 11 Μαρτίου 2019 Δημοσ. 11 Μαρτίου 2019 Predatorkill : Είσαι σε react εσύ για αυτό κουμπώνεις με figma. 1
Predatorkill Δημοσ. 11 Μαρτίου 2019 Δημοσ. 11 Μαρτίου 2019 24 λεπτά πριν, skiabox είπε Predatorkill : Είσαι σε react εσύ για αυτό κουμπώνεις με figma. Html/css βγαζουν, δεν μπορουν να κουμπωσουν παντου; Επειδη δεν τα εχω δει /δουλεψει αυτα τα εργαλεια ποτε μου παρα μονο τα τελικα αποτελεσματα, πως κουμπωνει με react το figma; Και components να κανει export, παντα προγραμματιζω απο το 0 ολο το project (αν εννοεις αυτο).
vadou Δημοσ. 11 Μαρτίου 2019 Δημοσ. 11 Μαρτίου 2019 α) Ναι αξίζει να ασχοληθείς με symfony ή/και laravel. Το laravel είναι βασισμένο σε symfony. β) Τι είναι το v στο mvc; Ο designer τι σχέση έχει με την υλοποίηση; Ξαναδιάβασε λίγο πώς δουλεύει το mvc. δ) Θα πρέπει να φροντίσεις το update σου να είναι backwards compatible, ώστε να μη σπάσουν τα παλιά όταν γίνουν update.
hdonoblepsias Δημοσ. 12 Μαρτίου 2019 Μέλος Δημοσ. 12 Μαρτίου 2019 Σας ευχαριστω πατα πολυ για τις απαντησεις σας παιδια!!! 7 ώρες πριν, vadou είπε α) Ναι αξίζει να ασχοληθείς με symfony ή/και laravel. Το laravel είναι βασισμένο σε symfony. β) Τι είναι το v στο mvc; Ο designer τι σχέση έχει με την υλοποίηση; Ξαναδιάβασε λίγο πώς δουλεύει το mvc. δ) Θα πρέπει να φροντίσεις το update σου να είναι backwards compatible, ώστε να μη σπάσουν τα παλιά όταν γίνουν update. Το V στο mvc δεν ειναι το view?
Fortistis Δημοσ. 12 Μαρτίου 2019 Δημοσ. 12 Μαρτίου 2019 6 ώρες πριν, hdonoblepsias είπε Σας ευχαριστω πατα πολυ για τις απαντησεις σας παιδια!!! Το V στο mvc δεν ειναι το view? Το view είναι, αλλά τι κάνει είναι το θέμα. Διάβασε τι σκοπό εξυπηρετεί κάθε ένα από τα M, V, και C. Υπάρχουν πολλοί και πολύ καλοί οδηγοί εκεί έξω, για όλα τα στυλ μάθησης.
hdonoblepsias Δημοσ. 30 Μαρτίου 2019 Μέλος Δημοσ. 30 Μαρτίου 2019 (επεξεργασμένο) Παιδιά μην απαντάτε ακόμα στο παρακάτω να δοκιμάσω κάτι, που μάλλον κόλλησε το μυαλό μου. Θα δοκιμάσω και θα δω αν θέλω βοήθεια. Η αρχική ερώτηση η οποία λύθηκε, αλλά δημιουργήθηκε νέο πολύ περίεργο πρόβλημα... Το αρχικό πρόβλημα Ρε παιδιά καλησπέρα. Για να μην ανοίγω νέο νήμα, θέλω να κάνω μια ερώτηση γιατί μάλλον έχω κάνει χοντρή γκάφα και θέλω να δω αν διορθώνεται, για να μην φτιάχνω όλο το site από την αρχή. Στο site μου (δεν είναι δημόσιο αλλά για δική μου χρήση) έχω πελάτες και προιόντα. Έτσι όπως το έχω κάνει έχω φτιάξει ένα κοντρόλερ με το αρχικό view, που τραβάει από το model ένα get όλα τα προιόντα και όλους τους πελάτες. Ανάλογα μετά το domain, ο controller ανοίγει την εκάστοτε σελίδα. π.χ. (Πολύ χοντρικά) <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Home extends CI_Controller { public function view($page = 'home'){ if(isset($_SESSION['user_role'])){ $login_status = $_SESSION['user_role']; } if($login_status == 0){ if($this->sites_model->site_settings()){ $data['data_settings'] = $this->sites_model->site_settings(); $this->load->view('pages/login', $data);} } else { if(!file_exists(APPPATH.'views/pages/'.$page.'.php')){ show_404(); } else { $data['data_settings'] = $this->sites_model->site_settings(); $data['get_clients'] = $this->users_model->get_clients(); $data['get_categories'] = $this->users_model->get_categories(); $data['get_products'] = $this->products_model->get_products(); $this->load->view('templates/header'); $this->load->view('pages/'.$page, $data); $this->load->view('templates/footer'); } } } } Αν δηλαδή κάποιος πατήσει https://onoma.gr/products τότε με ένα foreach εμφανίζω ένα table με τα προιόντα. πχ τίτλος | κατηγορία | τιμή κλπ. Στόν τίτλο του κάθε προιόντος, έχω βάλει ένα λινκ που ανοίγει με modal και με τα υπόλοιπα στοιχεία του εκάστοτε προιόντος. Αυτό που θέλω είναι πως μπορώ να φιλτράρω τα αποτελέσματα ανοίγοντας στην σελίδα products αν βάλω μια παράμετρο, μια συγκεκριμένη κατηγορία? Δηλαδή έστω οτι κάποια προιόντα έχουν την κατηγορία με cat_id 5 και άλλα με cat_id 20. Πως μπορώ να ανοίξω την κατηγορία 20 αν βάλω στο url https://onoma.gr/products/20 ? Aν είχα ξεχωριστώ controller, πχ products.php με function product_view($cat_id), δεν θα είχα πρόβλημα. Τώρα όμως όπως το έχω κάνει όταν θα βάλω https://onoma.gr/products/ στην ουσία το default controller τρέχει να ανοίξει την σελίδα products.php οπότε αφού η παραμετρός μου στο default controller είναι 1 "view($page = 'home')", τότε αν τρέξω https://onoma.gr/products/20, πετάει σφάλμα. Επεξ/σία 30 Μαρτίου 2019 από hdonoblepsias
hdonoblepsias Δημοσ. 30 Μαρτίου 2019 Μέλος Δημοσ. 30 Μαρτίου 2019 (επεξεργασμένο) H Λύση: Έφτιαξα ένα controller "products" και ονόμασα το view αρχείο "productsview.php" 😂 τόσο απλό. Το νέο πρόβλημα: Μεσα στο νέο λοιπόν κοντρόλερ "Products.php" καλώ για view, πάλι το header, το productsview, και το footer. Στο header εχω και το λογότυπο με src="<?php echo base_url();?>assets/my_images/logo.png" οπού στην αρχική φαίνεται μια χαρά. Όταν όμως τρέχω το controller https://onoma.gr/products/view τότε το logo χάνεται και κοιτώντας το source code έχει το path src"https://onoma.gr/products/assets/my_images/logo.png". To echo base_url δεν θα έπρεπε παντού να είναι το ίδιο? επίσης κάνοντας ένα <?php echo base_url();?> στο header, ακόμα και όταν είμαι στα products/view, δείχνει https://onoma.gr/ άρα στο ίδιο div πως γίνεται στο src="<?php echo base_url();?>assets/my_images/logo.png", να προσθέτει το /products/ ??? Επίσης και στο μενού, τα link. που έχουν πχ url href="<?php echo base_url();?>contact", πλεόν όταν είμαι στα προιόντα, αν κάνω click προσπαθούν να ανοίξουν το λινκ href="<?php echo base_url();?>products/contact" Επεξ/σία 30 Μαρτίου 2019 από hdonoblepsias
παπι Δημοσ. 1 Απριλίου 2019 Δημοσ. 1 Απριλίου 2019 Καπου εχει ενα config που σεταρεις το base_url. Btw γιατι δε πας σε laravel?
hdonoblepsias Δημοσ. 1 Απριλίου 2019 Μέλος Δημοσ. 1 Απριλίου 2019 (επεξεργασμένο) 9 ώρες πριν, παπι είπε Καπου εχει ενα config που σεταρεις το base_url. Btw γιατι δε πας σε laravel? Στο 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? Εννοω αρκετα καλυτερο για να μπω στην διαδικασια; Επεξ/σία 1 Απριλίου 2019 από hdonoblepsias
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα