Bedrock 1.1.1 Updates

There's been quite a few updates and improvements to Bedrock since the initial release that it warrants a new post and a quick look into the changes.

Web directory

The biggest change was introducing a web/ subdirectory that contains your WordPress application and the WP core only. Previously everything was in the same root project folder which led to some security issues with various configuration files being web accessible unless you explicitly blocked access to them from Nginx or Apache.

This was an annoying step that's now solved by simply creating a server/virtual host that points directly to the web/ directory as its document root. Beyond the security benefits, it's also just a better separation of concerns.

Auto-generating .env

Previously after cloning or running composer create-project to start a new Bedrock project, you'd have to manually create your .env file and generate your own salts.

Now we've included a script that runs on Composer's post-root-package-install (which just means it runs after composer create-project). Composer will prompt you to generate a .env file, and if you say yes, a fresh .env file will be created with all 8 salts/keys randomly generated for you.

The script can be found at scripts/Bedrock/Installer.php and may be extended in the future to interactively prompt for other env vars such as database credentials WP settings.

Just remember that the best way to start a new Bedrock project is to run:

composer create-project roots/bedrock <path>

If you want the latest changes from GitHub master, use the following:

composer create-project roots/bedrock <path> dev-master

WordPress Packagist Namespaces

This isn't so much a Bedrock change, but it's worth noting regardless. The awesome WordPress Packagist recently changed their package namespaces to better separate plugins and themes.

Previously all the namespaces were just wpackagist. Now you need to use the package type as well:

  • wpackagist-plugin
  • wpackagist-theme

What's Next?

The next major feature will be the long-promised Vagrant integration. This will also include full configuration management for development and production servers. This will be handled by Ansible. We feel that it's the simplest and quickest tool rather than going with either of the Ruby-based Chef or Puppet.

Related Screencasts

Using Composer with WordPress

Introduction to deploying WordPress with Capistrano. If you say a prayer or cross your fingers before a deploy, then this is the screencast for you.

Preview & More Info

Deploying WordPress with Capistrano

An in-depth introduction to dependency management in PHP using Composer and more importantly, why you should use it with WordPress.

Preview & More Info

Help support our open-source development efforts

Help us grow

Join over 7,800+ subscribers on our newsletter to get the latest Roots updates, along with occasional tips on building better WordPress sites.

Looking for WordPress plugin recommendations, the newest modern WordPress projects, and general web development tips and articles?

“Easily the best WordPress email I get.” Colin OBrien

Follow us on Twitter @rootswp

Ready to checkout?