Torch - Using Laravel's Illuminate Components Independently
Torch is a project to provide instructions and examples for using Illuminate components as standalone components in non-Laravel applications. The current master
branch shows how to use Illuminate's 5.1
components.
Note: If you are working with an older project, you might have more success using the 4.2 components.
Usage
At the moment, the project is divided into many directories beneath components
which will each contain an index file, usually written with Slim. Navigate to that directory in your terminal and run the following to serve a web site from that directory:
$ composer install
$ php -S localhost:8000
Now you can visit http://localhost:8000/ in your browser to view the output of each.
Packages
Done
- Cache
- Config
- Container
- Database
- Encryption
- Routing
- Translation
- Session
- Support
- Validation
- Events
- View
- Pagination
- Log
- Middleware
In Progress
- Mail - Imported from 4.2 but needs to be tested/tweaked
- Queue - Imported from 4.2 but needs to be tested/tweaked
Planned
- Artisan - Work In Progress PR
- Logging & Errors
- More?
Other Packages
Done
Contributing
A few important notes:
- The imagined end user is a developer of any Symfony-HttpFoundation-using project copying the route closure directly into a project, so try to avoid using any Slim conventions and use as little preparation code outside the closure as possible.
- While some components would be easier to implement with a Laravel-style Application instance and a fuller bootstrap, I'd prefer we implement as many as possible without loading Laravel's Service Providers.
- Some components will require a bootstrap, and I hope we can come up with a Best-Practice bootstrap and Laravel-style Application instance for loading Service Providers, etc.
Contributing
The 4.2 branch is still going strong, but this 5.1 branch is brand-new. I would appreciate any and all contributions.
At this point, most contributions could be just copying the 4.2 component over, adding composer.json
, tweaking the old code for the new folder structure, and making sure our old code still works.
But my framework doesn't use Symfony's HttpFoundation!
Many of these components will still work. But a few of them require HttpFoundation. ¯\(°_o)/¯