laravel spark что это

# Introduction

# Laravel Spark

Laravel Spark is the perfect starting point for your next big idea. When combined with a Laravel application starter kit like Laravel Jetstream

, or the frontend of your choice, Spark provides a well-designed billing management panel for your application. Spark, which is built on the power of Laravel Cashier

, allows your customers to subscribe to monthly or yearly billing plans, manage their payment method, update their subscription plans, and download their receipts all from a self-contained, beautifully designed billing portal.

# Supported Payment Providers

Spark supports two payment providers, and purchasing a Spark license grants you the ability to use either of these payment providers. At this time, it is not possible to implement your own custom payment provider when using Spark. We’ll provide a brief overview of each provider below.

# Paddle

is a robust billing provider that serves as a merchant of record for your application. Paddle removes the burden of tax compliance from your SaaS business by handling the complexity of gathering and paying your VAT for you. In addition, Paddle provides support for accepting payments from your customers via credit card or PayPal, localized pricing, and hosted invoices.

Spark’s Paddle support is provided by the underlying Laravel Cashier Paddle

Paddle Account Approval

Your Paddle account must be approved by Paddle before you can begin using Spark. To apply for an account, please visit the Paddle website

. While you are developing your application, you may use the Paddle Sandbox

# Limitations

We have listed some known limitations of using the Paddle payment provider below:

# Stripe

is a global leader in payment infrastructure with direct integration with card networks and banks, a fast-improving platform, and battle-tested reliability. In addition, intelligent optimizations help increase revenue across conversion, prevent fraud, and assist with revenue recovery. Finally, Stripe provides a robust sandbox environment for you to test your application’s payment system.

Spark’s Stripe support is provided by the underlying Laravel Cashier Stripe

# Limitations

We have listed some known limitations of using the Stripe payment provider below:

# Frequently Asked Questions

# Is it possible to upgrade an application from Spark Classic to Spark?

No. However, we will continue to provide bug fixes and security updates to Spark Classic indefinitely.

# Does Spark support any other payment providers?

No. Spark only supports Stripe and Paddle and it is not possible for developers to customize Spark to accept additional providers. If you need to use another payment provider you should not purchase Laravel Spark.

# Am I required to use Tailwind / Blade / Vue / etc. in order to use Spark?

No. Spark’s billing portal is totally isolated from the rest of your Laravel application and includes its own pre-compiled frontend assets. Your own application may be built using the frontend technologies of your choice.

# Why are my customers presented with a payment confirmation screen?

Extra verification is sometimes required in order to confirm and process a payment. When this happens, Paddle or Stripe will present a payment confirmation screen. Payment confirmation screens presented by Paddle, Stripe, or Spark may be tailored to a specific bank or card issuer’s payment flow and can include additional card confirmation, a temporary small charge, separate device authentication, or other forms of verification.

Источник

Блог Vaden Pro

Laravel Spark. Углубленное рассмотрение

Если в последние пару месяцев Вы следили за новостями связанными с Laravel или же присутствовали на Лараконах в США или Европе, то уже должны были неоднократно слышать о Laravel Spark. Ну а в том случае, если Вы впервые узнали о этой новинке, то рекомендую ознакомиться с видео с Европейского Ларакона, в котором Тайлер ее презентует.

Эта статья не спешила с выходом в мир, поскольку данный проект значительно изменился за время своего развития. На сегодняшний же день наконец вышел альфа-релиз Spark-а, потому появилось Api с которым уже можно работать. Хотя некоторые различия между конечным вариантом и текущей версией все же будут.

ВАЖНО! В данной статье описан альфа-релиз. Он еще не отражает окончательную версию api или же функционал технологии. Spark еще неоднократно изменится до своего релиза и не все новшества будут моментально отражены в данной статье. Если же Вы не испытываете особого васторга от работы с данным функционалом и вообще считаете что его создание было плохой идеей, то еще раз повторюсь, это альфа релиз и он еще будет серьезно доработан.

Если Вы желаете ознакомиться с данной технологией быстро или же просто глянуть как установить Spark ознакомьтесь с данной статьей. Это вместо углубленного изучения предмета, которым мы займемся сейчас. Эта статья создана в первую очередь для людей, которые достаточно опытны в разработке и желают ознакомиться с альфа-релизом.

Для чего нужен Spark?

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

