встал вопрос как в нем работать с данными
Любым удобным для вас способом. SIlex это тупо http фреймворк, он не предоставляет ничего из коробки для работы с базой данных. Юзайте хоть PDO хоть ORM любую.
слышал что есть какие-то провайдеры
Сервис провайдеры, они используются для регистрации зависимостей. Читайте документацию.
Вообщем мне нужен некий класс который инкапсулирует работу с данными
Это не один класс как правило, далеко не один. Либо читайте про DAO/TableGateway.
и чтобы в дальнейшем использовать его методы в контроллерах
Контроллеры служат одной цели. Сконвертить результат работы приложения в HTTP ответ или из HTTP ответа сформировать обращение к приложению. Ну то есть "приложение" - это просто какой-то php код. При помощи сервис провайдеров вы можете регистрировать код в контейнере зависимостей и брать нужный в контроллерах.
Попробуйте разобраться сначала с тем, что такое сервис локатор, инъекция зависимостей, инверсия управления... И не думайте что есть "правильный" способ работы с базой данных в silex. Там просто нет работы с базой данных из коробки.