Slide 1

Slide 1 text

INCREASE YOUR PRODUCTIVITY THE LOCAL WORDPRESS DEVELOPMENT TOOLSET OF YOUR DREAMS 1 — © Luminus Alabi | WordCamp Brighton 2018

Slide 2

Slide 2 text

LUMINUS ALABI HI > Happiness Engineer @ Automattic > 7th degree Black Belt at Hanging Out > Equal Opportunities Hugs Dispenser Hi ! @luminus // " https://luminus.alabi.blog 2 — © Luminus Alabi | WordCamp Brighton 2018

Slide 3

Slide 3 text

WHY WE'RE HERE > Blazing Fast Local Development Setup > Making magic with WP-CLI > Supercharging your Terminal experience 3 — © Luminus Alabi | WordCamp Brighton 2018

Slide 4

Slide 4 text

BLAZING FAST LOCAL DEVELOPMENT SETUP 4 — © Luminus Alabi | WordCamp Brighton 2018

Slide 5

Slide 5 text

LARAVEL VALET 1 1 https://laravel.com/docs/5.6/valet 5 — © Luminus Alabi | WordCamp Brighton 2018

Slide 6

Slide 6 text

LARAVEL VALET PHP Development environment for Mac minimalists. 6 — © Luminus Alabi | WordCamp Brighton 2018

Slide 7

Slide 7 text

LARAVEL VALET > No Vagrant > No Docker > No /etc/hosts file > No headache 7 — © Luminus Alabi | WordCamp Brighton 2018

Slide 8

Slide 8 text

LARAVEL VALET Blazing fast and uses roughly 7 MB of RAM. 8 — © Luminus Alabi | WordCamp Brighton 2018

Slide 9

Slide 9 text

LARAVEL VALET Configures your Mac to always run Nginx in the background when your machine starts 9 — © Luminus Alabi | WordCamp Brighton 2018

Slide 10

Slide 10 text

LARAVEL VALET Uses DnsMasq to proxy all requests on the *.test domain to point to sites installed on your local machine. 10 — © Luminus Alabi | WordCamp Brighton 2018

Slide 11

Slide 11 text

LARAVEL VALET Perfect if you prefer extreme speed, or are working on a machine with a limited amount of RAM 11 — © Luminus Alabi | WordCamp Brighton 2018

Slide 12

Slide 12 text

LARAVEL VALET > Out of the box support for 20+ Frameworks/CMSes > Extensible to support more via custom drivers 12 — © Luminus Alabi | WordCamp Brighton 2018

Slide 13

Slide 13 text

LARAVEL VALET Linux & Windows users aren't left out 2 2 Valet Linux and Valet Windows 13 — © Luminus Alabi | WordCamp Brighton 2018

Slide 14

Slide 14 text

VALET+ 3 3 https://github.com/weprovide/valet-plus 14 — © Luminus Alabi | WordCamp Brighton 2018

Slide 15

Slide 15 text

VALET+ > 3rd Party fork of Laravel Valet > Includes additional functionality 15 — © Luminus Alabi | WordCamp Brighton 2018

Slide 16

Slide 16 text

VALET+ PHP version switching > valet use 5.6 > valet use 7.1 > valet use 7.2 16 — © Luminus Alabi | WordCamp Brighton 2018

Slide 17

Slide 17 text

VALET+ Xdebug support 17 — © Luminus Alabi | WordCamp Brighton 2018

Slide 18

Slide 18 text

VALET+ Mailhog 18 — © Luminus Alabi | WordCamp Brighton 2018

Slide 19

Slide 19 text

VALET+ Subdomains > valet subdomain list > valet subdomain add 19 — © Luminus Alabi | WordCamp Brighton 2018

Slide 20

Slide 20 text

VALET+ WP-CLI 20 — © Luminus Alabi | WordCamp Brighton 2018

Slide 21

Slide 21 text

MIGRATING FROM VALET TO VALET+ 1. Install Valet+ globally with Composer 2. Remove Laravel Valet to prevent conflicts 3. Optional but Recommended: Update Composer 4. Run the valet install command 21 — © Luminus Alabi | WordCamp Brighton 2018

Slide 22

Slide 22 text

MIGRATING FROM VALET TO VALET+ > composer global require weprovide/valet-plus > composer global remove laravel/valet > composer global update > valet install 22 — © Luminus Alabi | WordCamp Brighton 2018

Slide 23

Slide 23 text

SERVING SITES 1. Create a Sites directory if you don’t already have one: mkdir ~/Sites 2. Navigate to that directory: cd ~/Sites 3. Set that directory as your project root: valet park 23 — © Luminus Alabi | WordCamp Brighton 2018

Slide 24

Slide 24 text

MAKING MAGIC WITH WP-CLI 24 — © Luminus Alabi | WordCamp Brighton 2018

Slide 25

Slide 25 text

SETTING UP A NEW WORDPRESS SITE WITH WP-CLI 25 — © Luminus Alabi | WordCamp Brighton 2018