Большинство SaaS-приложений имеют такие же компоненты: аккаунты пользователей Stripe платежи и различные платежные планы. И многие из них имеют платежные купоны, возможность совместной оплаты заказов.

Читайте также:  какой знак на обоях без подгонки рисунка

Чтобы не создавать каждый раз весь этот функционал при разработке нового приложения на Laravel, просто используйте Spark и Вы сразу получите весь необходимый функционал и бесплатный SaaS лендинг для загрузки.

Установка

Как и в случае с Laravel или Lumen, Spark можно просто установить воспользовавшись Composer-ом. Для этого следует воспользоваться командой:

Добавление Spark в новый Laravel install

Итак, давайте создадим новое приложение:

После установим Spark командой:

Вот несколько подсказок по процессу установки (возможно Вас устроит вариант просто везде выбрать yes ):

Migrations

Какие изменения вносит Spark в Ваши файлы?

Изменений происходит совсем не много. Проверить это можно тут:

Новые файлы из Spark

Spark также добавляет несколько новых файлов для Вас. Давайте просмотрим их:

app/Providers/SparkServiceProvider.php

SparkServiceProvider – файл в котором содержится большинство настроек, потому он весьма большой.

Давайте разберем его по частям:

$invoiceWith

Позволяет настроить счета, которые генерирует Spark. Добавьте сюда Вашу информацию, в итоге она окажется в PDF. Все.

customizeRegistration()

Позволяет настраивать собственные критерии валидации полей и настраивать процесс создания пользователей.

Функция createUsersWith запускается из контролера регистрации следующим образом:

И, только для процесса настройки, вот что получится в случае использования данного метода, если Вы не переопределите его:

customizeRoles()

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

По умолчанию спарк создает account/admin панель с несколькими стандартными вкладками. Вы можете удалить их, переопределить или создать собственные.

Если Вы используете Teams, то Вы можете настроить и их вкладки:

customizeProfileUpdates()

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

customizeSubscriptionPlans()

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

app/Team.php

Это новая модель для Teams, если Вы собираетесь их использовать.

Так можно расширить модель для настройки

database/migrations/DATE_create_teams_table.php

Это up для переноса:

resources/assets/js/app.js

То, к чему должен обращаться JavaScript приложения, этот файл предварительно заполнен Spark JavaScript-ом.

resources/assets/js/spark/components.js

Подгружает компоненты VueJS для отдельных страниц

resources/views/home.blade.php

Домашняя страница по-умолчанию, которую мы видели ранее:

terms.md

Файл, который будет генерировать страницу «Terms of Service»:

Рассмотрим результат установки

Итак, давайте рассмотрим что у нас получилось. Сперва у нас имеется красивый лединг, который мы уже видели на скриншоте выше, но что мы имеем помимо него?

Сперва давайте взглянем на нашу страницу для входа. Обратите внимание, что у нас имеется хороший Bootstrap макет с фикированным футером, копирайтом и несколькими кнопками социальных сетей.

Помимо этого у нас есть страница для сброса пароля

И страница для регистрации пользователя

Встроенная обработка ошибок

Итак, пришло время для регистрации. После ее завершения мы попадем в панель управления ( /home ), в которой есть выпадающее меню позволяющее нам выйти или изменить наши настройки.

Давайте глянем нашу страницу для настроек пользователя. Обратите внимание, что здесь присутствуют вкладки, которые мы добавили в SparkServiceProvider ранее.

Изменение пароля и двухфакторная авторизация:

Это то что мы получили «из коробки». Давайте рассмотрим еще несколько примеров работы.

Teams

Чтобы позволить пользователям присоединиться к команде, Вам необходимо использовать CanJoinTeams свойство, в Вашей модели пользователя. К счастью, Spark уже встроил этот класс в блок с импортом модели пользователя, потому это так же просто как добавление CanJoinTeams для использования списка свойств Вашей модели:

Теперь, после посещения панели настроек пользователя, мы можем увидеть отличия:

Давайте добавим группу:

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

Итак, давайте создадим группу и посмотрим что у нас выйдет:

Само собой мы пригласим еще кого-то в нашу команду.

Вот то, что мы видим, пока пользователи не получили доступа:

А вот что после того, как они перешли по ссылке в письме:

После того, как пользователь был подписан на группу у него появляется возможность покинуть данную группу:

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

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

Платежи и планы

Итак, внезапно мы получаем вкладку подписки:

Проверим теперь регистрацию:

