Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Increase Your Productivity - The Local WordPress Development Toolset of Your Dreams

Increase Your Productivity - The Local WordPress Development Toolset of Your Dreams

Luminus Olumide Alabi

August 17, 2018
Tweet

More Decks by Luminus Olumide Alabi

Other Decks in Technology

Transcript

  1. INCREASE YOUR PRODUCTIVITY THE LOCAL WORDPRESS DEVELOPMENT TOOLSET OF YOUR

    DREAMS 1 — © Luminus Alabi | WordCamp Brighton 2018
  2. 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
  3. WHY WE'RE HERE > Blazing Fast Local Development Setup >

    Making magic with WP-CLI > Supercharging your Terminal experience 3 — © Luminus Alabi | WordCamp Brighton 2018
  4. LARAVEL VALET > No Vagrant > No Docker > No

    /etc/hosts file > No headache 7 — © Luminus Alabi | WordCamp Brighton 2018
  5. LARAVEL VALET Blazing fast and uses roughly 7 MB of

    RAM. 8 — © Luminus Alabi | WordCamp Brighton 2018
  6. LARAVEL VALET Configures your Mac to always run Nginx in

    the background when your machine starts 9 — © Luminus Alabi | WordCamp Brighton 2018
  7. 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
  8. 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
  9. LARAVEL VALET > Out of the box support for 20+

    Frameworks/CMSes > Extensible to support more via custom drivers 12 — © Luminus Alabi | WordCamp Brighton 2018
  10. LARAVEL VALET Linux & Windows users aren't left out 2

    2 Valet Linux and Valet Windows 13 — © Luminus Alabi | WordCamp Brighton 2018
  11. VALET+ > 3rd Party fork of Laravel Valet > Includes

    additional functionality 15 — © Luminus Alabi | WordCamp Brighton 2018
  12. VALET+ PHP version switching > valet use 5.6 > valet

    use 7.1 > valet use 7.2 16 — © Luminus Alabi | WordCamp Brighton 2018
  13. VALET+ Subdomains > valet subdomain list > valet subdomain add

    <subdomain> 19 — © Luminus Alabi | WordCamp Brighton 2018
  14. 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
  15. 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
  16. 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
  17. SETTING UP A NEW WORDPRESS SITE WITH WP-CLI 25 —

    © Luminus Alabi | WordCamp Brighton 2018
  18. WP-CLI Demo Demo 1 Demo 1 Setting up a new

    WordPress site with WP-CLI 26 — © Luminus Alabi | WordCamp Brighton 2018
  19. 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
  20. 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
  21. WP-CLI Valet Command Demo Demo 2 Demo 2 WP-CLI Valet

    Command Demo 29 — © Luminus Alabi | WordCamp Brighton 2018
  22. BENDING WP-CLI SITE CREATION TO YOUR WILL THROUGH CONFIG FILES

    30 — © Luminus Alabi | WordCamp Brighton 2018
  23. 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
  24. 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
  25. MY ~/.wp-cli/config.yml FILE Core download core download: # locale: nl_NL

    skip-content: true 33 — © Luminus Alabi | WordCamp Brighton 2018
  26. 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
  27. 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
  28. KICKING IT UP A NOTCH WITH BASH SCRIPTING 36 —

    © Luminus Alabi | WordCamp Brighton 2018
  29. 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
  30. MY wc-site SCRIPT #!/bin/bash # Function to display usage instructions

    when the command is used incorrectly function usage { echo "usage: wc-site <name> [--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
  31. 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
  32. 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_<name>` 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
  33. WC-Site Demo Demo 3 Demo 3 WC-Site script in action

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

    — © Luminus Alabi | WordCamp Brighton 2018
  35. ZSH > Extended Bourne shell with a large number of

    improvements. > Oh-My-Zsh makes all the magic happen 44 — © Luminus Alabi | WordCamp Brighton 2018
  36. 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
  37. OH-MY-ZSH Say goodbye to cd for changing directories. 46 —

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

    — © Luminus Alabi | WordCamp Brighton 2018
  39. 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
  40. Take Command Demo Demo 5 Demo 5 Take Command Demo

    49 — © Luminus Alabi | WordCamp Brighton 2018
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. 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
  47. 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
  48. RECAP > Blazing Fast Local Development Setup > Making magic

    with WP-CLI > Supercharging your Terminal experience 59 — © Luminus Alabi | WordCamp Brighton 2018