PHPackages                             ftm-pm/symfony-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. ftm-pm/symfony-api

AbandonedArchivedProject[API Development](/categories/api)

ftm-pm/symfony-api
==================

The SymfonyApi is configured bundles for creating a REST API.

0.1.0(8y ago)07MITPHPPHP ^7.1.3

Since Mar 25Pushed 7y ago1 watchersCompare

[ Source](https://github.com/ftm-pm/symfony-api)[ Packagist](https://packagist.org/packages/ftm-pm/symfony-api)[ RSS](/packages/ftm-pm-symfony-api/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)Dependencies (22)Versions (3)Used By (0)

SymfonyApi
==========

[](#symfonyapi)

The SymfonyApi is configured bundles for creating a REST API.

Russian documentation [here](https://github.com/ftm-pm/symfony-api/blob/master/docs/ru/readme.md).

Setup
-----

[](#setup)

The SymfonyApi is a [symfony/skeleton](https://github.com/symfony/skeleton) application with bundles:

- [api-platform](https://github.com/api-platform/api-platform)
- [gedmo](https://github.com/Atlantic18/DoctrineExtensions)
- [jwt-authentication-bundle](https://github.com/lexik/LexikJWTAuthenticationBundle).
- [All bundles](#bundles)

### Installation

[](#installation)

Run the Composer command to create a new project

```
composer create-project ftm-pm/symfony-api my-project
```

### Configuration

[](#configuration)

After installing, you need to set environment variables. You can see variables in the .env file.

Next step, run command to update database.

```
php bin/console d:s:u --force
```

In SymfonyApi, authorization was developed using JWT. You can see documentation [here](https://github.com/lexik/LexikJWTAuthenticationBundle).

For create a new user, you can use any REST client. You should send a new request to  with parameters:

```
{
  "username": "johndoe",
  "password": "test",
  "email": "johndoe@example.com"
}
```

or using curl

```
curl -X POST http://my-project/api/register -d username=johndoe -d password=test -d email=johndoe@example.com
```

After the confirmation email, get token. Send a new request to `http://my-project/api/token`:

```
{
  "username": "johndoe",
  "password": "test"
}
```

or using curl

```
curl -X POST http://my-project/api/token -d username=johndoe -d password=test
```

The SymfonyApi returns two fields:

```
{
  "token": "...",
  "id": "...",
  "refresh_token": "..."
}
```

For authorization, you must send header for any request: Authorization: Bearer your\_token.

Use
---

[](#use)

REST API on SymfonyApi developed with use api-platform bundle. You can see full documentation [here](https://api-platform.com/docs/core).

For example:

- The Serialization Process
- The Event System
- Data Providers
- Security
- and other

### Features SymfonyApi

[](#features-symfonyapi)

SymfonyApi included:

- Authentication (login, register, getToken, refreshToken)
- Localization logic
- Integrated with [media-server](https://github.com/ftm-pm/media-server) project

#### Authentication

[](#authentication)

For the organization of users on the application is not used [FOSUserBundle](https://github.com/FriendsOfSymfony/FOSUserBundle). The necessary part related to the user has been ported, and all parts related to events, personal accounts, and other unnecessary information have been skipped.

If you want to use FOSUserBundle, you can delete all files associated with the user and include FOSUserBundle and configure security.yaml.

JWT is used for authentication. You can see documentation [here](https://api-platform.com/docs/core).

#### Localization

[](#localization)

[Gedmo Translatable](https://github.com/Atlantic18/DoctrineExtensions/blob/v2.4.x/doc/translatable.md) realizes localization on SymfonyApi. In order to the api-platform to return translations, the entity class must implement the Gedmo\\Translatable\\Translatable Interface.

The translation field will look like:

```
{
  "translations": {
     "ru": {
        "field1": "value1",
        "field2": "value2"
     },
     "en": {
         "field1": "value1"
     }
  }
}
```

Similarly, to save translations, you must add the `translations` parameter to the query.

It should be noted that the Gedmo Translatable does not duplicate translations. If the application is set to English as the main language, the field `translations`English will not. For example:

```
{
  "name": "English Name",
  "translations": {
     "ru": {
        "name": "Russian Wonderful Name"
     }
  }
}
```

This can be fixed by duplicate data into the App\\Handler\\Translation.

What's included
---------------

[](#whats-included)

- api-platform/core
- doctrine/annotations
- gedmo/doctrine-extensions
- gesdinet/jwt-refresh-token-bundle
- gfreeau/get-jwt-bundle
- guzzlehttp/guzzle
- lexik/jwt-authentication-bundle
- nelmio/cors-bundle
- symfony/asset
- symfony/console
- symfony/expression-language
- symfony/flex
- symfony/framework-bundle
- symfony/lts
- symfony/maker-bundle,
- symfony/orm-pack
- symfony/swiftmailer-bundle
- symfony/twig-bundle
- symfony/validator
- symfony/yaml

Feedback
--------

[](#feedback)

- Create a new issue
- Ask a question on [сайте](https://ftm.pm).
- Send a message to

License [MIT](https://github.com/ftm-pm/media-server/blob/master/LICENSE.txt).

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2973d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/62fce35b765acc692bac165b9dd3e871d7090bca6b2f60e48bdaa7768150c3ce?d=identicon)[Fafnur](/maintainers/Fafnur)

---

Top Contributors

[![Fafnur](https://avatars.githubusercontent.com/u/3624224?v=4)](https://github.com/Fafnur "Fafnur (18 commits)")

### Embed Badge

![Health badge](/badges/ftm-pm-symfony-api/health.svg)

```
[![Health](https://phpackages.com/badges/ftm-pm-symfony-api/health.svg)](https://phpackages.com/packages/ftm-pm-symfony-api)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[kimai/kimai

Kimai - Time Tracking

4.6k7.4k1](/packages/kimai-kimai)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
