Laravel 12 + Orchid Platform проект с API для управления постами и пользователями.
- Backend: Laravel 12, PHP 8.2+
- Admin Panel: Orchid Platform 14
- API: Laravel Sanctum
- Frontend Assets: Vite
- Database: MySQL/PostgreSQL
- PHP 8.2+
- Composer
- Node.js 18+
- MySQL 8.0+ или PostgreSQL 13+
- Клонирование репозитория
git clone <repository-url>
cd TWS-pract- Установка PHP зависимостей
composer install- Установка Node.js зависимостей
npm install- Настройка окружения
cp .env.example .env
php artisan key:generate- Настройка базы данных
# В .env файле указать параметры БД
php artisan migrate
php artisan db:seed- Сборка frontend assets
npm run dev # для разработки
npm run build # для продакшена- Запуск сервера
php artisan serve- URL:
http://localhost:8000/admin - Email:
admin@example.com - Пароль:
admin123
http://localhost:8000/api
POST /api/auth/register
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"password": "password123"
}Ответ:
{
"access_token": "1|abc123...",
"token_type": "Bearer"
}POST /api/auth/login
Content-Type: application/json
{
"email": "john@example.com",
"password": "password123"
}Ответ:
{
"access_token": "1|abc123...",
"token_type": "Bearer"
}GET /api/postsПараметры запроса:
sort_by- поле для сортировки (created_at, title)sort_order- порядок сортировки (asc, desc)limit- количество постов (по умолчанию 10)offset- смещение (по умолчанию 0)date_from- дата начала (YYYY-MM-DD)date_to- дата окончания (YYYY-MM-DD)
Пример:
GET /api/posts?sort_by=created_at&sort_order=desc&limit=20&date_from=2025-01-01POST /api/posts
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "Мой первый пост",
"text": "Содержание поста должно быть не менее 10 символов и не более 1000 символов."
}GET /api/posts/my
Authorization: Bearer {token}Параметры: те же, что и для получения всех постов.
{
"data": [
{
"id": 1,
"title": "Заголовок поста",
"text": "Содержание поста",
"created_at": "2025-08-17T15:30:00.000000Z",
"user_id": 1,
"author_name": "John Doe"
}
]
}app/
├── Http/
│ ├── Controllers/ # API контроллеры
│ ├── Requests/ # Валидация запросов
│ └── Resources/ # API ресурсы
├── Models/ # Eloquent модели
├── Services/ # Бизнес-логика
├── DTO/ # Data Transfer Objects
└── Orchid/ # Админ панель
├── Screens/ # Экраны админки
└── Layouts/ # Макеты экранов
- Контроллеры - обработка HTTP запросов
- Сервисы - бизнес-логика
- DTO - структуры данных
- Ресурсы - форматирование API ответов
- Orchid Screens - экраны админки
- Rate Limiting: 60 запросов в минуту для API
- Sanctum: токен-аутентификация
- Валидация: строгая валидация всех входных данных
- Роли: система ролей для разграничения доступа
# Запуск тестов
php artisan test
# Запуск тестов с покрытием
php artisan test --coverage# Оптимизация для продакшена
composer install --optimize-autoloader --no-dev
npm run build
php artisan config:cache
php artisan route:cache
php artisan view:cachedocker-compose up -d- Fork репозитория
- Создать feature branch (
git checkout -b feature/amazing-feature) - Commit изменения (
git commit -m 'Add amazing feature') - Push в branch (
git push origin feature/amazing-feature) - Создать Pull Request
При возникновении проблем создавайте Issue в репозитории.