JMSSerializer stand alone: ​​la anotación no existe o no se puede cargar automáticamente

Estoy intentando usar JMSSerializer como una biblioteca independiente para asignar las respuestas JSON de una API a mis clases modelo y tengo algunos problemas.

Ejecutar el siguiente código da como resultado una excepción:

<?php
require dirname(__DIR__) . '/vendor/autoload.php';

use JMS\Serializer\Annotation AS JMS;

class Trii {
    /**
     * User ID for this session
     * @JMS\SerializedName("userID")
     * @JMS\Annotation(getter="getUserId")
     * @JMS\Type("string")
     * @var string
     */
    private $userId;

    public function getUserId() {
        return $this->userId;
    }

    public function setUserId($userId) {
        $this->userId = $userId;
    }
}

$serializer = \JMS\Serializer\SerializerBuilder::create()->setDebug(true)->build();
$object = $serializer->deserialize('{"userID":"Trii"}', 'Trii', 'json');
var_dump($object);
?>

Aquí está la excepción.

Doctrine\Common\Annotations\AnnotationException: [Semantical Error] The annotation "@JMS\Serializer\Annotation\SerializedName" in property Trii::$userId does not exist, or could not be auto-loaded.

Tengo las siguientes bibliotecas instaladas para el proyecto a través del compositor

{
    "require": {
        "jms/serializer": "1.0.*@dev"
    }
}

¿Hay algo obvio que me estoy perdiendo ya que no estoy usando toda la solución de Doctrine 2?

EDITAR: mi solución final fue crear un archivo bootstrap con el siguiente contenido:

<?php
// standard composer install vendor autoload magic
require dirname(__DIR__) . '/vendor/autoload.php';

// Bootstrap the JMS custom annotations for Object to Json mapping
\Doctrine\Common\Annotations\AnnotationRegistry::registerAutoloadNamespace(
    'JMS\Serializer\Annotation',
    dirname(__DIR__).'/vendor/jms/serializer/src'
);
?>

Respuestas a la pregunta(6)

Su respuesta a la pregunta