Symfony REST API Service with Data-Import Tooling (Early R&D)
Why It Exists
An early-career backend built on the Symfony REST Edition skeleton, used to learn and assemble a production-style PHP REST API with authentication, serialization, and supporting data-import tooling. It is framed honestly as foundational R&D rather than a finished product.
Overview
A PHP/Symfony 2.7 service scaffolded from the Symfony REST Edition, extended with a custom AppBundle and standalone import scripts. The stack pulls in the common REST toolchain, FOSRestBundle, JMS Serializer, NelmioApiDocBundle, NelmioCorsBundle, FOSUserBundle, and JWT auth (gfreeau/get-jwt-bundle), plus dompdf for PDF output and a Mailgun Swiftmailer bridge for email.
What We Built
The repository follows the Symfony REST Edition layout (app/, src/AppBundle, web/, conf/) with Doctrine ORM for persistence and Twig for any server-rendered views. Custom import.php / importf.php scripts and seed JSON files (d.json, note.json) handle bringing external data into the system. Operationally it ships a Dockerfile, separate docker-compose.prod.yml / docker-compose.staging.yml files, a run.sh entrypoint, and Travis CI, reflecting an intent to run it as a real, multi-environment service.
Technologies & Approach
Symfony 2.7 with Doctrine, FOSRestBundle, and JMS Serializer for a conventional REST API; JWT for stateless auth; HTTP-cache and HATEOAS bundles for API ergonomics; Docker + docker-compose for staging/production parity. The import scripts show early data-engineering instincts layered onto the framework.
Outcome / Impact
A working Symfony REST API scaffold with authentication, serialization, PDF/email, and data import, containerized for multiple environments. As early R&D it primarily demonstrates command of the PHP/Symfony ecosystem and REST API fundamentals.
Capabilities Demonstrated
- REST API construction with Symfony, FOSRestBundle, and JMS Serializer
- JWT-based authentication and CORS handling
- Doctrine ORM persistence and data-import scripting
- PDF generation and email delivery; Dockerized multi-environment setup