Человек-редиска

Как сделать авторизацию в личный кабинет на сайте

В теме 2 сообщения

logo.png

 

Laravel — это современный PHP-фреймворк, который позволяет быстро и эффективно создавать веб-приложения. Его мощные инструменты и простая структура делают его идеальным выбором для разработки личного кабинета для вашего SAMP сервера. В этой статье мы создадим авторизацию для личного кабинета, которая будет работать с существующей базой данных SAMP сервера.

 

Мы настроим три страницы:

1. Главная: / — основная страница сайта.

2. Авторизация: /auth — форма для ввода никнейма и пароля.

3. Личный кабинет: /profile — страница с информацией об игроке после авторизации.

 

Для начала давайте установим Laravel и подготовим базовое окружение.

 

 

 

Установка Laravel

1. Убедитесь, что ваш компьютер соответствует системным требованиям Laravel: 

  • PHP версии 8.2 или выше
  • Composer (менеджер зависимостей PHP)

 

2. Скачайте Laravel с помощью Composer 

Откройте терминал и выполните следующую команду, чтобы создать новый проект Laravel: composer create-project laravel/laravel samp 

Здесь samp — это название папки для проекта. Вы можете указать свое. 

 

3. Перейдите в папку проекта: cd samp

 

4. Настройте подключение к базе данных. 

Laravel использует файл .env для хранения конфигурации. Найдите строки, отвечающие за подключение к базе данных, и укажите данные вашей SAMP базы:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=название_базы
DB_USERNAME=имя_пользователя
DB_PASSWORD=пароль

 

5. Запустите встроенный сервер разработки Laravel: php artisan serve

После запуска вы увидите сообщение, что сервер работает, например, на 127.0.0.1:8000. Перейдите по этой ссылке в браузере.

 

 

 

Настройка роутов

Откройте файл routes/web.php, который отвечает за определение роутов вашего сайта. Добавим туда наши роуты:

<?php

use Illuminate\Support\Facades\Route;

// Главная страница
Route::get('/'function () {
    return view('welcome'); // Страница для главной
});

// Страница авторизации
Route::get('/auth'function () {
    return view('auth'); // Отдельный шаблон для авторизации
});

// Личный кабинет
Route::get('/profile'function () {
    return view('profile'); // Страница для личного кабинета
});

 

Для каждого роута нам понадобятся базовые HTML-шаблоны. Создадим их в папке resources/views:

1. Главная страница. Создайте файл resources/views/welcome.blade.php:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Главная</title>
</head>
<body>
    <h1>Добро пожаловать на ваш сайт!</h1>
    <a href="/auth">Войти</a>
</body>
</html>

 

2. Страница авторизации. Создайте файл resources/views/auth.blade.php:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Авторизация</title>
</head>
<body>
    <h1>Вход в личный кабинет</h1>
    <form action="/auth" method="POST">
        @csrf
        <label for="nickname">Ник:</label>
        <input type="text" id="nickname"  data-cke-saved-name="nickname" name="nickname" required>
        <br>
        <label for="password">Пароль:</label>
        <input type="password" id="password"  data-cke-saved-name="password" name="password" required>
        <br>
        <button type="submit">Войти</button>
    </form>
</body>
</html>

 

3. Личный кабинет. Создайте файл resources/views/profile.blade.php:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Личный кабинет</title>
</head>
<body>
    <h1>Добро пожаловать в личный кабинет!</h1>
    <p>Здесь будет отображаться информация о вашем аккаунте.</p>
    <a href="/">Вернуться на главную</a>
</body>
</html>

 

Тестирование роутов. Теперь вы можете проверить роуты в браузере:

  • Перейдите на 127.0.0.1:8000 — главная страница.
  • Нажмите "Войти" и перейдите на 127.0.0.1:8000/auth — страница авторизации.
  • Для /profile пока просто введите 127.0.0.1:8000/profile в адресной строке. Позже мы защитим эту страницу.

 

 

