Awesome
pomander-wordpress - Wordpress tasks for Pomander
This is a plugin to help fully manage your Wordpress projects with the help of Pomander.
Install
$ composer require pomander/wordpress:@stable
Requirements:
Getting Started
Installation
Load the plugin in your environment configuration:
<?php
$env->load("Wordpress");
That's it! Use pom -T
to see the new tasks that you have.
Local Development
Pomander-wordpress provides a simple task for pulling down and setting up Wordpress locally so that you don't need to manage any of that when you are developing Wordpress sites on your local machine:
$ pom setup
Added Tasks
deploy:plugins Deploy plugins in environment.
deploy:wordpress Deploy Wordpress in environment.
htaccess Create and deploy .htaccess for environments
setup Alias of wpify
uploads:pull Download uploads from environment
uploads:push Place all local uploads into environment
wp_config Create and deploy wp-config.php for environment
wpify Wordpress task stack for local machine (1 and done)
Configuration
This plugin introduces a wordpress option, and a plugins option. These are both array structures that you can configure either in a PHP based config, or a YAML based config.
An example of what a .php config for a Wordpress might look like:
$env->database(array(
'name' => 'my_wordpress',
'user' => 'root',
'password' => '',
'host' => '127.0.0.1',
'charset' => 'utf8'
));
$env->wordpress(array(
'version' => '3.5.2',
'db_prefix' => 'wp_',
'base_uri' => ''
));
$env->plugins(array(
'advanced-custom-fields' => array('version' => 'latest'),
'gravityforms' => array('dir' => 'lib/gravityforms')
));
And an example of a YAML based config:
database:
name: my_wordpress
user: root
password:
host: 127.0.0.1
charset: utf8
wordpress:
version: 3.5.2
db_prefix: wp_
base_uri: /wordpress # Base uri for Wordpress installation (example: dev.local/wordpress)
plugins:
more-types: {version: latest}
more-fields: {version: 2.1, svn: http://plugins.svn.wordpress.org/more-fields}
gravityforms: {dir: some_other_dir/gravityforms}
my-plugin: {branch: origin/master, git: https://github.com/dude/my-plugin.git}
Plugins can be provided with:
- version - defaults to "latest"
- location (git/svn/dir) - defaults to Wordpress plugin repository
- branch - Specify which branch of a repository to use
Structure
You can certainly use this plugin however you please, but some tasks are expecting a certain Wordpress structure that I feel is much better than the typical Wordpress folder structure. Here we go:
deploy/ This is where your Pomander configs go (nothing weird about that)
public/ Welcome to your new wp-content folder.
--- themes/
--- uploads/
vendor/ Plugins go in here.
--- plugins/
wordpress/ Your Wordpress installation goes here. You should never really have to go into this folder
wp-config.php See that? We keep wp-config outside of your wordpress installation for added security
Examples
Moving Uploads
Grab uploads from production to ease development:
$ pom production uploads:pull
You can chain commands to move uploads between environments:
$ pom production uploads:pull staging uploads:push