This is the third in a series about writing WP-CLI commands. The previous article explained how to import CSV files into a database table. In this, we describe how to add documentation.
The best feature of the WP-CLI commands is that they come with documentation. They follow in the Unix tradition of man
pages, where each command is explained in detail.
The code presented thus far has lacked documentation, so we’ll add some. The documentation is added with PHPDoc comment blocks. It’s explained well in the WP-CLI cookbook.
In the tradition of the last two posts in this series, this is a lean example, without any of the nice features. Look for the green comments.
[code language=”php”]
<?php
namespace JK\DMPM;
use \WP_CLI;
/**
* Imports CSV files into our application’s tables.
*/
class Import_Command {
/**
* Imports a CSV file from the USGS into
*/
public function cities() {
global $wpdb;
$tablename = $wpdb->prefix.’dmpm_city’;
fgetcsv(STDIN, 1024);
while ($fields = fgetcsv(STDIN, 1024, ‘|’)) {
$data = array();
$data[‘id’] = $fields[0];
$data[‘title’] = $fields[1];
$data[‘lat’] = $fields[12];
$data[‘lon’] = $fields[13];
if ($data[‘title’]) {
$wpdb->insert($tablename, $data);
}
}
}
/**
* Imports a CSV file from the federalgovernmentzipcodes.us.
*/
public function zips() {
global $wpdb;
$tablename = $wpdb->prefix.’dmpm_zip’;
fgetcsv(STDIN, 1024);
while ($fields = fgetcsv(STDIN, 1024)) {
$data = array();
$data[‘id’] = $fields[0];
$data[‘city’] = $fields[2];
$data[‘lat’] = $fields[5];
$data[‘lon’] = $fields[6];
$wpdb->insert($tablename, $data);
}
}
}
WP_CLI::add_command(‘bizdir import’, ‘JK\DMPM\Import_Command’);
[/code]
That’s only nine lines of comments. Now, here’s the magic part, when you type:
wp help bizdir import
You will see this:
wp bizdir import DESCRIPTION Imports CSV files into our application's tables. SYNOPSIS wp bizdir import SUBCOMMANDS cities Imports a CSV file from the USGS into zips Imports a CSV file from the federalgovernmentzipcodes.us.
You get so much benefit for so little work.