Демо-приложение Manifold Laravel

Это демонстрационное приложение покажет вам, как автоматически вводить ваши учетные данные ресурсов Manifold в ваше приложение Laravel с помощью php-пакета manifest-laravel.

Большая часть этого демонстрационного приложения является шаблонным и исходит из этого великолепного вступительного ларакаста по настройке Laravel auth и config, за исключением того, что оно извлекает свои конфигурационные переменные непосредственно из вашего проекта Manifold (вместо редактирования вашего файла .env и поддержания его в актуальном состоянии) .

Я проведу вас через три основных шага, чтобы воссоздать код в этом репо:

  1. Установка демонстрационного приложения Laravel
  2. Настройка некоторых ресурсов для использования внутри manifestold.co
  3. Подключение этих ресурсов к вашему приложению

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

Вы можете найти репозиторий для этой демонстрации здесь.

Шаги по созданию простого Laravel-приложения

Установить Composer

Следуйте инструкциям здесь, чтобы установить Composer.

Установить базовое демонстрационное приложение

Запустить:

mkdir demo-app && composer create-project laravel/laravel demo-app && cd demo-app

Убедитесь, что он запущен, с помощью команды:

php artisan serve

Вы должны увидеть шаблонную домашнюю страницу Laravel 5, не стесняйтесь закрывать службу CTL+c

Добавьте пакет манифольд-ларавел:

Установите и опубликуйте конфигурацию

composer require manifoldco/manifold-laravel
php artisan vendor:publish

Выберите manifoldco\manifold-laravel из списка поставщиков.

Это сгенерирует config/manifold.php и добавит две строки в ваш .env файл:

MANIFOLD_API_TOKEN=
MANIFOLD_PROJECT=

Вы можете оставить их пока пустыми, мы изменим это чуть позже.

Настроить аутентификацию

Наша демонстрация продемонстрирует простую систему регистрации и аутентификации пользователей в приложении.

К счастью, в Laravel это действительно легко сделать с помощью: php artisan make:auth

Это добавляет множество представлений и маршрутов для создания учетной записи, сброса пароля и т. Д.

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

Использование Manifold Marketplace

Создайте учетную запись Manifold и подготовьте ресурсы

  1. Создайте аккаунт (бесплатно!) Здесь.
  2. Как только ваша учетная запись будет подтверждена, следуйте инструкциям, чтобы сделать свой первый проект здесь.
  3. Предоставьте ресурс LogDNA и ресурс MySQL JawsDB во вновь созданном проекте. Вы можете следовать инструкциям здесь.

Настройте свой токен API

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

  1. Скачать Manifold CLI
  2. Войти с помощью manifold login
  3. Создайте токен API, предоставив ему учетные данные для чтения:
$ manifold tokens create
✔ Token Description: test
Use the arrow keys to navigate: ↓ ↑ → ←
? Select Role:
 read
 ▸ read-credentials
 write
 admin

4. Отредактируйте файл .env (никогда не привязывайтесь к git) с помощью:

MANIFOLD_API_TOKEN=<API TOKEN KEY>
MANIFOLD_PROJECT=project-name

Ведение журнала с помощью LogDNA

Как и все хорошие приложения, я хочу, чтобы мои журналы отправлялись поставщику облачных журналов. Для этой демонстрации я выбрал LogDNA. Вам понадобится имя вашего ресурса LogDNA, которое было подготовлено на предыдущих шагах. Я назвал свой logdna.

В вашем коде:

  1. Добавьте пакет монолога LogDNA:

composer require nvanheuverzwijn/monolog-logdna

2. Измените bootstrap/app.php, чтобы расширить средство ведения журнала по умолчанию:

$app->configureMonologUsing(function($monolog) {
 $handler = new \Zwijn\Monolog\Handler\LogdnaHandler(config(‘logdna.KEY’),config(‘manifold.project’),\Monolog\Logger::DEBUG);
 $monolog->pushHandler($handler);
});

Объяснение: Мы загружаем конфигурацию (KEY) для logdna через пакет коллектора config(‘logdna.KEY’). Если вы вызвали регистратор ресурсов LogDNA или что-то еще, замените logdna на то имя, которое вы ему дали. Кроме того, я для развлечения передаю название проекта в LogDNA, я мог бы использовать «свое имя приложения» или что-нибудь еще, что я выбрал там.

Вот и все, регистрация подключена!

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

База данных с JawsDB

JawsDB - отличный пример того, как Manifold поддерживает алиасинг. JawsDB возвращает полное имя пользователя, пароль, имя хоста, базу данных и порт в одном длинном URL-адресе. Это удобно, но не столько для Laravel, сколько нам нужно, чтобы они были разбиты на разные части. Итак, в отличие от Logdna, где мы могли бы просто ссылаться на секреты с помощью resource-name.key, нам нужно сделать несколько забавных псевдонимов в файле config/manifold.php.

В вашем коде:

Измените config/manifold.php, а затем псевдоним в необходимой конфигурации mysql.

Я настраиваю серию псевдонимов для настройки конфигураций, связанных с базой данных. Вот и все! Не нужно модифицировать файл config/database.php, кроме как просто указать ему использовать mysql. Конфиги теперь будут использоваться там, где это необходимо, и Laravel будет использовать наш экземпляр JawsDB!

Последний шаг, чтобы все заработало:

Модифицируйте AppServiceProvider для работы с JawsDB

В AppServiceProvider.php вы включаете этот код в начало файла. use Illuminate\Support\Facades\Schema;

И вы добавляете этот код в метод загрузки. Schema::defaultStringLength(191);

Запустите миграции

php artisan migrate

Включи все и играй

php artisan serve

Теперь вы должны увидеть модное приложение Laravel по умолчанию с функциями входа и регистрации. Под капотом он использует ваш экземпляр JawsDB MySQL и LogDNA для обслуживания своих внутренних журналов.

Отсюда мы могли бы подключить MemCache для кеширования (или Redis) или даже переключиться на другое предложение JawsDB (Postgres). Черт возьми, хотите подключить резинку или отправить по электронной почте, список можно продолжать и продолжать :-)

Позвольте мне знать ваши мысли? У вас есть служба, даже если она не в Manifold, которую вы хотите подключить к своему приложению Laravel? Свяжитесь со мной, и, возможно, мы сможем помочь (мы поддерживаем индивидуальные ресурсы).