Теперь при регистрации пользователя запрашивается его информация для оплаты:

Проверка плана при помощи кода:

Coupons

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

Читайте также:  с каким светом фар можно ездить

И без строки кода получаем применение купона со скидкой:

Также имеется возможность временно добавить скидку по купону для всего сайта, добавив его в SparkServiceProvider (примерно как в customizeSpark() методе):

Вы можете настроить роль по умолчанию, выберите параметры (у каждого должен быть ключ и значени), и после создания этих ролей вы можете проверить эти параметры и в других местах:

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

Views

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

выведет следующие представления:

А для полного экспорта:

Прочее

Отключаем Authy

Дополнительно

Класс Spark-а имеет еще несколько доступных методов. Вот несколько на заметку: Spark::forcingPromotion() показывает используем мы или нет forcingPromotion на сайте в текущий момент. Spark::retrieveusersWith() позволяет настроить методы, которые использует Spark для получения текущего пользователя.

Подводя итоги

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

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

Источник

40 лучших инструментов и ресурсов Laravel


Привет, Хабр! Представляю вашему вниманию подборку, которая является переводом моей оригинальной статьи.

Если есть идеи что добавить в подборку — буду рад пообщаться в комментах. Наслаждайтесь!

Ресурсы для изучения Laravel

Что я лично считаю классным в Laravel, так это то, что можно легко обучиться работе в нем. Экосистема Laravel это не только инструменты для разработки. У данного фреймворка есть отличная база платформ и курсов, которые помогают изучить основные тонкости работы. Вот некоторые из них:

Laracasts

Laracasts это обучающий ресурс для веб-разработчиков. Ресурс содержит в себе отличные скринкасты о Laravel, Vue, общих понятиях PHP, базах данных и многое другое. Можно сказать, что это как Netflix для вашей будущей карьеры. Обучение можно начать с Laravel from scratch и всегда оставаться в курсе событий с помощью What’s new in Laravel.

Test Driven Laravel

Если мы говорим о техниках разработки, то я предпочитаю использовать разработку через тестирование (TDD). С Laravel эту технику очень легко использовать. Обучиться этому можно с помощью курса Test Driven Laravel. Пройдите видео-курс и сможете выстроить более надежное приложение.

Confident Laravel

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

Laracon Online

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

Effective PHP

Я настоятельно советую просмотреть видео-курс Нуно Мадуро Writing Effective PHP. Это станет значительным вкладом в образование каждого PHP разработчика. Этот курс обучает тому, как писать код коротко и ясно, а также объясняет основные принципы избежания багов и многое другое.

Laravel Core Adventures

Laravel Core Adventures — это отличный видео-курс об основных концепциях Laravel, который поможет не только получить знания, но и приятно провести время.

Курс Build a Chatbot

Курс Build a chatbot научит вас как разрабатывать, расширять и тестировать чат боты и голосовые боты с помощью PHP.

Laravel Certification

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

Сообщество Laravel

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

Laracasts Forum

Laracasts Forum это площадка, где разработчики делятся своим опытом и туториалами. Здесь вы всегда можете попросить совет и обсудить возникшие вопросы.

LaravelIO

LaravelIO — замечательный ресурс, где также обсуждаются вопросы разработки. Там вы сможете найти ответы на различные вопросы и поделиться своим опытом.

Slack-канал Larachat

Larachat Slack Workspace — это Slack пространство с различными каналами, которые посвящены разнообразным тематикам.

Laravel News

Laravel News — это официальный новостной ресурс от Laravel, а также еженедельная информационная почтовая рассылка о последних трендах в сообществе Laravel.

Laravel Podcast

Laravel Podcast — это отличная площадка для обсуждения основных трендов в сообществе Laravel.

LaraJobs

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

Laravel Blog

Laravel Blog — это официальный блог Laravel, где можно найти всю информацию о последних релизах Laravel и различных событиях, а также увидеть подкасты Тэйлора Отвела (создателя Laravel).

Читайте также:  какой мазью лечить укусы комаров

Экосистема Laravel

Экосистеме Laravel определенно есть что предложить разработчикам. Я обычно стараюсь не восхвалять ничего чем пользуюсь, а больше склонен критиковать. Однако когда речь идет об экосистеме Laravel, я просто не могу удержаться. Здесь я бы хотел упомянуть несколько оригинальных и очень полезных инструментов, которые могут пригодится в разработке ваших проектов.

Окружение для Разработки

