|
1 | 1 | <?php |
2 | 2 |
|
3 | | -use \Composer\Composer; |
4 | | -use \Composer\Config; |
5 | | -use \Composer\Config\JsonConfigSource; |
6 | | -use \Composer\DependencyResolver\Pool; |
7 | | -use \Composer\EventDispatcher\Event; |
8 | | -use \Composer\Factory; |
9 | | -use \Composer\IO\NullIO; |
10 | | -use \Composer\Installer; |
11 | | -use \Composer\Json\JsonFile; |
12 | | -use \Composer\Package; |
13 | | -use \Composer\Package\BasePackage; |
14 | | -use \Composer\Package\PackageInterface; |
15 | | -use \Composer\Package\Version\VersionParser; |
16 | | -use \Composer\Package\Version\VersionSelector; |
17 | | -use \Composer\Repository; |
18 | | -use \Composer\Repository\CompositeRepository; |
19 | | -use \Composer\Repository\ComposerRepository; |
20 | | -use \Composer\Repository\RepositoryManager; |
21 | | -use \Composer\Util\Filesystem; |
| 3 | +use Composer\Composer; |
| 4 | +use Composer\Config; |
| 5 | +use Composer\Config\JsonConfigSource; |
| 6 | +use Composer\DependencyResolver\Pool; |
| 7 | +use Composer\EventDispatcher\Event; |
| 8 | +use Composer\Factory; |
| 9 | +use Composer\IO\NullIO; |
| 10 | +use Composer\Installer; |
| 11 | +use Composer\Json\JsonFile; |
| 12 | +use Composer\Package; |
| 13 | +use Composer\Package\BasePackage; |
| 14 | +use Composer\Package\PackageInterface; |
| 15 | +use Composer\Package\Version\VersionParser; |
| 16 | +use Composer\Package\Version\VersionSelector; |
| 17 | +use Composer\Repository; |
| 18 | +use Composer\Repository\CompositeRepository; |
| 19 | +use Composer\Repository\ComposerRepository; |
| 20 | +use Composer\Repository\RepositoryManager; |
| 21 | +use Composer\Util\Filesystem; |
22 | 22 | use WP_CLI\ComposerIO; |
23 | 23 | use WP_CLI\Extractor; |
24 | 24 | use WP_CLI\Utils; |
@@ -82,6 +82,16 @@ class Package_Command extends WP_CLI_Command { |
82 | 82 |
|
83 | 83 | private $pool = false; |
84 | 84 |
|
| 85 | + private $author_data = [ |
| 86 | + 'name' => 'WP-CLI', |
| 87 | + |
| 88 | + ]; |
| 89 | + |
| 90 | + private $composer_type_package = [ |
| 91 | + 'type' => 'composer', |
| 92 | + 'url' => self::PACKAGE_INDEX_URL, |
| 93 | + ]; |
| 94 | + |
85 | 95 | /** |
86 | 96 | * Browses WP-CLI packages available for installation. |
87 | 97 | * |
@@ -310,38 +320,39 @@ public function install( $args, $assoc_args ) { |
310 | 320 | $json_manipulator->addLink( 'require', $package_name, $version, false /*sortPackages*/, true /*caseInsensitive*/ ); |
311 | 321 | $json_manipulator->addConfigSetting( 'secure-http', true ); |
312 | 322 |
|
| 323 | + $package_args = []; |
313 | 324 | if ( $git_package ) { |
314 | 325 | WP_CLI::log( sprintf( 'Registering %s as a VCS repository...', $git_package ) ); |
| 326 | + $package_args = [ |
| 327 | + 'type' => 'vcs', |
| 328 | + 'url' => $git_package, |
| 329 | + ]; |
315 | 330 | $json_manipulator->addSubNode( |
316 | 331 | 'repositories', |
317 | 332 | $package_name, |
318 | | - [ |
319 | | - 'type' => 'vcs', |
320 | | - 'url' => $git_package, |
321 | | - ], |
| 333 | + $package_args, |
322 | 334 | true /*caseInsensitive*/ |
323 | 335 | ); |
324 | 336 | } elseif ( $dir_package ) { |
325 | 337 | WP_CLI::log( sprintf( 'Registering %s as a path repository...', $dir_package ) ); |
| 338 | + $package_args = [ |
| 339 | + 'type' => 'path', |
| 340 | + 'url' => $dir_package, |
| 341 | + ]; |
326 | 342 | $json_manipulator->addSubNode( |
327 | 343 | 'repositories', |
328 | 344 | $package_name, |
329 | | - [ |
330 | | - 'type' => 'path', |
331 | | - 'url' => $dir_package, |
332 | | - ], |
| 345 | + $package_args, |
333 | 346 | true /*caseInsensitive*/ |
334 | 347 | ); |
335 | 348 | } |
336 | 349 | // If the composer file does not contain the current package index repository, refresh the repository definition. |
337 | 350 | if ( empty( $composer_backup_decoded['repositories']['wp-cli']['url'] ) || self::PACKAGE_INDEX_URL !== $composer_backup_decoded['repositories']['wp-cli']['url'] ) { |
338 | 351 | WP_CLI::log( 'Updating package index repository url...' ); |
| 352 | + $package_args = $this->composer_type_package; |
339 | 353 | $json_manipulator->addRepository( |
340 | 354 | 'wp-cli', |
341 | | - [ |
342 | | - 'type' => 'composer', |
343 | | - 'url' => self::PACKAGE_INDEX_URL, |
344 | | - ] |
| 355 | + $package_args |
345 | 356 | ); |
346 | 357 | } |
347 | 358 |
|
@@ -598,8 +609,8 @@ private function get_composer() { |
598 | 609 | // Best to just pretend we're installing a package from ~/.wp-cli or similar |
599 | 610 | chdir( pathinfo( $composer_path, PATHINFO_DIRNAME ) ); |
600 | 611 |
|
601 | | - // Prevent DateTime error/warning when no timezone set |
602 | | - // phpcs:ignore WordPress.WP.TimezoneChange.timezone_change_date_default_timezone_set, WordPress.PHP.NoSilencedErrors.Discouraged -- The package is loaded before WordPress load, For environments that don't have set time in php.ini. |
| 612 | + // Note: The package is loaded before WordPress load, For environments that don't have set time in php.ini. |
| 613 | + // phpcs:ignore WordPress.WP.TimezoneChange.timezone_change_date_default_timezone_set,WordPress.PHP.NoSilencedErrors.Discouraged |
603 | 614 | date_default_timezone_set( @date_default_timezone_get() ); |
604 | 615 |
|
605 | 616 | $composer = Factory::create( new NullIO(), $composer_path ); |
@@ -641,15 +652,14 @@ private function package_index() { |
641 | 652 | static $package_index; |
642 | 653 |
|
643 | 654 | if ( ! $package_index ) { |
644 | | - $config = new Config(); |
645 | | - $config->merge( |
646 | | - [ |
647 | | - 'config' => [ |
648 | | - 'secure-http' => true, |
649 | | - 'home' => dirname( $this->get_composer_json_path() ), |
650 | | - ], |
651 | | - ] |
652 | | - ); |
| 655 | + $config_args = [ |
| 656 | + 'config' => [ |
| 657 | + 'secure-http' => true, |
| 658 | + 'home' => dirname( $this->get_composer_json_path() ), |
| 659 | + ], |
| 660 | + ]; |
| 661 | + $config = new Config(); |
| 662 | + $config->merge( $config_args ); |
653 | 663 | $config->setConfigSource( new JsonConfigSource( $this->get_composer_json() ) ); |
654 | 664 |
|
655 | 665 | try { |
@@ -728,8 +738,8 @@ private function show_packages( $context, $packages, $assoc_args ) { |
728 | 738 |
|
729 | 739 | $list = array_map( |
730 | 740 | function( $package ) { |
731 | | - $package['version'] = implode( ', ', $package['version'] ); |
732 | | - return $package; |
| 741 | + $package['version'] = implode( ', ', $package['version'] ); |
| 742 | + return $package; |
733 | 743 | }, |
734 | 744 | $list |
735 | 745 | ); |
@@ -933,23 +943,15 @@ private function create_default_composer_json( $composer_path ) { |
933 | 943 |
|
934 | 944 | $json_file = new JsonFile( $composer_path ); |
935 | 945 |
|
936 | | - $author = (object) [ |
937 | | - 'name' => 'WP-CLI', |
938 | | - |
939 | | - ]; |
940 | | - |
941 | 946 | $repositories = (object) [ |
942 | | - 'wp-cli' => (object) [ |
943 | | - 'type' => 'composer', |
944 | | - 'url' => self::PACKAGE_INDEX_URL, |
945 | | - ], |
| 947 | + 'wp-cli' => (object) $this->composer_type_package, |
946 | 948 | ]; |
947 | 949 |
|
948 | 950 | $options = [ |
949 | 951 | 'name' => 'wp-cli/wp-cli', |
950 | 952 | 'description' => 'Installed community packages used by WP-CLI', |
951 | 953 | 'version' => self::get_wp_cli_version_composer(), |
952 | | - 'authors' => [ $author ], |
| 954 | + 'authors' => [ (object) $this->author_data ], |
953 | 955 | 'homepage' => self::PACKAGE_INDEX_URL, |
954 | 956 | 'require' => new stdClass(), |
955 | 957 | 'require-dev' => new stdClass(), |
@@ -1211,26 +1213,23 @@ private function register_revert_shutdown_function( $json_path, $composer_backup |
1211 | 1213 |
|
1212 | 1214 | register_shutdown_function( |
1213 | 1215 | function () use ( |
1214 | | - $json_path, |
1215 | | - $composer_backup, |
1216 | | - &$revert, |
1217 | | - $revert_msg, |
1218 | | - $revert_fail_msg, |
1219 | | - $memory_msg, |
1220 | | - $memory_string, |
1221 | | - $error_array |
| 1216 | + $json_path, |
| 1217 | + $composer_backup, |
| 1218 | + &$revert, |
| 1219 | + $revert_msg, |
| 1220 | + $revert_fail_msg, |
| 1221 | + $memory_msg, |
| 1222 | + $memory_string, |
| 1223 | + $error_array |
1222 | 1224 | ) { |
1223 | 1225 | if ( $revert ) { |
1224 | | - if ( false === file_put_contents( |
1225 | | - $json_path, |
1226 | | - $composer_backup |
1227 | | - ) ) { |
1228 | | - fwrite( STDERR, $revert_fail_msg ); |
| 1226 | + if ( false === file_put_contents( $json_path, $composer_backup ) ) { |
| 1227 | + fwrite( STDERR, $revert_fail_msg ); |
1229 | 1228 | } else { |
1230 | 1229 | fwrite( STDERR, $revert_msg ); |
1231 | 1230 | } |
1232 | 1231 | } |
1233 | | - $error_array = error_get_last(); |
| 1232 | + $error_array = error_get_last(); |
1234 | 1233 | if ( false !== strpos( $error_array['message'], $memory_string ) ) { |
1235 | 1234 | fwrite( STDERR, $memory_msg ); |
1236 | 1235 | } |
|
0 commit comments