Миграции

Миграции в Laravel позволяют выполнять определённые действия с базой данных, такие как создание таблиц, добавление, изменение или удаление колонок. Все манипуляции с базой данных происходят через миграции, что делает процесс удобным и структурированным.

 

Вот несколько основных команд для работы с миграциями:

Создание таблицы: php artisan make:migration create_news_table

Проверка статуса миграций: php artisan migrate:status

Откат последней миграции: php artisan migrate:rollback

 

Откройте файл database/migrations/create_users_table.php. Если такого файла нет, создайте его с помощью команды в терминале: php artisan make:migration create_users_table

 

Откройте файл и добавьте следующую структуру таблицы в метод up:

Schema::create('users', function (Blueprint $table) {
    $table->id(); // Автоматический ID
    $table->string('nickname')->unique(); // Уникальный никнейм пользователя
    $table->string('email')->unique(); // Уникальный email
    $table->timestamp('email_verified_at')->nullable(); // Подтверждения email
    $table->unsignedBigInteger('player_money')->default(0); // Деньги пользователя
    $table->unsignedBigInteger('player_donate')->default(0); // Донат пользователя
    $table->unsignedInteger('player_skin')->default(0); // ID скина
    $table->string('password'); // Пароль
    $table->rememberToken(); // Токен для "запомнить меня"
    $table->timestamps(); // created_at и updated_at
});

 

После того как вы добавили необходимые поля в файл миграции, выполните следующую команду: php artisan migrate.

 

По завершении выполнения команды таблица будет создана. Вы можете открыть phpMyAdmin или любой другой инструмент для работы с базой данных и убедиться, что таблица появилась с нужными полями.

 

 

Настройка модели

Если у вас таблица называется accounts, то в Laravel рекомендуется создать модель с именем Account, чтобы придерживаться стандартов. Laravel автоматически связывает название модели во множественном числе с таблицей, если это возможно. Например:

  • Модель Account по умолчанию будет связана с таблицей accounts. 
  • Модель Player будет связана с таблицей players.

Если ваше название модели совпадает с названием таблицы (во множественном числе), дополнительных настроек не требуется. Однако, если название отличается, нужно будет явно указать таблицу в модели: protected $table = 'my_users'; 

 

Если ваша таблица называется accounts — создайте модель Account: php artisan make:model Account 

Если ваша таблица называется users — откройте файл app/Models/User.php и добавьте все поля в $fillable, которые будут использоваться на сайте:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
    use HasFactory, Notifiable;

    // Поля, которые будут использоваться на сайте.
    protected $fillable = [
        'nickname',
        'email',
        'player_money',
        'player_donate',
        'player_skin',
        'password',
    ];

    // Поля, которые скрываются при сериализации модели.
    protected $hidden = [
        'password',
    ];
}

 

 

 

Реализация логики авторизации

1. Создание контроллера. Создадим контроллер для обработки роутов авторизации и личного кабинета. Назовём его AuthController: php artisan make:controller AuthController 

 

2. Реализация методов в контроллере. Откройте файл app/Http/Controllers/AuthController.php и реализуйте методы:

 

Отображение формы авторизации:

public function showLoginForm()
{
    return view('auth');
}

 

Обработка авторизации:

public function login(Request $request)
{
    // Валидируем данные
    $request->validate([
        'nickname' => 'required|string',
        'password' => 'required|string',
    ]);

    // Получаем никнейм и пароль
    $nickname = $request->input('nickname');
    $password = $request->input('password');

    // Хэшируем пароль в MD5
    $hashedPassword = md5($password);

    // Проверяем пользователя в базе данных
    $user = User::where('nickname', $nickname)
                ->where('password', $hashedPassword)
                ->first();

    if ($user) {
        // Сохраняем пользователя в сессии
        $request->session()->put('user', $user);

        // Редирект в личный кабинет
        return redirect()->route('profile');
    }

    // Возвращаем обратно с ошибкой
    return back()->withErrors(['message' => 'Неверный никнейм или пароль']);
}

 

