$30 off During Our Annual Pro Sale. View Details »

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. BLAZING FAST LOCAL DEVELOPMENT SETUP 4 — © Luminus Alabi

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

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

    © Luminus Alabi | WordCamp Brighton 2018
  7. LARAVEL VALET > No Vagrant > No Docker > No

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

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

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

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

    2 Valet Linux and Valet Windows 13 — © Luminus Alabi | WordCamp Brighton 2018
  14. VALET+ 3 3 https://github.com/weprovide/valet-plus 14 — © Luminus Alabi |

    WordCamp Brighton 2018
  15. VALET+ > 3rd Party fork of Laravel Valet > Includes

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

    use 7.1 > valet use 7.2 16 — © Luminus Alabi | WordCamp Brighton 2018
  17. VALET+ Xdebug support 17 — © Luminus Alabi | WordCamp

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

    2018
  19. VALET+ Subdomains > valet subdomain list > valet subdomain add

    <subdomain> 19 — © Luminus Alabi | WordCamp Brighton 2018
  20. VALET+ WP-CLI 20 — © Luminus Alabi | WordCamp Brighton

    2018
  21. 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
  22. 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
  23. 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
  24. MAKING MAGIC WITH WP-CLI 24 — © Luminus Alabi |

    WordCamp Brighton 2018
  25. SETTING UP A NEW WORDPRESS SITE WITH WP-CLI 25 —

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

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

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

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

    skip-content: true 33 — © Luminus Alabi | WordCamp Brighton 2018
  34. MY ~/.wp-cli/config.yml FILE Core install core install: admin_user: luminus admin_password:

    password admin_email: admin@testdomain.test 34 — © Luminus Alabi | WordCamp Brighton 2018
  35. 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
  36. KICKING IT UP A NOTCH WITH BASH SCRIPTING 36 —

    © Luminus Alabi | WordCamp Brighton 2018
  37. 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
  38. 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
  39. 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
  40. 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
  41. WC-Site Demo Demo 3 Demo 3 WC-Site script in action

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

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

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

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

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

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

    49 — © Luminus Alabi | WordCamp Brighton 2018
  50. 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
  51. 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
  52. ITERM2, Z, HUB, GITUP 52 — © Luminus Alabi |

    WordCamp Brighton 2018
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. RECAP 58 — © Luminus Alabi | WordCamp Brighton 2018

  59. RECAP > Blazing Fast Local Development Setup > Making magic

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