Skip to content

akozadaev/symfony_quick

Repository files navigation

Symfony quick

Это проект, демонстрирующий базовый функционал Symfony — свободного фреймворка, написанного на языке программирования PHP.

Здесь реализовано:

  • REST API для работы с одной сущностью — Product

    • Методы создания, изменения, получения информации по ID сущности (записи), получения списка всех сущностей и удаления:

      • [POST] /api/products/create С телом вида:

        {
          "name": "Товар",
          "price": 1000,
          "description": "Неведомая хрень"
        }

        Ответ вида:

        {
          "id": 14,
          "name": "Товар",
          "price": 1000,
          "description": "Неведомая хрень"
        }

        Пример curl:

        curl -X POST http://localhost:8000/api/products/create \
          -H "Content-Type: application/json" \
          -d '{"name":"Товар", "price":1000, "description":"Неведомая хрень"}'
      • [PATCH] /api/products/edit/{id} С телом вида:

        {
          "name": "Неизвестный товар овар",
          "price": 1000000,
          "description": "Неведомая хрень номер два"
        }

        Ответ вида:

        {
          "id": 2,
          "name": "Неизвестный товар овар",
          "price": 1000000,
          "description": "Неведомая хрень номер два"
        }

        Пример curl:

        curl -X PATCH http://localhost:8000/api/products/edit/2 \
          -H "Content-Type: application/json" \
          -d '{"name":"Неизвестный товар овар", "price":1000000, "description":"Неведомая хрень номер два"}'
      • [GET] /api/products/{id} Ответ вида:

        {
          "id": 2,
          "name": "Неизвестный товар овар",
          "price": 1000000,
          "description": "Неведомая хрень номер два"
        }

        Пример curl:

        curl http://localhost:8000/api/products/2
      • [GET] /api/products Ответ вида:

        {
          "meta": {
            "count": 2
           },
           "data": [
           {
             "id": 5,
             "name": "Keyboard",
             "price": 1999,
             "description": "Ergonomic and stylish!"
           },
           {
             "id": 6,
             "name": "Товар",
             "price": 1000,
             "description": "Неведомая хрень"
           }
           ]
         }

        Пример curl:

        curl http://localhost:8000/api/products
      • [DELETE] /api/products/delete/{id} Ответ вида:

        {
          "success": true
        }

        Пример curl:

        curl -X DELETE http://localhost:8000/api/products/delete/2
      • [GET] /about

      Ответ - html страница img.png

  • Работа с БД PostgreSQL

  • Обработка исключительных ситуаций

  • Валидация полей объекта

  • Журналирование


Для работы приложения необходимо:

  • "php": ">=8.1"

  • Пустая БД PostgreSQL с параметрами как в .env (в нашем случае:

    simfony:simfony@127.0.0.1:5432/simfony?serverVersion=16&charset=utf8
    

    )

  • Web server (для разработки и проверки работоспособности достаточно команды):

    symfony server:start
    

Запуск:

  1. Перед запуском приложения выполнить миграции:

    ./bin/console doctrine:migrations:migrate
  2. Непосредственно запуск:

    symfony server:start

предварительно нужно прописать переменную среды

  export PATH="$HOME/.symfony5/bin:$PATH"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published