A pattern to organize your controllers with functions for you web app.
I created this package to organize my controllers by files. It also helps not loading all the resources needed for all my routes at each requests.
Folded is a constellation of packages to help you setting up a web app easily, using ready to plug in packages.
- folded/config: Configuration utilities for your PHP web app.
- folded/crypt: Encrypt and decrypt strings for your web app.
- folded/exception: Various kind of exception to throw for your web app.
- folded/history: Manipulate the browser history for your web app.
- folded/http: HTTP utilities for your web app.
- folded/orm: An ORM for you web app.
- folded/session: Session functions for your web app.
- folded/request: Request utilities, including a request validator, for your PHP web app.
- folded/routing: Routing functions for your PHP web app.
- folded/view: View utilities for your PHP web app.
- Include the content of a file (can use dot syntax)
- PHP version >= 7.4.0
- Composer installed
In your root folder, run this command:
composer require folded/action
As soon as possible, include this code:
use function Folded\setActionFolderPath;
setActionFolderPath(__DIR__ . "/actions");
In this example, we will "call" (understand, including the content of the file) a file by its path.
use function Folded\callAction;
callAction("home/index");
Which assumes your "action" file is located at actions/home/index.php
.
In this example, we will call an action by dot syntax. This is equivalent to swapping /
for .
.
use function Folded\callAction;
callAction("home.index");
Which assumes your "action" file is located at actions/home/index.php
.
In this example, we will pass parameters to callAction
to use them in the called action.
use function Folded\callAction;
callAction("home.index", [
"name" => "John",
]);
In your view located at actions/home/index.php
you can use the $name
parameter:
echo "Welcome, $name";
7.3 | 7.4 | 8.0 | |
---|---|---|---|
v0.1.0 | ❌ | ✔️ | ❓ |
v0.1.1 | ❌ | ✔️ | ❓ |
v0.2.0 | ❌ | ✔️ | ❓ |
v0.2.1 | ❌ | ✔️ | ❓ |
v0.2.2 | ❌ | ✔️ | ❓ |