WordPress Local Development στα Windows
Είναι πολύ πρακτικά ειδικά όταν κάνουμε custom development στο WordPress να μη δουλεύουμε κατευθείαν σε κάποιον server, έστω dev αλλά τοπικά στον υπολογιστή μας. Έτσι έχουμε πολλά πλεονεκτήματα. Δεν χρειάζεται να ανέβει κάποιο αρχείο για να δούμε αλλαγές και όλα γίνονται πολύ γρήγορα. Επίσης μας δίνετε η ευκαιρία να χρησιμοποιήσουμε εργαλεία όπως το Gulp και το Browsersync ώστε να γίνουν όλα πιο γρήγορα. Τέλος μπορούμε εύκολα να χρησιμοποιήσουμε το cli του υπολογιστή (δηλαδή την γραμμή εντολών) για διάφορα πράγματα όπως για να κάνουμε versioning (git) ή διάφορες άλλες εντολές που σχετίζονται με το wp (πχ import, search and replace κοκ).
Στην περίπτωση που έχουμε windows το stack που χρησιμοποιόύμε στη Sociality είναι τα εξής:
- XAMPP σαν local server (Apache, MariaDB, PHP)
- Git for Windows για cli σε περιβάλλον windows
- Bitbucket για Git Repositorty
- Sublime ή Visual Studio Code για coding
- WP-CLI για εντολές WP στο CLI
- Understrap και Understrap Child για custom theming που είναι βασισμένο σε Bootstrap και έχει και Gulp και Browser Sync
Ας πάμε να τα δούμε ένα ένα:
XAMPP Local Server
Ο XAMPP είναι ένας Local Server που έχει ότι χρειάζεται για να ξεκινήσεις στήσεις ένα php+sql stack είτε WordPresss είτε Drupal είτε Joomla. Δεν χρειάζεται να πούμε πολλά. Το κατεβάζεις και είναι plug + play. Βάζεις τα αρχεία σου στο htdos και μπορείς να διαχειριστείς τη βάση από το phpmyadmin που δίνει.
Μαζί το το XAMPP κατεβάζεις και την php και τη mysql. Αυτά καλό είναι να μπορείς να τα μπορείς να χρησιμοποιήσεις και globally στο cli σου. Για τον σκοπό αυτό καλό θα ήταν να τα προσθέσεις στα Global Variables των windows σου ως εξής: Κάνεις search στο Windows το “Edit environment variables for your account” και εκεί προσθέτεις τα εξής: α) C:\xampp\php β) C:\xampp\mysql\bin αν δηλαδή το xampp είναι στο root directory του στο C (κάτι που προτείνουμε).
Git For Windows
Εδώ επίσης το κατεβάζεις και είναι plug and play. Κράτα το ενημερωμένο γιατί δεν ανανεώνεται αυτόματα και έχει σημασία γιατί μπορούν να σκάνε διάφορα πράγματα ειδικά σε Node.js. Με δεξί κλικ θα μπορείς να ανοίγεις cli παντού και να χρησιμοποιείς όλες τις git εντολές και ότι άλλο χρειάζεται. Μπορείτε να δείτε περισσότερα για το πως χρησιμοποιούμε το git εδώ. Επίσης μη ξεχάσετε να κάνετε gitignore ότι δεν χρειάζεται γιατί θα σας κλαίνε οι ρέγγες.
Bitbucket
Είναι ένα private git repo δηλαδή ο κώδικας που αποθηκεύεις εκεί είναι by default ιδιωτικός και επίσης είναι δωρεάν μέχρι 5 άτομα, κατά συνέπεια είναι ιδανικό για development εμπορικών project για πελάτες.
Sublime ή Visual Studio Code
Αυτοί είναι δύο διαφορετικοί Code Editors. Γενικά χρησιμοποιούμε το Sublime αλλά ο Visual Studio Code Editor έχει πολύ ωραίο interface για να κάνεις εύκολα resolve τυχόν conflict στο git. Μας αρέσουν επίσης και κάποια plugin του sublime που μπορείτε να δείτε εδώ.
WP – CLI
To WP CLI μας δίνει ένα σωρό ωραίες εντολές για να χειριστούμε εύκολα το wp από το cli. Για να το εγκαταστήσουμε το κατεβάζουμε από εδώ. Το βάζουμε στο root μέσα σένα φάκελο wp-cli μας και για να παίξει τόσο σε windows cmd όσο και σε windows git cli θα πρέπει να του βάλουμε και αυτά τα δύο αρχειάκια μαζί στο φάκελο. Το δηλώνουμε τέλος στο Edit environment variables for your account όπως κάναμε και προηγούμενο για php και sql (θα πρέπει βάσικα να έχουμε βάλει ήδη php και sql για να παίξει έτσι κι αλλιώς). Συγκεκριμένα προσθέτουμε στα paths το c:\wp-cli\.
Understrap και Understrap Child
Aυτά είναι τα theme που επιλέγουμε για να ξεκινήσουμε το development σαν boilerplate δηλαδή. Είναι bootstrap based κοκ. Απλά τα κατεβάζουμε και τα προσθέτουμε στα themes. Επί της ουσίας κώδικα γράφουμε στο child μόνο. Επίσης μέσα από εκεί μπορούμε να τρέξουμε τόσο το gulp όσο και το browser sync. Για να το κάνουμε αρκεί να τρέξουμε npm install και μετά στο gulp watch-bs μέσα στο φάκελο του child theme. Για να δουλέψει βέβαια θα πρέπει να έχουμε τόσο npm όσο και node.js εγκατεστημένη. Αυτό μεταξύ άλλων θα σας κάνει compile και την SASS αλλά και θα σας κάνει αυτόματα refresh το site σε κάθε αλλαγή του site. Προφανώς όλα αυτά είναι dev only και δεν πάνε production και δεν ανεβαίνουν και τα node_modules προφανώς στον live server.