{"id":13616297,"url":"https://github.com/strangebuzz/MicroSymfony","last_synced_at":"2025-04-14T00:32:08.798Z","repository":{"id":108444280,"uuid":"606704311","full_name":"strangebuzz/MicroSymfony","owner":"strangebuzz","description":"Template introduction, check out: https://www.strangebuzz.com/en/blog/introducing-the-microsymfony-application-template","archived":false,"fork":false,"pushed_at":"2024-11-06T12:36:16.000Z","size":796,"stargazers_count":86,"open_issues_count":12,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-06T13:35:11.714Z","etag":null,"topics":["micro-framework","php","poc","project-template","rad","symfony","web-application"],"latest_commit_sha":null,"homepage":"https://microsymfony.ovh/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/strangebuzz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-26T10:06:53.000Z","updated_at":"2024-11-06T12:36:20.000Z","dependencies_parsed_at":"2023-09-30T09:45:48.744Z","dependency_job_id":"445729fe-a6fc-4520-89db-5061133f0bba","html_url":"https://github.com/strangebuzz/MicroSymfony","commit_stats":null,"previous_names":[],"tags_count":21,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strangebuzz%2FMicroSymfony","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strangebuzz%2FMicroSymfony/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strangebuzz%2FMicroSymfony/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strangebuzz%2FMicroSymfony/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strangebuzz","download_url":"https://codeload.github.com/strangebuzz/MicroSymfony/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223611891,"owners_count":17173529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["micro-framework","php","poc","project-template","rad","symfony","web-application"],"created_at":"2024-08-01T20:01:26.545Z","updated_at":"2025-04-14T00:32:08.791Z","avatar_url":"https://github.com/strangebuzz.png","language":"PHP","readme":"# MicroSymfony 🎶\n\n[![Latest Version](https://img.shields.io/packagist/v/strangebuzz/microsymfony.svg?style=flat-square)](https://packagist.org/packages/strangebuzz/microsymfony)\n[![PHP Version Require](https://poser.pugx.org/strangebuzz/microsymfony/require/php?style=flat-square)](https://packagist.org/packages/strangebuzz/microsymfony)\n[![level](https://img.shields.io/badge/level-max-success?style=flat-square\u0026logo=data:image/png;base64,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)](https://github.com/strangebuzz/MicroSymfony/actions)\n[![Software License](https://img.shields.io/badge/License-MIT-brightgreen.svg?style=flat-square)](https://github.com/strangebuzz/MicroSymfony/blob/main/LICENSE)\n[![Build Status (GitHub)](https://img.shields.io/github/actions/workflow/status/strangebuzz/microsymfony/symfony.yml?branch=main\u0026style=flat-square)](https://github.com/strangebuzz/microsymfony/actions?query=workflow%3ASymfony+branch%3Amain)\n[![Code Coverage](https://scrutinizer-ci.com/g/strangebuzz/MicroSymfony/badges/coverage.png?b=main)](https://scrutinizer-ci.com/g/strangebuzz/MicroSymfony/code-structure/main/code-coverage/src/)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/strangebuzz/MicroSymfony/badges/quality-score.png?b=main)](https://scrutinizer-ci.com/g/strangebuzz/MicroSymfony/?branch=main)\n[![Quality Score](https://img.shields.io/scrutinizer/g/strangebuzz/microsymfony.svg?style=flat-square)](https://scrutinizer-ci.com/g/strangebuzz/microsymfony)\n\n## About 🖋 \n\nMicroSymfony is a [Symfony 7.2](https://symfony.com/blog/symfony-7-2-curated-new-features)\napplication skeleton on steroids, ready to use.\n\nI have made a long blog post explaining the philosophy behind and how to use it:\n\n* [Introducing the MicroSymfony application template](https://www.strangebuzz.com/en/blog/introducing-the-microsymfony-application-template)\n\nOne rule: the only mandatory dependency is **PHP**!\n\n\u003e **PS**: If you want to use the last Symfony **6.4 LTS** version in your `composer.json`\nfile, replace all occurrences of `7.2` with `6.4` and run `composer up`.\n\n\n## Table of Contents 📖\n\n* [Demos](#demos-)\n* [Quick-start](#quick-start-)\n  * [With the Symfony binary](#with-the-symfony-binary-)\n  * [With FrankenPHP](#with-frankenphp-)\n  * [With Laragon](#with-laragon)\n* [Requirements](#requirements-)\n  * [Optional requirements](#optional-requirements-)\n* [Stack](#stack-)\n* [Features](#features-)\n* [Feature branches](#feature-branches-)\n  * [Infrastructure](#infrastructure) \n  * [Database](#database-) \n  * [Tooling](#tooling-)\n* [Notes](#notes-)\n  * [Symfony UX](#symfony-ux)\n  * [PHP configuration files](#php-configuration-files)\n* [Other good practices](#other-good-practices-)\n* [References](#references-)\n* [ADR](#adr-)\n* [Contributing](#contributing-)\n* [Security](#security-)\n* [Credits](#credits-)\n* [License](#license-)\n* [Built with MicroSymfony](#built-with-microsymfony-)\n\n\n## Demos 🌈\n\nBecause a live demo is always better than all explanations:\n\n* Live demo at [https://microsymfony.ovh](https://microsymfony.ovh)\n* Live demo powered by [FrankenPHP](https://frankenphp.dev/) at [https://frankenphp.microsymfony.ovh](https://frankenphp.microsymfony.ovh)\n\n\n## Quick-start ⚡\n\n### With the Symfony binary 🎶 \n\nYou must have the [Symfony binary](https://symfony.com/download#step-1-install-symfony-cli)\nand [composer](https://getcomposer.org/) installed locally.\n\nTo create a new project from the last tag, run:\n\n    composer create-project strangebuzz/microsymfony \u0026\u0026 cd microsymfony\n\nThen start the PHP server with make:\n\n    make start\n\nOr with Castor:\n\n    castor start\n\nOpen [https://127.0.0.1:8000](https://127.0.0.1:8000) (considering your 8000 port is free) and enjoy! 🙂\n\n\u003e **PS**: You can also use the green button \"[Use this template ⇩](https://github.com/new?template_name=MicroSymfony\u0026template_owner=strangebuzz)\"\nat the top right of the GitHub project homepage.\nIt creates a new repository from the main branch instead of the last release.\nI guarantee that all commits on the main branch are stable; you can verify that\nthe associated CI jobs are ✅.  \n\n### With FrankenPHP 🧟‍\n\nWe can also use [FrankenPHP](https://frankenphp.dev/) to run MicroSymfony.\nYou must have [Docker](https://www.docker.com/) installed locally.\n\nCreate a new project from the GitHub template, run:\n\n    docker run --rm -it -v $PWD:/app composer:latest create-project strangebuzz/microsymfony \u0026\u0026 cd microsymfony\n\nThen run:\n\n    docker run \\\n        -e FRANKENPHP_CONFIG=\"worker ./public/index.php\" \\\n        -e APP_RUNTIME=Runtime\\\\FrankenPhpSymfony\\\\Runtime \\\n        -v $PWD:/app \\\n        -p 80:80 -p 443:443 \\\n        -d \\\n        dunglas/frankenphp\n\nOpen [https://localhost](https://localhost) and enjoy! 🙂\n\n**PS**: On Windows, replace `$PWD` with `\"%cd%\"`.\n\n### With Laragon\n\nCheck out the specific [documentation](https://github.com/strangebuzz/MicroSymfony?tab=laragon-ov-file).\n\n\n## Requirements ⚙\n\n* [PHP 8.2](https://www.php.net/releases/8.2/en.php) (also works with [PHP 8.3](https://www.php.net/releases/8.3/en.php) and [PHP 8.4](https://www.php.net/releases/8.4/en.php))\n* The [Symfony CLI](https://symfony.com/download)\n\n\n### Optional requirements 🚦\n \n* The [Xdebug](https://xdebug.org/) PHP extension if you want to run the code coverage report\n* [Castor](https://github.com/jolicode/castor) task runner if you don't want to use\n  [Make](https://www.gnu.org/software/make/) and its [Makefile](https://github.com/strangebuzz/MicroSymfony/blob/main/Makefile) \n\n\n## Stack 🔗\n\n* [PHP 8.2](https://www.php.net/releases/8.2/en.php) to [8.4](https://www.php.net/releases/8.4/en.php)\n* [Symfony 7.2](https://symfony.com/7)\n* [Twig 3.8](https://twig.symfony.com)\n* [Hotwired](https://hotwired.dev/) [Stimulus 3.2](https://stimulus.hotwired.dev/) and [Turbo 8.0](https://turbo.hotwired.dev/)\n* [PHPUnit 11.5](https://phpunit.de/announcements/phpunit-11.html)\n* [Pico CSS 2.0](https://picocss.com)\n\n\n## Features 🚀\n\n**MicroSymfony** ships these features, ready to use:\n\n* Two task runners\n  * [Make](https://www.gnu.org/software/make/) ([source](https://github.com/strangebuzz/MicroSymfony/blob/main/Makefile)) ([demo](https://www.strangebuzz.com/en/blog/introducing-the-microsymfony-application-template#h3_4_1))\n  * [Castor](https://github.com/jolicode/castor) ([source](https://github.com/strangebuzz/MicroSymfony/blob/main/castor.php)) ([demo](https://www.strangebuzz.com/en/blog/introducing-the-microsymfony-application-template#h3_4_2))\n* Static analysis with [PHPStan 2](https://github.com/phpstan/phpstan)\n  * [Configuration](https://github.com/strangebuzz/MicroSymfony/blob/main/phpstan.neon)\n* Coding standards with [php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer)\n  * [Configuration](https://github.com/strangebuzz/MicroSymfony/blob/main/.php-cs-fixer.dist.php)\n* Tests ([demo](https://www.strangebuzz.com/en/blog/introducing-the-microsymfony-application-template#h2_7))\n  * Unit test [example](https://github.com/strangebuzz/MicroSymfony/blob/main/tests/Unit/Helper/StringHelperTest.php) \n  * Integration test [example](https://github.com/strangebuzz/MicroSymfony/blob/main/tests/Integration/Twig/Extension/MarkdownExtensionTest.php) \n  * Functional test [example](https://github.com/strangebuzz/MicroSymfony/blob/main/tests/Functional/Controller/ComposerActionTest.php) \n  * API test [example](https://github.com/strangebuzz/MicroSymfony/blob/main/tests/Api/Controller/SlugifyActionTest.php) \n  * E2E test [example](https://github.com/strangebuzz/MicroSymfony/blob/main/tests/E2E/Controller/AppControllerTest.php)\n* Code coverage at 100% (configurable threshold)\n  * [Coverage report on Scrutinizer](https://scrutinizer-ci.com/g/strangebuzz/MicroSymfony/code-structure/main/code-coverage/src/)\n* GitHub CI ([actions](https://github.com/strangebuzz/MicroSymfony/actions))\n  * [Tests job output](https://github.com/strangebuzz/MicroSymfony/actions/runs/12099802785/job/33737745422)\n  * [Lint job output](https://github.com/strangebuzz/MicroSymfony/actions/runs/12099802785/job/33737745094)\n  * [Security job output](https://github.com/strangebuzz/MicroSymfony/actions/runs/12099802785/job/33737745205)\n* Asset mapper+Stimulus ([documentation](https://symfony.com/doc/current/frontend/asset_mapper.html))\n  * Vanilla Js ([source](https://github.com/strangebuzz/MicroSymfony/blob/main/assets/controllers/hello_controller.js)) ([demo](https://microsymfony.ovh/stimulus))\n  * Fetch on a JSON endpoint of the application ([source](https://github.com/strangebuzz/MicroSymfony/blob/main/assets/controllers/api_controller.js)) ([demo](https://microsymfony.ovh/stimulus)) \n* A custom error template\n  * [Source](https://github.com/strangebuzz/MicroSymfony/blob/main/templates/bundles/TwigBundle/Exception/error.html.twig)\n  * [Demo](https://microsymfony.ovh/404) \n\n\n## Feature branches 🚅\n\n[Feature branches](https://github.com/strangebuzz/MicroSymfony/pulls?q=is%3Apr+is%3Aopen+label%3A%22feature+branch%22)\nare not merged in the main branch but are used to test the integration of a new\nvendor library or make a [POC](https://en.wikipedia.org/wiki/Proof_of_concept).\nFor example, have you ever dreamed of testing [Eloquent](https://laravel.com/docs/11.x/eloquent#introduction),\nthe Laravel ORM, on a Symfony project?\nThen clone the `eloquent` branch, and run `composer install \u0026\u0026 make load-fixtures`.\n\n### Infrastructure\n\n* Symfony-docker ([PR](https://github.com/strangebuzz/MicroSymfony/pull/98), [branch](https://github.com/strangebuzz/MicroSymfony/tree/symfony-docker), rebased on 2024-11-17)\n\n### Database 💽\n\nThese « database » branches aim to display a list of records from a [SQLite](https://www.sqlite.org/)\ndatabase.\n \n* Doctrine DBAL ([PR](https://github.com/strangebuzz/MicroSymfony/pull/72), [branch](https://github.com/strangebuzz/MicroSymfony/tree/doctrine-dbal), rebased on 2025-02-21)\n* Eloquent ORM ([PR](https://github.com/strangebuzz/MicroSymfony/pull/65), [branch](https://github.com/strangebuzz/MicroSymfony/tree/eloquent), rebased on 2024-11-17)\n\n### Tooling 🔨\n\n* Vite-Bundle ([PR](https://github.com/strangebuzz/MicroSymfony/pull/160), [branch](https://github.com/lhapaipai/MicroSymfony/tree/vite), rebased on 2025-02-11) ([demo](https://vite.microsymfony.ovh))\n* Psalm ([PR](https://github.com/strangebuzz/MicroSymfony/pull/160), [branch](https://github.com/strangebuzz/MicroSymfony/tree/psalm), rebased on 2025-02-20)\n* Taskfile ([PR](https://github.com/strangebuzz/MicroSymfony/pull/86), [branch](https://github.com/jmsche/MicroSymfony/tree/taskfile), rebased on 2024-12-04)\n* TwigStan ([PR](https://github.com/strangebuzz/MicroSymfony/pull/95), [branch](https://github.com/strangebuzz/MicroSymfony/tree/twigstan), rebased on 2024-11-18)\n* Twig-CS-Fixer ([PR](https://github.com/strangebuzz/MicroSymfony/pull/118), [branch](https://github.com/strangebuzz/MicroSymfony/tree/feat/use-twig-cs-fixer), rebased on 2024-11-29)\n\nOne will rebase those branches regularly so they are not too outdated.\n\n\n## Notes 📒\n\n### Symfony-UX\n\nTurbo forms are disabled in [assets/app.js](https://github.com/strangebuzz/MicroSymfony/blob/main/assets/app.js).\nTo enable the feature for a given form, add the `data-turbo=\"true\"` attribute to it. \nOr change the parameter `Turbo.setFormMode` to `on` to activate the feature globally.\nIn both cases, your controller code has to be [modified accordingly](https://symfony.com/bundles/ux-turbo/current/index.html#3-form-response-code-changes).\n\n### PHP configuration files\n\nIf you install a new Symfony library, the flex recipes can add YAML files to your\nproject.\nThese YAML files are loaded, but you can convert them to PHP like the other configuration\nfiles.\nFor example, to convert the `messenger` YAML configuration to PHP with [Simplify](https://github.com/symplify/config-transformer),\nrun:\n\n    vendor/bin/config-transformer config/packages/messenger.yaml\n\n\n## Other good practices 👌\n\n* Using PHP configuration files instead of YAML ([source](https://github.com/strangebuzz/MicroSymfony/blob/main/config/services.php))\n* Using strict types in all PHP files ([source](https://github.com/strangebuzz/MicroSymfony/blob/main/src/Controller/SlugifyAction.php#L3))\n* Using the ADR pattern in an action controller ([source](https://github.com/strangebuzz/MicroSymfony/blob/main/src/Controller/HomeAction.php)) ([doc](https://symfony.com/doc/current/controller/service.html#invokable-controllers))\n* The [composer.json](https://github.com/strangebuzz/MicroSymfony/blob/main/composer.json) \n  file is normalized with [ergebnis/composer-normalize](https://github.com/ergebnis/composer-normalize)\n* Use of the [composer bin plugin](https://github.com/bamarni/composer-bin-plugin)\n  to install and run [php-cs-fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer)\n\n\n## ADR 📝\n\nADR stands for [Architecture Design Records](https://adr.github.io/):\n\n* [2025-01-25] Include the FrankenPHP runtime by default ([PR](https://github.com/strangebuzz/MicroSymfony/pull/54))\n* [2025-01-21] Add PHPUnit test suites ([PR](https://github.com/strangebuzz/MicroSymfony/pull/155))\n* [2024-12-18] Use PicoCSS instead of BareCSS as the CSS framework ([PR](https://github.com/strangebuzz/MicroSymfony/pull/85))\n* [2024-12-05] Convert all configuration files to PHP ([PR](https://github.com/strangebuzz/MicroSymfony/pull/129))\n* [2024-09-22] Use the ADR pattern for all controllers ([PR](https://github.com/strangebuzz/MicroSymfony/pull/58))\n\n\n## References 📚\n\n* [Running a Symfony app on a VPS with Docker and FrankenPHP](https://les-tilleuls.coop/en/blog/running-a-symfony-app-on-a-vps-with-docker-and-frankenphp) (les-tilleuls.coop)\n* [How to Switch from YAML Configs to PHP Today with Symplify](https://tomasvotruba.com/blog/2020/07/27/how-to-switch-from-yaml-xml-configs-to-php-today-with-migrify/) (tomasvotruba.com)\n* [PHPStan 2.0 Released With Level 10 and Elephpants!](https://phpstan.org/blog/phpstan-2-0-released-level-10-elephpants) (phpstan.org)\n* [A better ADR pattern for your Symfony controllers](https://www.strangebuzz.com/en/blog/a-better-adr-pattern-for-your-symfony-controllers) (strangebuzz.com)\n* [My Taskfile configuration for Symfony](https://jmsche.fr/en/blog/my-taskfile-configuration-for-symfony) (jmsche.fr)\n* [You should be using PHPStans bleeding edge](https://backendtea.com/post/use-phpstan-bleeding-edge/) (backendtea.com)\n* [A Good Naming Convention for Routes, Controllers and Templates?](https://jolicode.com/blog/a-good-naming-convention-for-routes-controllers-and-templates) (jolicode.com)\n* [Front-end application development, Symfony-style(s)](https://dunglas.dev/2024/04/front-end-application-development-symfony-styles/) (dunglas.dev)\n* [Automated Test Coverage Checks with Travis, PHPUnit for Github Pull Requests](https://ocramius.github.io/blog/automated-code-coverage-check-for-github-pull-requests-with-travis/) (ocramius.github.io) \n* [Installing and using php-cs-fixer](https://www.strangebuzz.com/en/blog/installing-and-using-php-cs-fixer) (strangebuzz.com)\n* [Castor, a journey across the sea of task runners](https://jolicode.com/blog/castor-a-journey-across-the-sea-of-task-runners) (jolicode.com)\n* [Initializing your Symfony project with solid foundations](https://www.strangebuzz.com/en/blog/initializing-your-symfony-project-with-solid-foundations) (strangebuzz.com)\n* [Organizing your Symfony project tests](https://www.strangebuzz.com/en/blog/organizing-your-symfony-project-tests) (strangebuzz.com)\n* [What are your Symfony best practices?](https://www.strangebuzz.com/en/blog/what-are-your-symfony-best-practices) (strangebuzz.com)\n* [Setting a CI/CD workflow for a Symfony project thanks to the GitHub actions](https://www.strangebuzz.com/en/blog/setting-a-ci-cd-workflow-for-a-symfony-project-thanks-to-the-github-actions) (strangebuzz.com)\n* [The Symfony Framework Best Practices](https://symfony.com/doc/current/best_practices.html) (symfony.com)\n\n\n## Contributing 🤝 \n\nPlease see [CONTRIBUTING](https://github.com/strangebuzz/MicroSymfony/blob/main/CONTRIBUTING.md) and [CODE_OF_CONDUCT](https://github.com/strangebuzz/MicroSymfony/blob/main/CODE_OF_CONDUCT.md) for details.\n\n\n## Security 🧯\n\nPlease see [SECURITY](https://github.com/strangebuzz/MicroSymfony/blob/main/SECURITY.md) for details.\n\n\n## Credits 🙏\n\n* [COil](https://github.com/COil) (primary maintainer)\n* [All Contributors](https://github.com/strangebuzz/MicroSymfony/graphs/contributors)\n\n\u003ca href=\"https://github.com/strangebuzz/MicroSymfony/graphs/contributors\"\u003e\n  \u003cimg alt=\"strangebuzz/MicroSymfony contributors\" src=\"https://contrib.rocks/image?repo=strangebuzz/MicroSymfony\" /\u003e\n\u003c/a\u003e\n\nMade with [contrib.rocks](https://contrib.rocks).\n\n\n## License ⚖️\n\nThe MIT License (MIT). Please see [License File](https://github.com/strangebuzz/MicroSymfony/blob/main/LICENSE) for more information.\n\n\n## Built with MicroSymfony 🛠️\n\n* [Placehold.ovh](https://placehold.ovh/) (2024-12-01)\n* [Appartement-tourcoing.com](https://www.appartement-tourcoing.com/) (2024-11-30)\n* [Easyadmin Mercure Demo](https://github.com/coopTilleuls/easyadmin-mercure-demo) (2023-05-24)\n","funding_links":[],"categories":["PHP"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrangebuzz%2FMicroSymfony","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrangebuzz%2FMicroSymfony","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrangebuzz%2FMicroSymfony/lists"}