Slide 26

Slide 26 text

WP-CLI Demo Demo 1 Demo 1 Setting up a new WordPress site with WP-CLI 26 — © Luminus Alabi | WordCamp Brighton 2018

Slide 27

Slide 27 text

SITE CREATION ON STEROIDS WITH THE WP-CLI VALET COMMAND 4 4 https://github.com/aaemnnosttv/wp-cli-valet-command 27 — © Luminus Alabi | WordCamp Brighton 2018

Slide 28

Slide 28 text

WP-CLI VALET COMMAND Custom WP-CLI command with 2 functions: > Create a new WordPress install -- fast > Completely remove an installation. 28 — © Luminus Alabi | WordCamp Brighton 2018

Slide 29

Slide 29 text

WP-CLI Valet Command Demo Demo 2 Demo 2 WP-CLI Valet Command Demo 29 — © Luminus Alabi | WordCamp Brighton 2018

Slide 30

Slide 30 text

BENDING WP-CLI SITE CREATION TO YOUR WILL THROUGH CONFIG FILES 30 — © Luminus Alabi | WordCamp Brighton 2018

Slide 31

Slide 31 text

Arguments are interpreted following an order of precedence, from highest priority to lowest: 1. Command-line arguments. 2. wp-cli.local.yml file inside the current working directory (or upwards). 3. wp-cli.yml file inside the current working directory (or upwards). 4. ~/.wp-cli/config.yml file. 5. WP-CLI defaults. 31 — © Luminus Alabi | WordCamp Brighton 2018

Slide 32

Slide 32 text

MY ~/.wp-cli/config.yml FILE 5 Core config core config: dbuser: root dbpass: root extra-php: | define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors',0); define( 'WCS_DEBUG', true ); 5 https://gist.github.com/Luminus/45e886809c81e325894a0825374065ec 32 — © Luminus Alabi | WordCamp Brighton 2018

Slide 33

Slide 33 text

MY ~/.wp-cli/config.yml FILE Core download core download: # locale: nl_NL skip-content: true 33 — © Luminus Alabi | WordCamp Brighton 2018

Slide 34

Slide 34 text

MY ~/.wp-cli/config.yml FILE Core install core install: admin_user: luminus admin_password: password admin_email: [email protected] 34 — © Luminus Alabi | WordCamp Brighton 2018

Slide 35

Slide 35 text

MY ~/.wp-cli/config.yml FILE Valet new & Valet destroy valet new: admin_user: luminus admin_password: password dbpass: root valet destroy: yes: true 35 — © Luminus Alabi | WordCamp Brighton 2018

Slide 36

Slide 36 text

KICKING IT UP A NOTCH WITH BASH SCRIPTING 36 — © Luminus Alabi | WordCamp Brighton 2018

Slide 37

Slide 37 text

MY wc-site SCRIPT 6 A single command to create a new WordPress site with: > WooCommerce plugin installed and activated > Storefront theme installed and activated > Default browser launched with my Admin user already logged in to WP-Admin 6 https://gist.github.com/Luminus/363f5c381b2ba279c747fc2c2913917c 37 — © Luminus Alabi | WordCamp Brighton 2018

Slide 38

Slide 38 text

MY wc-site SCRIPT #!/bin/bash # Function to display usage instructions when the command is used incorrectly function usage { echo "usage: wc-site [--master]" echo "e.g. wc-site gradient will create a site at https://gradient.test" echo "The \"--master\" switch will install the current WooCommerce master from Github" exit 1 } 38 — © Luminus Alabi | WordCamp Brighton 2018

Slide 39

Slide 39 text

MY wc-site SCRIPT # If the wc-site command is run without the site name, display usage instructions if [[ -z "$1" ]]; then usage else # If only the site name is supplied, assume WordPress.org version of WooCommerce is wanted if [[ -z "$2" ]]; then woo="woocommerce" # If master switch is used then current WooCommerce master from Github is wanted elif [[ $2 = "--master" ]]; then woo="https://github.com/woocommerce/woocommerce/archive/master.zip" # If a second argument other than "--master" is supplied, teach the user how to do it else usage fi fi 39 — © Luminus Alabi | WordCamp Brighton 2018

Slide 40

Slide 40 text

MY wc-site SCRIPT # Change current directory to Sites cd ~/www/sites/ # Create WordPress site. Set the database name to be the same as the site name. # wp valet uses `wp_` which I'm not keen on wp valet new $1 --dbname=$1 # Change current directory to the new site so you can work your WP-CLI magic cd ~/www/sites/$1 # Install & Activate WooCommerce based on whether the master switch is used or not. wp plugin install $woo --activate # Install & Activate Storefront wp theme install storefront --activate # Install & Activate the WP-CLI Login Companion Plugin wp login install --activate # Update permalink structure wp rewrite structure '/%year%/%monthnum%/%day%/%postname%/' # Launch the site in your default browser # valet open $1 # Launch the site's /wp-admin/ in your default browser # wp admin # Generate a Magic Link and Log in to the site in your default browser # Luminus is the default admin username for my local sites wp login as luminus --launch 40 — © Luminus Alabi | WordCamp Brighton 2018

