# Actions

The actions namespace contains interfaces that describe objects which can perform certain actions. It's basically semantic sugar for human convenience. The following interfaces are declared:

* [`InitializableInterface`](https://github.com/deep-web-solutions/wordpress-framework-foundations/blob/master/src/includes/Actions/InitializableInterface.php) -- describes an object that implements an `initialize` method
* [`SetupableInterface`](https://github.com/deep-web-solutions/wordpress-framework-foundations/blob/master/src/includes/Actions/SetupableInterface.php) -- describes an object that implements a `setup` method
* [`OutputtableInterface`](https://github.com/deep-web-solutions/wordpress-framework-foundations/blob/master/src/includes/Actions/OutputtableInterface.php) -- describes an object that implements an `output` method
* [`RunnableInterface`](https://github.com/deep-web-solutions/wordpress-framework-foundations/blob/master/src/includes/Actions/RunnableInterface.php) -- describes an object that implements a `run` method
* [`ResettableInterface`](https://github.com/deep-web-solutions/wordpress-framework-foundations/blob/master/src/includes/Actions/ResettableInterface.php) -- describes an object that implements a `reset` method

The result of the aforementioned methods is either `null` on success, or a specific `Exception` object describing the issue on failure.

{% hint style="info" %}
Semantically, an initializable object should be initialized before calling any other methods on it. If it's also setupable, then the setup should only be run on successful initialization.
{% endhint %}

There is nothing more to the action interfaces. You are obviously free to misuse them in your own plugins, but the framework will adhere to all the hints and conventions laid out in this document.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://framework.deep-web-solutions.com/foundations-module/actions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
