Список задач и задач бэкенд-разработчика на Laravel (PHP):
Основные задачи
Разработка приложения серверной логики:
Создание и оптимизация RESTful API.
Описание контроллеров, моделей и сервисов.
Разработка промежуточного программного обеспечения для обработки запросов.
Работа с базами данных:
Проектирование и управление структурами баз данных (миграции).
Оптимизация запросов и индексация.
Работа с ORM (Eloquent) и запросами SQL.
Интеграция с внешними источниками:
Реализация интеграций с API третьих сторон (например, платежные системы, почтовые сервисы).
Работа с вебхуками.
Функциональность реализации:
Аутентификация и авторизация пользователей (Passport, Sanctum, JWT).
Работа с ролями и правами доступа.
Разработка фоновых задач и очередей (Queues, Jobs).
Обработка файлов и работа с хранилищами (Storage
Тестирование и отладка:
Взаимодействие с фронтенд-разработчиками для обеспечения API.
Участие в обсуждениях конфигурации приложений.
Работа с проект-менеджерами и дизайнерами для реализации требований.
Документирование:
Обработка запросов в техническую поддержку.
Исправление ошибок в продакшене.
Ключевые инструменты и технологии
Фреймворк: Laravel.
Язык: PHP.
Базы данных: MySQL
Кэширование: Redis
Сервисы: Docker
Контроль способа: Git (GitHub)
Основные задачи
Разработка приложения серверной логики:
Создание и оптимизация RESTful API.
Описание контроллеров, моделей и сервисов.
Разработка промежуточного программного обеспечения для обработки запросов.
Работа с базами данных:
Проектирование и управление структурами баз данных (миграции).
Оптимизация запросов и индексация.
Работа с ORM (Eloquent) и запросами SQL.
Интеграция с внешними источниками:
Реализация интеграций с API третьих сторон (например, платежные системы, почтовые сервисы).
Работа с вебхуками.
Функциональность реализации:
Аутентификация и авторизация пользователей (Passport, Sanctum, JWT).
Работа с ролями и правами доступа.
Разработка фоновых задач и очередей (Queues, Jobs).
Обработка файлов и работа с хранилищами (Storage
Тестирование и отладка:
Взаимодействие с фронтенд-разработчиками для обеспечения API.
Участие в обсуждениях конфигурации приложений.
Работа с проект-менеджерами и дизайнерами для реализации требований.
Документирование:
Обработка запросов в техническую поддержку.
Исправление ошибок в продакшене.
Ключевые инструменты и технологии
Фреймворк: Laravel.
Язык: PHP.
Базы данных: MySQL
Кэширование: Redis
Сервисы: Docker
Контроль способа: Git (GitHub)
SELECT auto_mark_model, COUNT(*) AS count
FROM test_hamroh.auto_users
WHERE auto_mark_model IS NOT NULL
GROUP BY auto_mark_model;
FROM test_hamroh.auto_users
WHERE auto_mark_model IS NOT NULL
GROUP BY auto_mark_model;
SELECT
auto_mark_model,
COUNT(DISTINCT user_id) AS unique_user_count
FROM
test_hamroh.auto_users
WHERE
auto_mark_model IS NOT NULL
AND auto_mark_model NOT IN ('null', '', 'null null')
GROUP BY
auto_mark_model;
auto_mark_model,
COUNT(DISTINCT user_id) AS unique_user_count
FROM
test_hamroh.auto_users
WHERE
auto_mark_model IS NOT NULL
AND auto_mark_model NOT IN ('null', '', 'null null')
GROUP BY
auto_mark_model;
fv@pc:~/projects-PRO/redis$ pip show requests
Name: requests
Version: 2.32.3
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache-2.0
Location: /home/fv/.local/lib/python3.10/site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by:
Name: requests
Version: 2.32.3
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache-2.0
Location: /home/fv/.local/lib/python3.10/site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by:
php artisan db:seed --class=CarBrandsSeeder
php artisan db:seed --class=CarModelsSeeder
php artisan db:seed --class=CitySynonymsSeeder
php artisan db:seed --class=CarModelsSeeder
php artisan db:seed --class=CitySynonymsSeeder
// if (!Auth::user()->can('edit posts')) {
// return response()->json([
// 'message' => 'У вас нет прав для создания поста.'
// ], 403);
// }
// return response()->json([
// 'message' => 'У вас нет прав для создания поста.'
// ], 403);
// }
laravel
// if (!Auth::user()->can('edit posts')) { // return response()->json([ // 'message' => 'У вас нет прав для создания поста.' // ], 403); // }
проверка доступа внутри контроллера laravel permision
importScripts("https://js.pusher.com/beams/service-worker.js");
http://localhost:3000/service-worker.js
<script src="https://js.pusher.com/beams/1.0/push-notifications-cdn.js"></script>
<script>
const beamsClient = new PusherPushNotifications.Client({
instanceId: '80677545-edec-4309-abd5-4148808f3e70',
});
beamsClient.start()
.then(() => beamsClient.addDeviceInterest('hello'))
.then(() => console.log('Successfully registered and subscribed!'))
.catch(console.error);
</script>
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer 07CE6C9E428CED08DA21C8320412E40B6ECD887C64FECAC6BEFBA97A3405D7A9" \
-X POST "https://80677545-edec-4309-abd5-4148808f3e70.pushnotifications.pusher.com/publish_api/v1/instances/80677545-edec-4309-abd5-4148808f3e70/publishes" \
-d '{"interests":["hello"],"web":{"notification":{"title":"Hello","body":"Hello, world!"}}}'
http://localhost:3000/service-worker.js
<script src="https://js.pusher.com/beams/1.0/push-notifications-cdn.js"></script>
<script>
const beamsClient = new PusherPushNotifications.Client({
instanceId: '80677545-edec-4309-abd5-4148808f3e70',
});
beamsClient.start()
.then(() => beamsClient.addDeviceInterest('hello'))
.then(() => console.log('Successfully registered and subscribed!'))
.catch(console.error);
</script>
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer 07CE6C9E428CED08DA21C8320412E40B6ECD887C64FECAC6BEFBA97A3405D7A9" \
-X POST "https://80677545-edec-4309-abd5-4148808f3e70.pushnotifications.pusher.com/publish_api/v1/instances/80677545-edec-4309-abd5-4148808f3e70/publishes" \
-d '{"interests":["hello"],"web":{"notification":{"title":"Hello","body":"Hello, world!"}}}'