
Set up slim 4 for authorization using composer, psr interfaces, and the app factory. Build a bootstrap with a service container, settings, and error middleware, then run and test locally.
Define a user model under app\models with PSR-4 autoload, then create a global helper and auto-load it with composer, ensuring the view function works after autoload dump.
Explore setting up Slim 4 controllers with dependency injection using the PHP-DI Slim Bridge, configure composer packages, and create routes that inject parameters into controller methods.
Set up a beautified whoops debug page by adding illuminate/support and an additional package, run composer install, and register a new middleware to expose routing and app debug details.
Learn to build a Slim 4 http kernel with bootstrappers, environment loading, and route groups, implementing global and route middleware for api and web requests.
Set up a MySQL database with Laravel Homestead and a virtual machine to run Eloquent. Configure aliases for the database capsule manager to enable multiple connections via a service provider.
Explore database migrations, seeds, and custom factories using Phinx and Faker, including setting up migrations, seeding with Cedar's, and creating dummy user data.
Master Slim 4 authentication by implementing console commands with a custom console kernel using Symfony's console component; bootstrap the app and console, register commands, and run migrations.
Install vue js in a slim 4 authentication project by configuring package.json and npm scripts. Use Laravel Mix and webpack to compile resources into public js.
Learn to implement register, login, and logout in Slim 4 with a micro Laravelification setup, including routes, controllers, request input handling, SHA one encryption, sessions, and a user dashboard.
Implement redirect if guest and redirect if authenticated middleware in Slim 4 authentication to guard login and home routes, update request handling, and test redirects.
Flash validation errors for a single request in Slim 4 authentication, then refine front-end error visuals and integrate material design icons while applying database-aware validation rules for login and registration.
Learn to repopulate failed form inputs after validation errors by flashing old input and binding it to login and register fields.
Set up email for authentication by configuring Swift Mailer and Guzzle HTTP, defining SMTP settings, and building a mailable with a Blade template and mail transport.
Configure mailtrap locally, copy smtp credentials, and wire a Slim 4 mailable to build and send emails; design reset password templates with a unique link.
Implement flash success messages in a Slim 4 authentication workflow by building a reusable front end flash component and using session flash data after validation, auto hiding after five seconds.
Slim 4 is a micro framework. Unbiased, incredibly abiding to PSR (Php Standard Recommendations), and ultimately able to easily integrate many, many components and packages -- including those from other major frameworks and component libraries.
During this series, using Laravel's architecture as inspiration, we will slowly take Slim's unbiased code and build it out to a more full featured framework.
What features are we adding into slim?
- Service Providers
- Http Kernel
- Console Kernel
- Config Directory
- .env (Environment Variables & Files)
- Global, auto loaded, helper functions
- CSRF Protection
- Tailwind CSS
- Vue JS
- Laravel Collections
- Laravel Validators
- Laravel Str Helper
- Laravel Blade Templates
- Cake Php's Phinx
-> Phinx migrations
-> Phinx seeds
- Custom Factories (Using Faker)
- etc...
Through the Laravelification of Slim 4, we will also set up authorization and eventually the ability for a user to reset their account password via email. We'll locally be able to send emails, flash failed form error messages to the front end, pass success form messages to the front end, setup the ability to re-populate "old" form data AKA failed form data so our users don't have to re-type everything in if the validation for the form fails.
What all will we be integrating? Check out the entire list
Packages & Resources Glossary
Slim 4
Slim Csrf
Laravel Validators
Laravel Homestead
Jenssegers Blade
Zeuxisoo Slim Whoops
Php Dot Env
CakePhp Seeders & Migrations
Fzaninotto Faker For Factories
Illuminate Database
Illuminate Support
Php Dependency Injection Container
Php Dependency Injection Container Slim Bridge
Laravel Mix Webpack Wrapper
Swift Mailer for Emails
Mailtrap for local email testing
Illuminate Mail For Markdown Parser
Symfony Console Component For Console Commands
Symfony Session Component For Sessions
Eloquent For Database ORM
Vuejs For Front-end Reactivity
Tailwind For CSS & SCSS
Vue Material Design Icons
Guzzle Http Wrapper