Если в вашей базе данных пароли хранятся в формате bcrypt:

public function login(Request $request)
{
    // Валидируем данные
    $request->validate([
        'nickname' => 'required|string',
        'password' => 'required|string',
    ]);

    // Получаем никнейм и пароль
    $nickname = $request->input('nickname');
    $password = $request->input('password');

    // Проверяем пользователя в базе данных
    $user = User::where('nickname', $nickname)->first();

    if ($user && Hash::check($password, $user->password)) {
        // Сохраняем пользователя в сессии
        $request->session()->put('user', $user);

        // Редирект в личный кабинет
        return redirect()->route('profile');
    }

    // Возвращаем обратно с ошибкой
    return back()->withErrors(['message' => 'Неверный никнейм или пароль']);
}

 

Личный кабинет:

public function profile(Request $request)
{
    // Проверяем, авторизован ли пользователь
    $user = $request->session()->get('user');

    if (!$user) {
        return redirect()->route('auth.form')->withErrors(['message' => 'Сначала войдите в систему']);
    }

    return view('profile', ['user' => $user]);
}

 

Выход из аккаунта:

public function logout(Request $request)
{
    // Удаляем данные из сессии
    $request->session()->forget('user');
    return redirect('/');
}

 

AuthController.php:

  открыть спойлер

 

3. Настройка роутов. Обновим routes/web.php, чтобы все роуты ссылались на методы контроллера:

<?php

use App\Http\Controllers\AuthController;
use Illuminate\Support\Facades\Route;

// Главная страница
Route::get('/'function () {
    return view('welcome');
});

// Авторизация
Route::get('/auth', [AuthController::class'showLoginForm'])->name('auth.form');
Route::post('/auth', [AuthController::class'login'])->name('auth.login');

// Личный кабинет
Route::get('/profile', [AuthController::class'profile'])->name('profile');

// Выход
Route::get('/logout', [AuthController::class'logout'])->name('auth.logout');

 

 

 

Обновление шаблонов

Чтобы пользователи видели сообщения об ошибках, добавим их в шаблон авторизации resources/views/auth.blade.php:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Авторизация</title>
</head>
<body>
    @if ($errors->any())
        <div style="color: red;">
            @foreach ($errors->all() as $error)
                <p>{{ $error }}</p>
            @endforeach
        </div>
    @endif

    <h1>Вход в личный кабинет</h1>
    <form action="/auth" method="POST">
        @csrf
        <label for="nickname">Ник:</label>
        <input type="text" id="nickname"  data-cke-saved-name="nickname" name="nickname" required>
        <br>
        <label for="password">Пароль:</label>
        <input type="password" id="password"  data-cke-saved-name="password" name="password" required>
        <br>
        <button type="submit">Войти</button>
    </form>
</body>
</html>

 

Отображение данных пользователя в личном кабинете. В файле resources/views/profile.blade.php выведем данные из базы:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Личный кабинет</title>
</head>
<body>
    <h1>Добро пожаловать, {{ $user->nickname }}!</h1>
    <p>Ваш email: {{ $user->email }}</p>
    <p>Игровой баланс: {{ $user->player_money }}</p>
    <p>ID скина: {{ $user->player_skin }}</p>
    <p>Донат счет: {{ $user->player_donate }}</p>
    <a href="/">Вернуться на главную</a>
</body>
</html>

 

Скриншот:

  открыть спойлер

 

 

Дополнительно про Blade:

  открыть спойлер

 

В принципе, это базовая и максимально простая настройка авторизации. Вам остается только добавить собственную вёрстку. Также рекомендую использовать Middleware для защиты роутов, например, роута личного кабинета. Надеюсь, у вас всё получилось! Желаю успешной и продуктивной разработки ваших проектов!

 

