# Getting Started

{% hint style="success" %}
This is the official documentation of the `forestadmin/laravel-forestadmin` v2+ and `forestadmin/symfony-forestadmin` PHP agents.
{% endhint %}

Customization refers to a series of actions that enable you to personalize your agent, data source, or collection.

An agent is an HTTP server that serves the Forest Admin front-end application. A data source is a database or an API that you want to connect to Forest Admin. A collection is a set of data that you want to manage in Forest Admin.

Among other things, you can modify your agent by incorporating data sources, using plugins, customizing collections, and adding charts. Additionally, you can personalize your data sources by offering choices that cater to all data source types. Lastly, you can adapt your collections by including actions, fields, relations, segments between the data sources and other functionalities.

## Customizing collections

The available customizations are listed in the sections below: [actions](/developer-guide-agents-php/agent-customization/actions.md), [charts](/developer-guide-agents-php/agent-customization/charts.md), [fields](/developer-guide-agents-php/agent-customization/fields.md), [hooks](/developer-guide-agents-php/agent-customization/hooks/collection-hook.md), [pagination](/developer-guide-agents-php/agent-customization/pagination.md), [plugins](/developer-guide-agents-php/agent-customization/plugins.md), [relationships](/developer-guide-agents-php/agent-customization/relationships.md), [search](/developer-guide-agents-php/agent-customization/search.md) and [segments](/developer-guide-agents-php/agent-customization/segments.md).

Using them always starts with the same step: use the `customizeCollection` method on the collection you want to customize.

It takes two arguments: the collection name and a callback function.

```php
use ForestAdmin\AgentPHP\Agent\Utils\Env;
use ForestAdmin\AgentPHP\DatasourceCustomizer\CollectionCustomizer;
use ForestAdmin\AgentPHP\DatasourceCustomizer\Decorators\Computed\ComputedDefinition;

$forestAgent->addDatasource(
    new DoctrineDatasource($forestAgent->getEntityManager(), ['url' => Env::get('DATABASE_URL')])
)
    ->customizeCollection(
        'Task',
        function (CollectionCustomizer $builder) {
            $builder->addField('title', new ComputedDefinition(/* ... field definition ... */));
        }
    )

```


---

# 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://docs.forestadmin.com/developer-guide-agents-php/agent-customization/agent-customization.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.
