phil/microsymfony
最新稳定版本:7.3.1
Composer 安装命令:
composer require phil/microsymfony
包简介
A template to initialize an application to use Symfony as a micro-framework
README 文档
README
About 🖋
“Proclaim Honestly, Interact Liberally” MicroSymfony is a Symfony 7.3 application skeleton on steroids, ready to use.
The purpose of MicroSymfony is to provide a sandbox with some sensible defaults and ready to use. It can be a solution if you want to quickly set up something, create a POC, test things, and even make a small "one-page" application.
It was base on strangebuzz/MicroSymfony with adjustment we're usually adding on all our projects. We also remove somes examples.
PS: If you want to use the last Symfony 6.4 LTS version in your
composer.jsonfile, replace all occurrences of7.3with6.4and runcomposer up.
Table of Contents 📖
- Demo
- Quick-start
- Requirements
- Stack
- Features
- Notes
- Other good practices
- ADR
- What it doesn't ship!
- References
- Others “Proclaim Honestly, Interact Liberally” Skeletons
- Contributing
- Security
- Credits
- License
- Built with MicroSymfony
Demo 🌈
Because a live demo is always better than all explanations :
- Live demo will be available at https://ph-il.ca/demos/microsymfony
- Live demo powered by FrankenPHP will be available at https://ph-il.ca/demos/frankenphp/microsymfony
Quick-start ⚡
With the Symfony binary 🎶
You must have the Symfony binary and composer installed locally.
To create a new project from the last tag, run:
composer create-project phil/microsymfony && cd microsymfony
To serve the application with the Symfony binary, run:
$ symfony server:start --daemon
or use the castor command
castor start
Open https://127.0.0.1:8000 (considering your 8000 port is free) and enjoy! 🙂
PS: You can also use the green button "Use this template ⇩" at the top right of the GitHub project homepage. It creates a new repository from the main branch instead of the last release. I guarantee that all commits on the main branch are stable; you can verify that the associated CI jobs are ✅.
With FrankenPHP 🧟
We can also use FrankenPHP to run MicroSymfony. You must have Docker installed locally.
Create a new project from the GitHub template, run:
docker run --rm -it -v $PWD:/app composer:latest create-project strangebuzz/microsymfony && cd microsymfony
Then run:
docker run \
-e FRANKENPHP_CONFIG="worker ./public/index.php" \
-e APP_RUNTIME=Runtime\\FrankenPhpSymfony\\Runtime \
-v $PWD:/app \
-p 80:80 -p 443:443 \
-d \
dunglas/frankenphp
Open https://localhost and enjoy! 🙂
PS: On Windows, replace $PWD with "%cd%".
Requirements ⚙
All “Proclaim Honestly, Interact Liberally” project will use the latest version within 1 or 2 months depending on dependencies availability.
- PHP 8.4
- The Symfony CLI
- Castor 0.25 task runner
Optional requirements 🚦
- The Xdebug PHP extension if you want to run the code coverage report (optional but recommended)
Stack 🔗
All “Proclaim Honestly, Interact Liberally” project will use the latest version within 1 or 2 months depending on dependencies availability.
Features 🚀
MicroSymfony ships these features, ready to use:
- One task runner
- Castor (source)
- Static analysis with PHPStan 2
- Coding standards with php-cs-fixer
- Refactoring with Rector
- The debug toolbar (doc)
- Tests (demo)
- Code coverage at 100% (configurable threshold)
- GitHub CI (actions)
- Asset mapper+Stimulus (documentation)
- Symfony Maker (documentation)
- A custom error template
Notes 📒
Symfony-UX
Turbo forms are disabled in assets/app.js.
To enable the feature for a given form, add the data-turbo="true" attribute to it.
Or change the parameter Turbo.setFormMode to on to activate the feature globally.
In both cases, your controller code has to be modified accordingly.
Other good practices 👌
- Using strict types in all PHP files (source)
- Using the ADR pattern in an action controller (source) (doc)
- The composer.json file is normalized with ergebnis/composer-normalize
- Use of the composer bin plugin to install and run php-cs-fixer
ADR 📝
ADR stands for Architecture Design Records:
What it doesn't ship? ❌
- Doctrine (installation) or use (WebSymfony)
References 📚
- Running a Symfony app on a VPS with Docker and FrankenPHP (les-tilleuls.coop)
- How to Switch from YAML Configs to PHP Today with Symplify (tomasvotruba.com)
- PHPStan 2.0 Released With Level 10 and Elephpants! (phpstan.org)
- A better ADR pattern for your Symfony controllers (strangebuzz.com)
- My Taskfile configuration for Symfony (jmsche.fr)
- You should be using PHPStans bleeding edge (backendtea.com)
- A Good Naming Convention for Routes, Controllers and Templates? (jolicode.com)
- Front-end application development, Symfony-style(s) (dunglas.dev)
- Automated Test Coverage Checks with Travis, PHPUnit for Github Pull Requests (ocramius.github.io)
- Installing and using php-cs-fixer (strangebuzz.com)
- Castor, a journey across the sea of task runners (jolicode.com)
- Initializing your Symfony project with solid foundations (strangebuzz.com)
- Organizing your Symfony project tests (strangebuzz.com)
- What are your Symfony best practices? (strangebuzz.com)
- Setting a CI/CD workflow for a Symfony project thanks to the GitHub actions (strangebuzz.com)
- The Symfony Framework Best Practices (symfony.com)
Others “Proclaim Honestly, Interact Liberally” Skeletons 🩻
-
- MicroSymfony+
- Database
- StofDoctrineExtensionsBundle
- EasyAdmin
- Security Layers
- SymfonySecurity
- NelmioSecurityBundle
- NelmioCorsBundle
- more.
-
- API Platform
- Task runner
- Castor
- Static Analysis
- PHPStan
- Coding standards
- php-cs-fixer
- Refactoring
- Rector
- Tests
- Unit test
- API test
- E2E test
- GitHub CI
- Symfony Maker
-
- WebSymfony +
- “Proclaim Honestly, Interact Liberally” Bundles
- phil-ux - Add Base Twig Components
- PhilDoctrineExtensionStofBundle - Add missing stuff to StofDoctrineExtensionsBundle
- PhilDoctrineExtensionPublishBundle - Add Publish functionality to Doctrine Entity
- more.
Contributing 🤝
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security 🧯
Please see SECURITY for details.
Credits 🙏
- Philippe Gamache (primary maintainer)
- All Contributors
Made with contrib.rocks.
Strangebuzz/MicroSymfony Contributors
- COil (primary maintainer)
- All Contributors
Made with contrib.rocks.
License ⚖️
The MIT License (MIT). Please see License File for more information.
Built with MicroSymfony 🛠️
- WebSymfony
- WebSkeleton
- IRL Assemble Online
- La Page à Melkor via WebSkeleton
- Parler Haut Interagir Librement via WebSkeleton
- RPG Assemble Online
- TiltTek via WebSkeleton
- TTRPG Maker via WebSkeleton
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-13