
status: ready

phpstan: level 8

phpunit: low
Site2 is based on php-server and php-container and demonstrates:
You can see the optimized and working version of the website in the live preview.
Also, you can inspect additional features:
- Routing system with PSR-7 Request/Response and middlewares
- DI Container
- Config
- Docker package for developing only
- Architecture
- User login
- Admin user login (authentication and authorization)
- Error handling
- Design
- Logging
- CSRF
- Sitemap system
- Breadcrumbs on every page
- Filtering
- Most Visited
- Similar
- Continue reading
- Banner with priority on main and category pages
- Javascript components
- Full text search based on Postgresql
- Accept terms and conditions popup
- Minum memory usage
- SEO
- Mailer
- PageSpeed Insights
Minimum dependencies:
- twig/twig. You can replace it with any other template engine. All what you must do in this case - replace twig templates with new ones. Core logic will no change.
- laminas/laminas-diactoros - psr-7 implementation
- wapmorgan/mp3info - mp3 file checker (forked and refactored by me)
- Boostrap 5 as a css framework
- Site was writen with OOP.
- Phpstan with level 8.
- Code based on architectural layers: domain, application and infrastructure.
- Only PHP with minimum pure JS on the frontend.
See docs in doc folder
- phpstan level 8
- phpunit
- laminas-coding-standard
- deptrac levels
- domain
- application
- infrastructure
Please read installation guide to run site2 as quickly as possible.
You can view the previous and simpler website — Site1. It demonstrates a multi-page site with a login system, a sitemap, Google reCAPTCHA, and email-based password recovery.
Look at its live preview.
