# Registering actions
# Why do actions need to be registered?
Some features that Laravel Actions supports require them to be registered globally. These features are the following.
- Registering actions as commands automatically if a signature is provided.
- Registering routes directly within actions.
Thus, for these features to work, we need to know where the actions are kepts so we can register them.
# Updating the paths to register actions
By default, Laravel Actions will look into the app/Actions
folder (or any of its subfolders).
You can change that behaviour by calling the paths()
method from the Actions
Facade within the register
method of your AppServiceProvider
.
# Provide your Actions folder.
Actions::paths('app/MyActionsFolder');
# You can also provide multiple folders.
Actions::paths([
'app/Actions', // <- default
'app/SomeOtherFolder',
]);
# Disabling the registration of actions
If none of the features listed above are needed for your application, you may disable registering actions entirely via the dontRegister
method.
Actions::dontRegister();
# Alternative for "Registering actions as commands automatically"
When disabling the registration of actions, you will need to manually register actions as commands. You can do this by calling the registerCommand
static method in your routes/console.php
file.
PublishANewArticle::registerCommand();
# Alternative for "Registering routes directly within actions"
When disabling the registration of actions, you will not be able to define your routes within the static routes
method. Instead, you will need to define them in your routes files. See "Registering actions in routes files".