Slide 41

Slide 41 text

WC-Site Demo Demo 3 Demo 3 WC-Site script in action 41 — © Luminus Alabi | WordCamp Brighton 2018

Slide 42

Slide 42 text

SUPER CHARGING YOUR TERMINAL EXPERIENCE 42 — © Luminus Alabi | WordCamp Brighton 2018

Slide 43

Slide 43 text

ZSH AND OH-MY-ZSH 7 7 Installing ZSH and https://ohmyz.sh/ 43 — © Luminus Alabi | WordCamp Brighton 2018

Slide 44

Slide 44 text

ZSH > Extended Bourne shell with a large number of improvements. > Oh-My-Zsh makes all the magic happen 44 — © Luminus Alabi | WordCamp Brighton 2018

Slide 45

Slide 45 text

OH-MY-ZSH > Community-driven framework for managing your ZSH configurations > Bundled with loads of helpful functions, plugins & themes > Will make you shout… Oh My ZSH! > Windows 10 users can get in on it 8 8 https://www.maketecheasier.com/install-zsh-and-oh-my-zsh-windows10/ 45 — © Luminus Alabi | WordCamp Brighton 2018

Slide 46

Slide 46 text

OH-MY-ZSH Say goodbye to cd for changing directories. 46 — © Luminus Alabi | WordCamp Brighton 2018

Slide 47

Slide 47 text

No cd Demo Demo 4 Demo 4 NO cd 47 — © Luminus Alabi | WordCamp Brighton 2018

Slide 48

Slide 48 text

OH-MY-ZSH Say hello to the take command: > Create a new directory and change to it. > Will even create intermediate directories as required. 48 — © Luminus Alabi | WordCamp Brighton 2018

Slide 49

Slide 49 text

Take Command Demo Demo 5 Demo 5 Take Command Demo 49 — © Luminus Alabi | WordCamp Brighton 2018

Slide 50

Slide 50 text

OH-MY-ZSH Quick aliases for Git introduced by the git plugin 9 > gcl instead of git clone > gaa instead of git add --all > gcmsg instead of git commit -m > gp instead of git push > gcb instead of git checkout -b 9 GIT Plugin Cheat sheet 50 — © Luminus Alabi | WordCamp Brighton 2018

Slide 51

Slide 51 text

OH-MY-ZSH WP-CLI aliases for speeding up WordPress tasks 10 > wppi woocommerce instead of wp plugin install woocommerce > wpta storefront instead of wp theme activate storefront 10 WP-CLI Plugin Cheat sheet 51 — © Luminus Alabi | WordCamp Brighton 2018

Slide 52

Slide 52 text

ITERM2, Z, HUB, GITUP 52 — © Luminus Alabi | WordCamp Brighton 2018

Slide 53

Slide 53 text

ITERM2 11 > Replacement for the Mac OS terminal > Brings features you never knew you always wanted: > Split Panes > Hotkey Window > Inline Images 11 iTerm2 Features 53 — © Luminus Alabi | WordCamp Brighton 2018

Slide 54

Slide 54 text

Z 12 > Jump around in the terminal > Tracks most used directories based on 'frecency' > Frecency is a portmanteau of ‘recent’ and ‘frequency’ > Goes to most 'frecent' directory matching your request > z sites goes to your Sites directory > Quicker than using cd and memorising exact paths 12 https://github.com/rupa/z 54 — © Luminus Alabi | WordCamp Brighton 2018

Slide 55

Slide 55 text

HUB 13 > Command-line wrapper for git > Makes working with GitHub easier > Useful for contributors as well as maintainers > git clone cool-stuff - clone your own project > git clone woocommerce/woocommerce vs git:// github.com/woocommerce/woocommerce.git 13 https://hub.github.com/ 55 — © Luminus Alabi | WordCamp Brighton 2018

Slide 56

Slide 56 text

GITUP 14 > For updating multiple git repositories at once > Smart enough to handle several remotes > Works on OS X, Linux, and Windows > gitup . updates all repos in current directory 14 https://github.com/earwig/git-repo-updater 56 — © Luminus Alabi | WordCamp Brighton 2018

Slide 57

Slide 57 text

COMMAND LINE POWER USER 15 Online Video Course covering: > CLI Basics > iTerm2 > ZSH & Z 15 Wes Bos's Free Command Line Power User course. 57 — © Luminus Alabi | WordCamp Brighton 2018

Slide 58

Slide 58 text

RECAP 58 — © Luminus Alabi | WordCamp Brighton 2018

Slide 59

Slide 59 text

RECAP > Blazing Fast Local Development Setup > Making magic with WP-CLI > Supercharging your Terminal experience 59 — © Luminus Alabi | WordCamp Brighton 2018