Organizing routes in an application can be challenging, especially as the number of pages increases. With this in mind, Lithe offers a solution to organize your routes in a cleaner, more modular way using the set('routes', ...)
method. It simplifies the route registration process, allowing you to focus on the logic of your application while the system handles the rest automatically.
How It Works
When you use set('routes', ...)
in Lithe, the system automatically locates and loads all PHP files within the specified routes folder (including subfolders). Each route file is mapped based on its structure, creating routes with specific paths.
For example:
- If you have a
cart.php
file, the route will be/cart
. - If you have an
admin/dashboard.php
file, the route will be/admin/dashboard
.
Be Careful When Using Subfolders
Within the routes structure in Lithe, the index.php
file is always interpreted as the main route of a folder. That is, if you have an index.php
file in the routes directory, it will be mapped to the /
route, which represents the root of the application.
However, if you use subfolders like panel/index.php
, the system will not map it to the /panel
route but to /panel/index
. To ensure the route is correctly mapped to /panel
, you should name the file as panel.php
instead, like this:
-
index.php
→ maps to the/
route -
panel.php
→ maps to the/panel
route
This approach helps avoid route conflicts and makes the file structure clearer and more intuitive.
Directory Structure
Here’s an example of how the directory structure can look:
/routes
cart.php
checkout.php
/admin
dashboard.php
users.php
Defining Routes in Files
In each route file, you can use the coding style you prefer, whether functional syntax or classic syntax.
Example of cart.php
:
get('/', function ($req, $res) {
$res->send('Cart');
});
Example of admin/dashboard.php
:
$router->get('/', function ($req, $res) {
$res->send('Admin Dashboard');
});
Application Configuration
To define the path of your routes and enable automatic loading in Lithe, simply add the following line of code to your application:
$app->set('routes', __DIR__ . '/routes'); // Define the path and load routes automatically
With this configuration, the system will automatically locate and load all defined routes, simplifying the process and ensuring a more efficient organization of your application in Lithe.
This organization makes your application more scalable and easier to maintain, allowing you to focus on what truly matters when developing in Lithe!
Top comments (0)