Готовый сайт для SAMP проекта: https://pawno-rus.ru/topic/8225-gotovyy-sayt-dlya-samp-proekta/

 

 

  Цитата

 

Я намеренно выбрал подход с базовыми примерами, чтобы максимально упростить вход в Laravel для новичков, которые до сих пор работают с чистым PHP. Когда человек впервые сталкивается с Laravel, ему может быть сложно сразу разобраться в таких концепциях, как MVC, Dependency Injection или Service Container. Поэтому моя цель - дать базу, которая покажет простоту и мощь Laravel, без избыточных сложностей на старте.

 

Паттерны и принципы, безусловно, важны, но новичку важно сначала увидеть результат. Когда он увидит, как легко можно реализовать авторизацию с Laravel, он захочет углубиться в изучение фреймворка, а уже затем освоит лучшие практики. Я также считаю, что аналогии с ванильным PHP - хороший инструмент, но их нужно вводить постепенно, чтобы не перегрузить материал.

 

На данном этапе статья с базовыми примерами рассчитана на тех, кто только делает первые шаги, и для них слишком сложные темы могут быть пугающими. Главная цель - мотивировать их изучать Laravel дальше.

 

Читать далее...  

 

Отредактировано пользователем AndreyMarkelov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Человек-редиска
      От Редиска

       
      Laravel 12, выпущенный 24 февраля 2025 года, представляет собой значительное обновление популярного PHP-фреймворка, направленное на улучшение разработки веб-приложений. В этой статье мы рассмотрим ключевые изменения и нововведения, представленные в этой версии.

       
      Новые стартовые наборы: современный подход к разработке
      Одним из наиболее заметных изменений в Laravel 12 является введение новых стартовых наборов (starter kits) для React, Vue и Livewire, заменяющих устаревшие Breeze и Jetstream. Эти наборы обеспечивают современную и гибкую основу для разработки веб-приложений с использованием популярных фронтенд-технологий.

      React Starter Kit: основан на Inertia, React 19, TypeScript, Tailwind CSS и компонентах shadcn. Он идеально подходит для создания современных одностраничных приложений (SPA) с использованием React.

      Vue Starter Kit: построен с использованием Inertia, Vue 3, TypeScript, Tailwind CSS и компонентов shadcn-vue. Этот набор предоставляет мощную и типобезопасную основу для разработчиков, предпочитающих Vue.

      Livewire Starter Kit: предназначен для тех, кто использует Livewire и Blade, обеспечивая плавную интеграцию с Tailwind CSS и компонентами shadcn. Он упрощает создание интерактивных пользовательских интерфейсов без необходимости в обширном написании JavaScript-кода.

      Эти новые стартовые наборы обеспечивают быструю и эффективную настройку проектов, позволяя разработчикам сосредоточиться на создании функциональности, а не на начальной конфигурации.

       
      Улучшенная работа с API: поддержка GraphQL и версионирование
      Laravel 12 значительно улучшает разработку API, вводя нативную поддержку GraphQL и новую систему версионирования API. Эти обновления упрощают управление API и облегчают создание масштабируемых и высокопроизводительных приложений.

      Поддержка GraphQL: позволяет разработчикам запрашивать только необходимые данные, уменьшая размер передаваемых данных и улучшая время отклика. Вместо множества REST-эндпоинтов, один запрос GraphQL может получить точные и структурированные данные, повышая эффективность API-вызовов.

      Версионирование API: переработано для лучшей организации. Ранее версии API указывались вручную в маршрутах, что приводило к загромождению файлов маршрутов. Теперь, с новым подходом, маршруты API структурированы и масштабируемы, что облегчает поддержку нескольких версий API без избыточного дублирования.

      Эти улучшения делают разработку API более эффективной, укрепляя позиции Laravel 12 как предпочтительного фреймворка для создания высокопроизводительных и хорошо организованных API.

       
      AI-помощник для отладки: интеллектуальный подход к решению проблем
      Laravel 12 представляет AI-помощника для отладки, который помогает разработчикам быстрее выявлять и устранять проблемы. Вместо использования традиционных методов отладки, таких как dd() или dump(), новый метод debug() предоставляет информацию в реальном времени и предлагает возможные решения.

      Пример использования:
      debug($variable)->suggest(); Этот подход ускоряет процесс отладки и повышает производительность разработки, позволяя быстрее находить и исправлять ошибки.

       
      Прочие улучшения и изменения
      Удаление поддержки Carbon 2: Laravel 12 теперь требует использования Carbon 3, обеспечивая более современные и эффективные методы работы с датами и временем. Обновление Laravel Installer: необходимо обновить Laravel Installer для поддержки Laravel 12 и новых стартовых наборов. Метод Concurrency::run: теперь при вызове с ассоциативным массивом возвращает результаты операций вместе с соответствующими ключами, улучшая управление параллельными задачами. Метод $request->mergeIfMissing(): теперь позволяет объединять вложенные массивы данных с использованием нотации «точка», что упрощает работу с вложенными данными в запросах.  
      Заключение
      Laravel 12 представляет собой значительный шаг вперед в развитии фреймворка, предлагая современные инструменты и улучшения для разработчиков. Новые стартовые наборы, улучшенная работа с API и AI-помощник для отладки делают разработку с использованием Laravel еще более эффективной и приятной. Рекомендуется обновить существующие проекты до Laravel 12, чтобы воспользоваться всеми преимуществами этой версии.
    • Человек-редиска
      От Редиска

       
      Laravel vs Symfony: Полное руководство для новичков

      Введение

      Если вы начинающий разработчик PHP или опытный программист, желающий выбрать лучший фреймворк для своих проектов, Laravel и Symfony — это два ведущих фреймворка, которые стоит рассмотреть. Оба имеют мощные возможности, но каждый из них подходит для разных случаев и предпочтений. В этой статье мы подробно рассмотрим, чем отличаются Laravel и Symfony, их плюсы, минусы и где они лучше всего применимы.



      Что такое Laravel?

      Laravel — это популярный PHP-фреймворк, который делает разработку проще и приятнее благодаря удобным инструментам, доступной документации и современному подходу к программированию.
       
      Год выпуска: 2011 Создатель: Taylor Otwell Основная цель: Облегчить процесс разработки веб-приложений с использованием элегантного синтаксиса.
      Основные особенности Laravel:

      - Eloquent ORM: Удобная работа с базой данных.
      - Blade шаблонизатор: Легкий и понятный способ работы с шаблонами.
      - Artisan CLI: Командная строка для автоматизации задач.
      - Laravel Horizon и Scout: Расширенные инструменты для работы с очередями и поиском.
      - Встроенная поддержка API: Удобные возможности для разработки RESTful API.



      Что такое Symfony?

      Symfony — это мощный PHP-фреймворк с фокусом на масштабируемость, гибкость и модульность. Он особенно популярен среди крупных компаний и используется для создания сложных и высоконагруженных приложений.
       
      Год выпуска: 2005 Создатель: Fabien Potencier Основная цель: Предоставить разработчикам надежную основу для создания масштабируемых приложений.
      Основные особенности Symfony:

      - Bundles и Components: Модульная архитектура, позволяющая переиспользовать код.
      - Twig шаблонизатор: Удобный и мощный инструмент для работы с представлениями.
      - Doctrine ORM: Гибкое средство для работы с базой данных.
      - Поддержка консольных приложений: Symfony Console для автоматизации задач.
      - Высокая совместимость: Интеграция с различными библиотеками и стандартами.



      Сравнение Laravel и Symfony

      1. Простота использования

      Laravel считается более простым для новичков благодаря лаконичной документации, интуитивно понятным инструментам и готовым решениям "из коробки". Symfony, в свою очередь, требует большего понимания основ программирования и может показаться сложным на начальных этапах.

      2. Производительность

      Symfony, как правило, имеет более высокую производительность благодаря своей модульной архитектуре и возможностям оптимизации. Laravel, несмотря на это, предлагает современные инструменты, которые позволяют достигать высокой производительности в большинстве приложений.

      3. Гибкость

      Symfony предоставляет разработчикам больше свободы и возможностей для настройки проекта. Laravel больше ориентирован на стандартные решения и удобство использования.

      4. Сообщество и поддержка

      Laravel обладает активным сообществом и огромным количеством видеокурсов, туториалов и форумов. Symfony имеет более профессиональное сообщество и часто используется в корпоративной среде.



      Когда выбрать Laravel?

      - Для быстрых MVP и стартапов.
      - Если вы новичок в PHP.
      - Когда важна скорость разработки и наличие готовых решений.
      - Для проектов с частыми изменениями.

      Когда выбрать Symfony?

      - Для крупных и сложных корпоративных приложений.
      - Если требуется высокая гибкость и масштабируемость.
      - Для проектов, которые должны соответствовать строгим стандартам качества.



      Заключение

      Laravel и Symfony — это два отличных PHP-фреймворка, каждый из которых имеет свои сильные стороны. Если вы начинающий разработчик или работаете над небольшим проектом, Laravel может быть лучшим выбором. Если же вам нужно создать масштабируемое и высоконадежное приложение, Symfony станет отличным решением.

      В конечном итоге выбор зависит от ваших целей, уровня знаний и требований к проекту. Надеемся, эта статья поможет вам принять правильное решение!
    • Человек-редиска
      От Редиска


      50 лучших инструментов и ресурсов Laravel (2025)

      Laravel продолжает оставаться одним из самых популярных фреймворков для разработки веб-приложений, предоставляя разработчикам мощные инструменты для создания масштабируемых и элегантных решений. В этой статье мы собрали 50 лучших инструментов и ресурсов Laravel на 2025 год, которые помогут вам ускорить разработку, улучшить качество кода и повысить продуктивность.


       
      Категории инструментов и ресурсов:
      IDE и текстовые редакторы Пакеты для Laravel Инструменты для тестирования Развертывание и DevOps Ресурсы для обучения Плагины и утилиты для разработки API-интеграции Инструменты для мониторинга и аналитики Расширения для улучшения производительности Локализация и интернационализация

       
      1. IDE и текстовые редакторы
       
      PhpStorm
      Платный IDE, который интегрируется с Laravel, поддерживает автодополнение, рефакторинг и встроенные инструменты для работы с базами данных. Visual Studio
      Code Бесплатный редактор с многочисленными расширениями для Laravel, такими как Laravel Blade Snippets и Laravel Artisan. Sublime Text
      Легковесный текстовый редактор с расширениями для Blade и PHP.

       
      2. Пакеты для Laravel
       
      Laravel Breeze
      Минималистичная стартовая аутентификация с Blade и Tailwind CSS. Spatie Laravel Permission
      Простое управление ролями и правами доступа. Laravel Debugbar
      Инструмент для профилирования и отладки. Laravel Cashier
      Упрощает интеграцию с системами платежей, такими как Stripe. Livewire
      Создание динамичных пользовательских интерфейсов с использованием PHP без написания JavaScript. Inertia.js
      Полноценный SPA на основе Blade и Vue.js или React. Filament
      Административная панель нового поколения для Laravel. Spatie Media Library
      Легкое управление загрузкой и хранением файлов.

       
      3. Инструменты для тестирования
       
      PestPHP
      Лаконичный тестовый фреймворк для Laravel. PHPUnit
      Классический инструмент для модульного тестирования в PHP. Mockery
      Библиотека для создания заглушек в тестах. Laravel Dusk
      Браузерное тестирование с использованием Selenium WebDriver.

       
      4. Развертывание и DevOps
       
      Laravel Forge
      Инструмент для автоматизированного развертывания приложений. Envoyer
      Zero-downtime deployment для проектов Laravel. Docker
      Контейнеризация приложений для упрощения разработки и развертывания. Kubernetes
      Оркестрация контейнеров для больших и сложных приложений. GitHub Actions
      Автоматизация CI/CD-процессов для Laravel. Deployer
      Бесплатный инструмент для автоматизированного развертывания PHP-приложений. Horizon
      Мониторинг очередей в Laravel.

       
      5. Ресурсы для обучения
       
      Laravel Documentation
      Официальная документация Laravel. Laracasts
      Обучающие видеоуроки по Laravel. YouTube-каналы:
      - Laravel Daily
      - Traversy Media
      - Codecourse Книги:
      - "Laravel Up & Running" от Matt Stauffer
      - "Mastering Laravel" от Christopher John Pecoraro Форумы:
      - Laracasts Forum
      - Laravel.io

       
      6. Плагины и утилиты для разработки
       
      Laravel IDE Helper
      Автогенерация файлов для улучшенного автодополнения в IDE. Tinkerwell
      Интерактивный консольный инструмент для выполнения кода Laravel. Laravel Telescope
      Инструмент для мониторинга запросов, исключений и задач. Clockwork
      Расширение для профилирования и отладки приложений.

       
      7. API-интеграции
       
      Laravel Passport
      Полная реализация OAuth2-сервера для API. Laravel Sanctum
      Легковесное решение для аутентификации API и SPA. Swagger UI
      Генерация документации для REST API.

       
      8. Инструменты для мониторинга и аналитики
       
      Sentry
      Мониторинг ошибок и логирование. New Relic
      Аналитика производительности приложений. Bugsnag
      Отслеживание и обработка ошибок.

       
      9. Расширения для улучшения производительности
       
      OPcache
      Улучшает производительность путем кэширования байт-кода PHP. Redis
      Используется для кеширования данных и управления очередями. Memcached
      Высокопроизводительное кеширование данных.

       
      10. Локализация и интернационализация
       
      Laravel Lang
      Пакет с переводами для множества языков. Poedit
      Приложение для управления переводами. Transifex
      Платформа для совместной работы над переводами.

       
      Остальные инструменты и ресурсы
       
      FakerPHP
      Генерация фейковых данных для тестов. Laravel Mix
      Упрощенная сборка ресурсов. Tailwind CSS
      Утилитарный CSS-фреймворк для создания интерфейсов. Bootstrap
      Популярный CSS-фреймворк. Webpack
      Модульный бандлер для фронтенда. Vite
      Быстрая сборка фронтенда с интеграцией в Laravel. SaaS Boilerplates
      Готовые шаблоны для старта разработки SaaS-приложений.
    • gais_st
      От gais_st
      Всем доброго дня. Покупал для себя, не пригодилось, возможно где то подобное что то слито.
      Панель сайта lk.no-codes.ru

       

       

       

       

       

       
      Дизайн немного различается, функционал совпадает.

      Что же тут вообще есть:
       
      -Система тикетов
      -Авто сборка лаунчеров Arizona Games
      -Удобная система пополнения Баланса
      -Система уведомлений
      -Защита от xss аттак
      -Система отзывов
      -Состояние баланса
      -Полноценная админ-панель
      -Добавление товара
      -Покупка товара
      -Информация товара когда купили:
      -Описание
      -Кнопка скачать

      Данная панель работает на VPS если хотите что бы была автосборка лаунчера, если же просто для себя взять для обычного магазина с товарами, то можно и обычный WEB хостинг использовать.

      Подключение БД: engine\config.php

      $host  - хост БД
      $dbname - имя БД
      $username - имя пользователя БД
      $password - пароль БД

      Скачать: NOCODES-PANEL.zip
      VT: тык

      Так же возможно скоро солью старые логи аризоны геймс, полностью пофикшенные от багов и бэкдоров, максимально доведённые до ума 1к1, ну и старый UCP сайт родины, полностью так же 1к1
      Глянуть можно тутс: https://rodina03e.cores.sbs/ (напишу на всякий, не реклама)
       
       
    • Человек-редиска
      От Редиска

       
      Описание проекта
      Готовая регистрация UCP. Регистрация и авторизация как в личный кабинет пользователя, так и в административную панель. В административной панели администратор может подтвердить или отменить регистрацию. Также имеется возможность редактировать данные пользователя. Поле «Сообщение» является необязательным, но если необходимо что-то отметить, можно оставить сообщение, которое будет отображено в письме пользователя. Проект включает только регистрацию с авторизацией, без дополнительного функционала, такого как донат или новости. Также присутствует минимальная верстка от Bootstrap. Этот проект является базой для вашего сайта.
       
      Требования для запуска
      PHP версии 8.2+ Composer Node.js (npm) MySQL версии 8.0  
      Инструкция по запуску
      1. Скачивание проекта:
      Скачайте архив с проектом и распакуйте его. 2. Создание базы данных:
      Создайте пустую базу данных в MySQL. 3. Настройка .env
      В корне проекта должен находиться файл .env. Если его нет, скопируйте файл env.example и переименуйте его в .env. 4. Генерация ключа приложения:
      В терминале выполните команду: php artisan key:generate 5. Настройка .env файла:
      Откройте файл .env и укажите свои настройки:
       
      Данные проекта:
      SAMP_SERVER_NAME="Samp Role Play" SAMP_SERVER_IP=127.0.0.1:7777  
      Подключение к базе данных:
      DB_HOST=localhost DB_PORT=3306 DB_DATABASE=samp-ucp DB_USERNAME=root DB_PASSWORD=  
      Суперадмин и контактная почта:
      SUPER_ADMIN_NAME="Super_Admin" SUPER_ADMIN_PASSWORD=6Hm2Q74JW3vXnYE4rWEy7JrC CONTACT_EMAIL=support@samp-rp.ru  
      Настройка почтового клиента:
      MAIL_MAILER=smtp MAIL_HOST=sandbox.smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=dd754ec54ff399 MAIL_PASSWORD=1b87f0d6cf1841 MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS="hello@example.com"  
      6. Установка зависимостей:
      Установите зависимости с помощью следующих команд:
      composer install npm install  
      7. Очистка кеша:
      Выполните команды для очистки кеша:
      php artisan cache:clear php artisan route:clear php artisan config:clear php artisan view:clear  
      8. Сборка проекта:
      Соберите проект с помощью команды:
      npm run build  
      9. Добавление пользовательских полей (опционально):
      Если необходимо добавить новые поля в таблицу пользователей, откройте файл миграции: database/migrations/0001_01_01_000000_create_users_table.php.
      Например, чтобы добавить поле "донат" после email, добавьте строку:
      $table->integer('donate')->default(0); Объяснение: integer — тип данных, default(0) — значение по умолчанию.
       
      Затем откройте файл app/Models/User.php и добавьте новое поле в массив $fillable:
      protected $fillable = [     'name',         // Никнейм пользователя     'birth_date',   // Дата рождения     'gender',       // Пол     'skin',         // ИД скина     'email',        // Адрес электронной почты     'donate',       // Донат     'password',     // Пароль     'status',       // Статус пользователя ];  
      10. Миграция и сидеры:
      Выполните миграцию и примените сидеры (сидер создаёт суперадмина, без которого вход в админку невозможен):
      php artisan migrate:fresh --seed  
      11. Запуск проекта:
      Для запуска локального сервера выполните команду:
      php artisan serve  
      Дополнительная информация
      Более подробную информацию о структуре проекта и настройке вы можете найти по ссылке: > Готовый сайт для SAMP проекта <
       
      Скачать: samp-ucp.zip
      Скриншоты: