
Symfony Framework
 We have fully upgraded the web application from **Slim** to **Symfony**, delivering a **faster**, **more secure**, and **future-ready** experience. This is not just a behind-the-scenes change - it strengthens the foundation of the application while keeping all the features you know and love intact. By moving to **Symfony**, the application now benefits from a **full-stack framework** that provides: - **Faster development** through powerful built-in tools and reusable components - **Stronger security** to protect your data and prevent vulnerabilities - **Scalable architecture** that can grow with your needs - **Greater flexibility** to adapt to new requirements and features This upgrade ensures a **more robust, maintainable, and future-proof** web application for both developers and users.Improved Performance
For full-featured web applications, Symfony performs better than Slim in several ways because of its architecture and optimizations: - **Routing**: Compiled and cached routes for fast matching - **Dependency Injection**: Precompiled container reduces runtime overhead - **Event Handling**: Optimized HttpKernel with cached listeners - **Caching**: Built-in caches for config, routes, and services. - **Database Access**: Doctrine metadata and queries are optimized v2026 further improves it by using caches for field definitions, language files, user IDs, user levels, and lookup results.CRUD by Doctrine ORM and Validation by Symfony Validator
- **No need to write raw SQL** for basic CRUD operations — Doctrine handles database interaction for you. - Doctrine **tracks entity state changes automatically**, so you only need to work with objects, and Doctrine figures out the SQL under the hood. - **Seamless integration with Symfony Validator**: You can now define and select validation constraints directly in the UI, enabling smooth validation of entity data. - **Lifecycle Callbacks**: Doctrine provides lifecycle callbacks for automatically handling tasks at specific points during entity operations, such as: - `prePersist` - `postPersist` - `preUpdate` - `postUpdate` - `preRemove` - `postRemove` - `onFlush` - These Doctrine events are seamlessly **converted into Symfony events** by PHPMaker, so you can listen to them like any other event in your application: - `RowInsertingEvent` - triggered **before** an entity is inserted - `RowInsertedEvent` - triggered **after** an entity is inserted - `RowUpdatingEvent` - triggered **before** an entity is updated - `RowUpdatedEvent` - triggered **after** an entity is updated - `RowDeletingEvent` - triggered **before** an entity is deleted - `RowDeletedEvent` - triggered **after** an entity is deleted - `OnFlushEvent` - triggered **during `onFlush`**, before changes are committed, allowing custom logic on all pending entity changes - **Unified event handling**: Listen to Symfony events instead of dealing directly with Doctrine's event system. - **Familiar global function support**: Works seamlessly with the [AddListener()](functions.html?id=addlistener) global function you already use for other Symfony events. - Provides a cleaner and more consistent architecture for managing entity lifecycle logic.Improved JWT Authentication for API
- JWT integration by LexikJWTAuthenticationBundle: Quickly adds secure, standards-compliant JWT authentication to Symfony application - Stateless authentication: No sessions required - Tight integration with Symfony Security: Works with firewalls, access control, roles, voters, and security events - Customizable: Provides events, e.g. `JWT_CREATED`, `JWT_AUTHENTICATED`, `AUTHENTICATION_FAILURE`, for data customization and validation - Supports [Web-Token feature](https://symfony.com/bundles/LexikJWTAuthenticationBundle/current/10-web-token.html)Social Login by HWIOAuthBundle
Social login is now managed by HWIOAuthBundle, which integrates OAuth1 and OAuth2 providers into Symfony. - Easy integration of social login and third-party identity providers, including **Google, Facebook, and Microsoft Azure**. - Out-of-the-box configuration for dozens of providers. - Works seamlessly with Symfony's security system.Enhanced Custom Files and Route/API Action Controllers
- **Controller Action**: New **Controller_Action** event for customizing response as you need  - **Route/API Action** server events are converted to **Route/API action controllers** (under **Custom Files**) for full control over controller actions  - **View**: Supports both PHP view and Twig view - Can be used to add extra files such as controllers, event listeners and subscribersImproved Email Features
- Test button for SMTP settings (UI)  - Sends email notifications (e.g. OTP) with HTML content, simply add `Format: HTML` to your template, e.g. - Sends simple email quickly by [SendEmailNotification()](functions.html?id=sendemailnotification) global function - Selectable third party mailers (advanced setting) - SMTP options (as query string) (advanced setting)Improved Debugging Features
- Symfony's **debug page** (Exception/Error page) in **dev** mode appears whenever an exception or error occurs. It provides: - **Exception** - Shows the error type, message, and HTTP status, with expandable syntax-highlighted code snippets and clickable file links to your IDE.  - **Logs** - (Displayed if **Profiler** is enabled) Shows all messages logged during the request (e.g., debug, info, warning, error). - **Stack Trace** - Lists the call stack leading to the exception, including file paths, line numbers, and function calls, helping you pinpoint the exact source of the error. - Better `dump()`, `dd()` and `VarDump()` functions that you can use instead of PHP's `var_dump()`,  - Symfony console commands  - Supports viewing server-side logs in browser (for AJAX requests) using browser extension  - You can also optionally enable [Profiler](https://symfony.com/doc/current/profiler.html), a powerful **development tool** that gives detailed information about the execution of any request. Improved Audit Trail
- Use Symfony and Doctrine event listeners - Save new/deleted row as JSON - Log Insert/Update/Delete failures alsoImproved Pager
- "PrevNext" and "Numeric" pagers integrated as one - New "Pager proximity" setting for adding more buttons to pager Resource Preloading via "Link" HTTP Headers
- **Symfony WebLink Component**: Manage resource preloading efficiently - **Early Asset Fetching**: Fetch critical scripts, styles, or other assets before the browser reaches `