message: Fix bootstrap.
diff: <?php
  require_once __DIR__ . '/config.php'; // (`once` because it may required in skip when we run phpt)
  +// PHP settings
  error_reporting(E_ALL ^ E_DEPRECATED);
  ini_set('memory_limit', '1024M');
  ini_set('assert.active', 1);
  @@ -9,6 +10,7 @@ assert_options(ASSERT_WARNING, 1);
  assert_options(ASSERT_BAIL, 0);
  assert_options(ASSERT_QUIET_EVAL, 0);
  +// Swoole settings
  swoole_async_set([
  'socket_dontwait' => 1,
  'disable_dns_cache' => true,
  @@ -24,13 +26,16 @@ if (empty(getenv('SWOOLE_DEBUG')) && method_exists('Co', 'set')) {
  ]);
  }
  -if (!is_dir(__DIR__ . '/lib/vendor')) {
  +// Components
  +(function () {
  + $autoloader = __DIR__ . '/lib/vendor/autoload.php';
  + if (!file_exists($autoloader)) {
  $composer_dir = __DIR__ . '/lib';
  $composer_info = `cd {$composer_dir} && composer install 2>&1`;
  - if (strpos($composer_info, 'Generating autoload files') === false) {
  - throw new RuntimeException('Composer install failed');
  + if (!file_exists($autoloader)) {
  + throw new RuntimeException('Composer install failed:' . PHP_EOL . $composer_info);
  }
  -} else {
  - require_once __DIR__ . '/lib/vendor/autoload.php';
  - class_alias('Webmozart\Assert\Assert', 'Assert');
  }
  + require $autoloader;
  +})();
  +class_alias('Webmozart\Assert\Assert', 'Assert');
  