Laravel Valet

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

Laravel Homestead

Laravel Homestead — это подготовленная Vagrant сборка, которая обеспечивает отличное окружение для разработки. У вас нет потребности в установке PHP, веб сервера или какого-либо другого программного серверного обеспечения на локальный компьютер.

Laravel Расширения и Пакеты

Laravel Passport

Laravel Passport — максимально простой инструмент для API аутентификации. Он предоставляет полную реализацию сервера OAuth2 для вашего приложения.

Laravel Scout

Добавьте полнотекстовый поиск к вашим Eloquent-моделям с Laravel Scout. Это удобный софт для синхронизации поисковых индексов с вашими записями Eloquent.

Laravel Spark

Laravel Spark — это удобный инструмент для ускорения разработки SaaS приложений.

Laravel Nova

Laravel Nova — это панель администрирования для Laravel с великолепным UI и UX дизайном, которая ускоряет процесс разработки.

Laravel Dusk

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

Laravel Socialite

Laravel Socialite — это пакет, который обеспечивает гибки интерфейс для аутентификации с OAuth провайдерами, таких как Facebook, Twitter, Google, LinkedIn, GitHub и многих других.

Laravel Echo

Laravel Echo — это JavaScript библиотека, которая позволяет вам подписываться на каналы и прослушивать транслируемые события через WebSoсkets.

Laravel Medialibrary

Пакет Laravel Medialibrary ассоциируетвсе типы файлов с Eloquent-моделями. Этот пакет делает работу с медиа-объектами удивительно легкой.

Laravel Mix

Laravel Mix (в прошлом назывался Laravel Elixir) — это инструмент, который даёт вам практически полностью управляемый процесс сборки фронтенда. Он обеспечивает понятный и удобный API для определения базовых этапов сборки Webpack для вашего Laravel приложения.

Laravel Cashier

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

Laravel Envoy

Laravel Envoy — очень полезный инструмент запуска задач с чистым и минималистичным синтаксисом.

Laravel Horizon

Laravel Horizon — это пакет для отслеживания ключевых показателей системы ваших очередей Redis.

BotMan Studio

BotMan Studio — это приложение выстроенное на фреймворке Laravel для более эффективной разработки ваших чат ботов.

Laravel Tenancy

Laravel Tenancy — это инструмент для разработки многопользовательских Laravel платформ.

Lumen

Если у вас нет необходимости использовать полный фреймворк Laravel, то вам определенно понравится Lumen. Это микро-фреймворк, который минимизирует процессы загрузки.

Laravel Telescope

Laravel Telescope — это безупречный ассистент по отладке для Laravel приложений. Чтобы понять, что я имею в виду, представьте себе что самый лучший дебаггер который вы когда-либо использовали стал отдельным UI с самыми удобными инструментами. Вот такой этот Laravel Telescope.

Laravel WebSockets Package

WebSockets для Laravel — это пакет, который так ждали разработчики. Он максимально упрощает реализацию WebSockets сервера в Laravel.

Другие полезные сервисы Laravel

Laravel Forge

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

Laravel Vapor

А как насчет безсерверной платформы развертывания, которая делает всю работу за вас? Заверните мне две, пожалуйста. Я говорю о сервисе Laravel Vapor, который я лично нахожу весьма впечатляющим.

Chipper CI

Если вы искали инструмент для непрерывной интеграции в Laravel, Chipper CI это то, что вам нужно.

Flare

Flare — это инструмент для трекер ошибок, которого так ждали разработчики Laravel.

Laravel Shift

А что если я скажу вам, что вы можете обновлять версии Laravel автоматически? Ну, в общем-то даже не вы, а Laravel Shift.

Laravel Envoyer

Laravel Envoyer — это сервис развертывания с нулевым простоем для ваших PHP и Laravel приложений.

Экосистема Laravel набирает обороты

Как по мне, получилась довольно впечатляющая подборка. Примите во внимание, что это еще не все существующие инструменты и сервисы, а только те, которые я сам высоко оцениваю.

Я вижу что фреймворк Laravel с каждым годом лишь набирает и набирает популярность. Сообщество Laravel растет с непреодолимой скоростью. Что это значит для нас? Как минимум то, что в 2019 и последующих годах количество новых инструментов и сервисов значительно вырастет. Их использование определенно ускоряет процесс разработки проектов и, конечно же совершенствуют их качество.

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

Источник

Сказочный портал