本文整理汇总了PHP中WP_CLI::get_php_binary方法的典型用法代码示例。如果您正苦于以下问题:PHP WP_CLI::get_php_binary方法的具体用法?PHP WP_CLI::get_php_binary怎么用?PHP WP_CLI::get_php_binary使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WP_CLI
的用法示例。
在下文中一共展示了WP_CLI::get_php_binary方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: update
/**
* Update WP-CLI to the latest release.
*
* Default behavior is to check the releases API for the newest stable
* version, and prompt if one is available.
*
* Use `--stable` to install or reinstall the latest stable version.
*
* Use `--nightly` to install the latest built version of the master branch.
* While not recommended for production, nightly contains the latest and
* greatest, and should be stable enough for development and staging
* environments.
*
* Only works for the Phar installation mechanism.
*
* ## OPTIONS
*
* [--patch]
* : Only perform patch updates.
*
* [--minor]
* : Only perform minor updates.
*
* [--major]
* : Only perform major updates.
*
* [--stable]
* : Update to the latest stable release. Skips update check.
*
* [--nightly]
* : Update to the latest built version of the master branch. Potentially unstable.
*
* [--yes]
* : Do not prompt for confirmation.
*
* ## EXAMPLES
*
* # Update CLI.
* $ wp cli update
* You have version 0.24.0. Would you like to update to 0.24.1? [y/n] y
* Downloading from https://github.com/wp-cli/wp-cli/releases/download/v0.24.1/wp-cli-0.24.1.phar...
* New version works. Proceeding to replace.
* Success: Updated WP-CLI to 0.24.1.
*/
public function update($_, $assoc_args)
{
if (!Utils\inside_phar()) {
WP_CLI::error("You can only self-update Phar files.");
}
$old_phar = realpath($_SERVER['argv'][0]);
if (!is_writable($old_phar)) {
WP_CLI::error(sprintf("%s is not writable by current user.", $old_phar));
} else {
if (!is_writeable(dirname($old_phar))) {
WP_CLI::error(sprintf("%s is not writable by current user.", dirname($old_phar)));
}
}
if (Utils\get_flag_value($assoc_args, 'nightly')) {
WP_CLI::confirm(sprintf('You have version %s. Would you like to update to the latest nightly?', WP_CLI_VERSION), $assoc_args);
$download_url = 'https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli-nightly.phar';
$md5_url = 'https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli-nightly.phar.md5';
} else {
if (Utils\get_flag_value($assoc_args, 'stable')) {
WP_CLI::confirm(sprintf('You have version %s. Would you like to update to the latest stable release?', WP_CLI_VERSION), $assoc_args);
$download_url = 'https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar';
$md5_url = 'https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.md5';
} else {
$updates = $this->get_updates($assoc_args);
if (empty($updates)) {
$update_type = $this->get_update_type_str($assoc_args);
WP_CLI::success("WP-CLI is at the latest{$update_type}version.");
return;
}
$newest = $updates[0];
WP_CLI::confirm(sprintf('You have version %s. Would you like to update to %s?', WP_CLI_VERSION, $newest['version']), $assoc_args);
$download_url = $newest['package_url'];
$md5_url = str_replace('.phar', '.phar.md5', $download_url);
}
}
WP_CLI::log(sprintf('Downloading from %s...', $download_url));
$temp = \WP_CLI\Utils\get_temp_dir() . uniqid('wp_') . '.phar';
$headers = array();
$options = array('timeout' => 600, 'filename' => $temp);
Utils\http_request('GET', $download_url, null, $headers, $options);
$md5_response = Utils\http_request('GET', $md5_url);
if (20 != substr($md5_response->status_code, 0, 2)) {
WP_CLI::error("Couldn't access md5 hash for release (HTTP code {$md5_response->status_code}).");
}
$md5_file = md5_file($temp);
$release_hash = trim($md5_response->body);
if ($md5_file === $release_hash) {
WP_CLI::log('md5 hash verified: ' . $release_hash);
} else {
WP_CLI::error("md5 hash for download ({$md5_file}) is different than the release hash ({$release_hash}).");
}
$allow_root = WP_CLI::get_runner()->config['allow-root'] ? '--allow-root' : '';
$php_binary = WP_CLI::get_php_binary();
$process = WP_CLI\Process::create("{$php_binary} {$temp} --info {$allow_root}");
$result = $process->run();
if (0 !== $result->return_code || false === stripos($result->stdout, 'WP-CLI version:')) {
//.........这里部分代码省略.........
示例2: update
/**
* Fetch most recent update matching the requirements. Returns the available versions if there are updates, or empty if no update available.
*
* ## OPTIONS
*
* [--patch]
* : Only perform patch updates
*
* [--minor]
* : Only perform minor updates
*
* [--major]
* : Only perform major updates
*
* [--nightly]
* : Update to the latest built version of the master branch. Potentially unstable.
*
* [--yes]
* : Do not prompt for confirmation
*/
public function update($_, $assoc_args)
{
if (!Utils\inside_phar()) {
WP_CLI::error("You can only self-update Phar files.");
}
$old_phar = realpath($_SERVER['argv'][0]);
if (!is_writable($old_phar)) {
WP_CLI::error(sprintf("%s is not writable by current user", $old_phar));
} else {
if (!is_writeable(dirname($old_phar))) {
WP_CLI::error(sprintf("%s is not writable by current user", dirname($old_phar)));
}
}
if (isset($assoc_args['nightly'])) {
WP_CLI::confirm(sprintf('You have version %s. Would you like to update to the latest nightly?', WP_CLI_VERSION), $assoc_args);
$download_url = 'https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli-nightly.phar';
} else {
$updates = $this->get_updates($assoc_args);
if (empty($updates)) {
$update_type = $this->get_update_type_str($assoc_args);
WP_CLI::success("WP-CLI is at the latest{$update_type}version.");
exit(0);
}
$newest = $updates[0];
WP_CLI::confirm(sprintf('You have version %s. Would you like to update to %s?', WP_CLI_VERSION, $newest['version']), $assoc_args);
$download_url = $newest['package_url'];
}
WP_CLI::log(sprintf('Downloading from %s...', $download_url));
$temp = \WP_CLI\Utils\get_temp_dir() . uniqid('wp_') . '.phar';
$headers = array();
$options = array('timeout' => 600, 'filename' => $temp);
Utils\http_request('GET', $download_url, null, $headers, $options);
$allow_root = WP_CLI::get_runner()->config['allow-root'] ? '--allow-root' : '';
$php_binary = WP_CLI::get_php_binary();
$process = WP_CLI\Process::create("{$php_binary} {$temp} --version {$allow_root}");
$result = $process->run();
if (0 !== $result->return_code) {
$multi_line = explode(PHP_EOL, $result->stderr);
WP_CLI::error_multi_line($multi_line);
WP_CLI::error('The downloaded PHAR is broken, try running wp cli update again.');
}
WP_CLI::log('New version works. Proceeding to replace.');
$mode = fileperms($old_phar) & 511;
if (false === @chmod($temp, $mode)) {
WP_CLI::error(sprintf("Cannot chmod %s", $temp));
}
class_exists('\\cli\\Colors');
// this autoloads \cli\Colors - after we move the file we no longer have access to this class
if (false === @rename($temp, $old_phar)) {
WP_CLI::error(sprintf("Cannot move %s to %s", $temp, $old_phar));
}
if (isset($assoc_args['nightly'])) {
$updated_version = 'the latest nightly release';
} else {
$updated_version = $newest['version'];
}
WP_CLI::success(sprintf('Updated WP-CLI to %s', $updated_version));
}