- Programming Language: PHP 8.3
- Framework: Symfony 7.2, API Platform 4 and Ecotone
- Testing Framework: PHPUnit 11
- Database: PostgreSQL 17.2
- Message Queue: RabbitMQ
- Search Engine: Elasticsearch
ext-ctype
(installed bysymfony/skeleton
):- A PHP extension required by Symfony for character type checks.
ext-iconv
(installed bysymfony/skeleton
):- A PHP extension required by Symfony for string encoding and conversion.
api-platform/doctrine-orm
(installed byapi-platform/api-pack
):- Provides integration of API Platform with the Doctrine ORM, allowing you to create RESTful APIs automatically from Doctrine entities.
api-platform/symfony
(installed byapi-platform/api-pack
):- The main Symfony integration for API Platform, providing configuration and customizations for your API.
doctrine/dbal
(installed byapi-platform/api-pack
):- The database abstraction layer for Doctrine. Provides database interaction, schema introspection, and SQL building capabilities.
doctrine/doctrine-bundle
(installed byapi-platform/api-pack
):- Symfony bundle for integrating Doctrine ORM into the framework, offering configuration, console commands, etc.
doctrine/doctrine-migrations-bundle
(installed byapi-platform/api-pack
):- Adds database migrations functionality to Symfony, enabling version control for database schemas.
doctrine/orm
(installed byapi-platform/api-pack
):- The Doctrine ORM (Object-Relational Mapper). Mainly used for mapping database tables/entities to PHP classes.
ecotone/jms-converter
(supplementsecotone/symfony-bundle
):- Allows serialization and deserialization of messages in a standardized format, enabling communication between different systems or components.
ecotone/pdo-event-sourcing
(supplementsecotone/symfony-bundle
):- Implements event sourcing using PDO (PHP Data Objects).
- Helps in persisting domain events in relational databases and recreating the application's state by replaying those events.
- It's widely used in event-driven architectures to handle event streams efficiently.
ecotone/symfony-bundle
:- A Symfony bundle for integrating Ecotone into Symfony projects.
- Simplifies the setup of messaging, event sourcing, and other Ecotone functionalities within the Symfony framework.
- Enables developers to use Ecotone seamlessly within their Symfony-based applications.
eqs/health-check-provider
:- Enables integrating health checks to ensure the application and its components (e.g., database or external dependencies) are functioning correctly and accessible.
nelmio/cors-bundle
(installed byapi-platform/api-pack
):- Simplifies managing CORS (Cross-Origin Resource Sharing) headers, crucial for APIs that may be accessed from different origins.
nyholm/psr
(supplementseqs/health-check-provider
):- A lightweight and fast implementation of the PSR-7 (HTTP Message Interface) standard.
- Provides classes for representing HTTP requests, responses, streams, URIs, and uploaded files, enabling interoperability between different libraries and frameworks that adhere to the PSR-7 standard.
- This package is commonly used in applications to manage HTTP messages in a standardized way.
phpdocumentor/reflection-docblock
(installed byapi-platform/api-pack
):- Library for parsing PHP docblocks and annotations, useful for documenting your code.
phpstan/phpdoc-parser
(installed byapi-platform/api-pack
):- A parser for PHPDoc comments to improve typing or integration with static analysis tools.
runtime/frankenphp-symfony
(installed bysymfony/skeleton
):- This package helps Symfony applications integrate seamlessly with FrankenPHP, which is a fast PHP application server.
symfony/asset
(installed byapi-platform/api-pack
):- Provides features for managing web assets such as CSS, JS, or images in Symfony applications.
symfony/console
(installed bysymfony/skeleton
):- Provides Symfony's user-friendly console commands for managing applications from the command line.
symfony/dotenv
(installed bysymfony/skeleton
):- Allows loading environment variables from a
.env
file to configure the application.
- Allows loading environment variables from a
symfony/expression-language
(installed byapi-platform/api-pack
):- Adds support for a dynamic expression language, often used in security and workflow rules.
symfony/flex
(installed bysymfony/skeleton
):- A Composer plugin that simplifies managing Symfony projects by automating certain configurations and dependencies.
symfony/framework-bundle
(installed bysymfony/skeleton
):- Core Symfony framework tools, providing services like routing, HTTP handling, and other foundational capabilities.
symfony/messenger
:- Provides tools to manage message-driven architectures in your application.
symfony/monolog-bundle
(installed bysymfony/debug-pack
):- Enables logging in Symfony applications using Monolog, a powerful logging library.
- Lets you send logs to files, databases, emails, or third-party services (e.g., Slack or Loggly), which is especially useful during debugging.
symfony/property-access
(installed byapi-platform/api-pack
):- Handles access to object properties dynamically, often used in forms and serialization.
symfony/property-info
(installed byapi-platform/api-pack
):- Offers introspection of object properties, such as determining their type for validation or serialization.
symfony/runtime
(installed bysymfony/skeleton
):- Manages runtime settings and optimizes bootstrapping for Symfony applications.
symfony/security-bundle
(installed byapi-platform/api-pack
):- A bundle for implementing various security features like authentication, roles, and firewalls.
symfony/serializer
(installed byapi-platform/api-pack
):- Provides serialization and deserialization of objects into formats like JSON or XML.
symfony/twig-bundle
(installed byapi-platform/api-pack
):- Integrates the Twig templating engine into Symfony applications.
symfony/validator
(installed byapi-platform/api-pack
):- Validates objects or data values using Symfony's validation component based on constraints.
symfony/yaml
(installed bysymfony/skeleton
):- Offers tools to parse, dump, and use YAML configuration files.
symfonycasts/micro-mapper
(supplementsapi-platform/api-pack
):- A lightweight object mapper designed to simplify mapping data from one structure to another.
- It can be used for tasks like mapping arrays or DTOs (Data Transfer Objects) to entities and vice versa, making the handling of complex data transformation more intuitive and concise.
webmozart/assert
:- A lightweight PHP library used for making assertions in your application.
captainhook/captainhook-phar
:- A PHP tool for managing Git hooks.
- Automates the setup and execution of Git hooks, allowing developers to define custom actions, such as code quality checks, tests, or formatting fixes, that run during Git events like commit or push.
coduo/php-matcher
(supplementssymfony/test-pack
):- Used for matching patterns in more flexible ways.
- It's often employed in testing to verify if a certain structure or data matches some predefined format, especially when exact values aren't required.
- It's useful for validating JSON or other complex data structures.
dama/doctrine-test-bundle
(supplementssymfony/test-pack
):- Simplifies database testing by wrapping Doctrine's DBAL Connection in a transactional mode.
- Prevents database changes from persisting between tests, ensuring a clean and isolated database state for every test run, significantly improving testing speed.
justinrainbow/json-schema
(supplementssymfony/test-pack
):- A PHP library for validating JSON data against a schema.
- This can be useful for ensuring that your data conforms to predefined structures, especially when working with APIs where data format validation is critical.
mikelgoig/easy-coding-standard-rules
(supplementssymplify/easy-coding-standard
):- Provides a collection of custom rules for use with Symplify's Easy Coding Standard (ECS).
- These rules help enforce specific code quality and consistency standards in a PHP codebase, extending the functionality of ECS with additional checks and fixes tailored to improve code style and maintainability.
phpstan/extension-installer
(supplementsphpstan/phpstan
):- A composer plugin designed to simplify the installation and configuration of PHPStan extensions.
- Automatically registers installed extensions, eliminating the need for manual configuration in PHPStan's settings.
phpstan/phpstan
:- A popular static analysis tool for PHP.
- Helps developers identify potential bugs, type errors, and other code issues without running the application.
- By analyzing the codebase based on defined rules and type hints, PHPStan enforces stricter type safety and improves overall code quality.
phpstan/phpstan-deprecation-rules
(supplementsphpstan/phpstan
):- Provides a set of PHPStan rules specifically designed to detect and report the usage of deprecated code in a project.
- Helps developers identify and replace deprecated classes, methods, or functions, ensuring the code remains up-to-date and compatible with future dependencies or PHP versions.
phpstan/phpstan-doctrine
(supplementsphpstan/phpstan
):- Adds specific PHPStan rules and features to analyze projects using Doctrine ORM and DBAL.
- Provides deeper insights into Doctrine entities, repositories, and queries, helping to detect issues with annotations, mappings, repositories, and database interactions.
phpstan/phpstan-phpunit
(supplementsphpstan/phpstan
):- Provides a PHPStan integration with PHPUnit.
- Helps by analyzing PHPUnit-specific code and test cases written in your application, identifying potential bugs or inconsistencies in your tests.
phpstan/phpstan-strict-rules
(supplementsphpstan/phpstan
):- Introduces strict rules for PHPStan, aiming to enforce stricter coding standards and reduce potential bugs.
- Detects issues like redundant code, risky type assumptions, and enforces rigorous type safety, ensuring more robust and clean code.
phpstan/phpstan-symfony
(supplementsphpstan/phpstan
):- Integrates PHPStan with Symfony projects to provide a deeper understanding of Symfony-specific components, like services, controllers, and configuration files.
- Helps uncover issues specific to Symfony applications, such as incorrect service definitions or misconfigurations.
phpstan/phpstan-webmozart-assert
(supplementsphpstan/phpstan
):- Provides PHPStan rules for analyzing and validating the proper usage of the
webmozart/assert
assertions library. - Ensures that assertions in the code are used correctly (e.g., proper types, arguments, and logic).
- Provides PHPStan rules for analyzing and validating the proper usage of the
phpunit/phpunit
(installed bysymfony/test-pack
):- The most popular PHP testing framework.
- It's integral for creating and executing unit tests, allowing you to write assertions to validate the behavior of your application's code and ensure stability throughout development.
ramsey/conventional-commits
:- Helps validate and enforce the Conventional Commits specification in a project.
- It's typically used to ensure that commit messages follow a structured format, making it easier to generate changelogs and maintain consistent versioning.
symfony/browser-kit
(installed bysymfony/test-pack
):- A Symfony component that simulates a web browser for testing purposes.
- It's often used in integration or functional testing, allowing you to programmatically navigate web pages and interact with forms, links, etc.
symfony/debug-bundle
(installed bysymfony/debug-pack
):- Integrates debugging tools with Symfony's services in the framework.
- Provides features like setting up a debug container and additional diagnostics.
symfony/http-client
(supplementssymfony/test-pack
):- A robust HTTP client provided by Symfony for making HTTP requests.
- Supports features like asynchronous requests, HTTP/2, and handling responses, making integrations with APIs and external services easier and more efficient.
symfony/maker-bundle
:- Simplifies the process of generating common code and features.
- Provides interactive commands that developers can use to scaffold different parts of the application, such as controllers, entities, form classes, tests, and more.
symfony/phpunit-bridge
(installed bysymfony/test-pack
):- A Symfony tool that enhances PHPUnit by providing better integration with Symfony applications.
- Includes features like deprecation warnings during tests, autoconfiguration of the testing environment, and easier PHPUnit version upgrades.
symfony/stopwatch
(installed bysymfony/debug-pack
):- Measures the performance or execution time of your application code.
- It is useful for profiling and debugging code sections to determine their duration and performance impact.
symfony/web-profiler-bundle
(installed bysymfony/debug-pack
):- Displays the Web Debug Toolbar and integrates the Symfony Profiler.
- Provides insight into routes, queries, logs, and more during development.
symplify/easy-coding-standard
:- A tool for managing and running automated code style checks and fixes in PHP projects.
- Integrates popular tools like PHP_CodeSniffer and PHP-CS-Fixer, providing a streamlined way to enforce and fix coding standards across a codebase.
symplify/phpstan-rules
(supplementsphpstan/phpstan
):- Provides a set of custom PHPStan rules aimed at improving code quality and maintaining best practices.
- Adds additional checks for cleaner, more robust, and maintainable PHP code.
zenstruck/foundry
(supplementssymfony/test-pack
):- A library for generating and managing objects using factories.
- It's typically used to seed test databases or simplify test setup by creating entities, DTOs, or any objects with predefined or randomized attributes.
- Great for functional or integration testing in Symfony projects.
- Containerization: Docker
- CI/CD: GitHub Actions
- Orchestration: Kubernetes
- Monitoring: Prometheus and Grafana
- Version Control: Git with GitHub
- Code Editor: PhpStorm
- PHP and Symfony: Chosen for robustness and rich ecosystem for backend development.
- API Platform: Provides a powerful and flexible framework for building APIs, offering features like serialization, validation, and OpenAPI documentation out of the box.
- Ecotone: Enables messaging and event-driven architecture with support for event sourcing, CQRS, and asynchronous processing, enhancing system scalability and maintainability.
- RabbitMQ: Supports reliable message processing in a distributed system.
- Docker: Simplifies environment setup and ensures consistency across development and production.