Symfony自动服务加载失败,“类不存在”

I am trying the new automatic service loading using Symfony's Dependency Injection component (stand-alone, not within a Symfony app), version v3.3.13.

If I manually define a service, the class is loaded correctly:

# services.yml
myasset:
    class: Mysite\Asset\Asset

# in a PHP file
$container->get('myasset'); # works

If I set up automatic loading, it fails with the error message: ReflectionException: Class does not exist in /var/www/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1070

# services.yml
    _defaults:
        autowire: true
        autoconfigure: true
        public: false

    Bloggi\:
        resource: '../src/*'
        public: true

# in a PHP file
$container->get(Mysite\Asset\Asset::class);

The reason it fails is because the classes are found and service definitions created, but the class attribute on the definition is null for the automatically loaded services.

My DIC configuration looked like:

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;

$container = new ContainerBuilder();
$loader = new YamlFileLoader($container, new FileLocator(__DIR__));
$loader->load(__DIR__ . '/../config/services.yml');

The missing line was $container->compile();

The working definition

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;

$container = new ContainerBuilder();
$loader = new YamlFileLoader($container, new FileLocator(__DIR__));
$loader->load(__DIR__ . '/../config/services.yml');
$container->compile();