brunocfalcao/laravel-zepto-mail-api-driver

Laravel的Zeptomail API邮件驱动

dev-master 2024-05-17 14:01 UTC

This package is auto-updated.

Last update: 2024-09-17 14:55:53 UTC


README

Latest Stable Version License Style CI

关于Flame

Flame是一个以功能开发驱动的框架,它将改善您构建Laravel应用程序功能的方式。

这个免费包将允许您

  • 以标准代码规范的方式创建您的功能,每个功能都在一个目录中。
  • 创建和重复使用“智能”小部件,称为Twinkles,这将帮助您改进布局代码结构。
  • 根据请求中调用的路由动作自动渲染面板和Twinkles。
  • 能够在屏幕渲染Twinkle控制器动作之前执行Twinkle控制器动作。
  • 以功能模块的方式构建您的应用程序,这将大大提高代码的可读性、结构和可重用性!

为什么选择Flame

我之所以构建Flame,是因为我开始构建中型Web应用程序(如LaraningLaraflash),其中包含大量的Blade视图、Blade组件等。开始难以以组织我的功能,以便在给定某个时刻运行的相应控制器动作中加载数据。

一个想法浮现出来:“如果我知道我正在运行哪些动作,然后自动加载与该动作相对应的图形布局,而不是只创建更多的视图,那会怎么样?”

这就是Flame开始的地方。Flame将为您自动化这种行为。让我们看看它是如何工作的。

安装

您可以使用以下命令通过Composer安装此包

composer require brunocfalcao/flame
此包将自动注册自己(使用自动发现)。

下一步是将flame.php配置文件发布到您的config文件夹。

php artisan vendor:publish --tag=flame-configuration

全部完成!😄

它是如何工作的

flame.php配置文件已经有一个条目,用于将所有功能放入App\Flame\Features命名空间。

使用以下命令创建一个新的功能

php artisan make:feature

选择“flame”命名空间组,然后创建一个“管理车辆”功能,以及“index”动作。最后,命令提供的路由示例将是

Route::get('manage-cars', '\App\Flame\Features\ManageCars\Controllers\ManageCarsController@index')
     ->name('manage-cars.index');
👉 将此路由示例复制粘贴到您的web.php文件(或您正在使用的其他带有web中间件的route文件)。
💾 在您的“app\Flame\Features”文件夹中创建了一个名为“ManagesCars”的新文件夹。

“管理车辆”功能文件结构

  + ManageCars
    + Controllers
      > ManageCarsController.php
      > WelcomeController.php
    + Panels
      > index.blade.php
    + Twinkles
      > welcome.blade.php

现在让我们看看这些文件中各自构建了什么。魔法从这里开始❤️!

Controllers/ManageCarsController.php
class ManageCarsController extends Controller
{
    public function index()
    {
        return flame();
    }

🎉 这是你映射路由文件的地方。您只需返回flame()辅助函数,这样Flame就会根据“index”动作加载您的相应面板和Twinkles。这意味着,如果您的Twinkles中定义了“index”动作,它们将在面板内容渲染之前运行。

如果您没有与该名称相同名称的面板,它将回退到default.blade.php。如果您有一个同名面板,它将为所有没有特定面板动作的动作加载该面板。双倍甜蜜!

Panels/welcome.blade.php
@twinkle('welcome')

Twinkle就像一个“智能小部件”。它将渲染在Twinkes/文件夹中定义的内容,给定传递的参数。在这种情况下,Twinkle将加载“welcome.blade.php”。

但是!还有更多的魔法❤️...

在渲染Twinkle之前,它将尝试找到其自己的相应控制器(骆驼命名)名称。在我们的例子中,我们在Controllers/WelcomeController.php中有它,所以让我们检查它

Controllers/WelcomeController.php
class WelcomeController extends Controller
{
    public function index()
    {
        return ['text' => 'Hi there! This is a Twinkle!'];
    }

由于当前运行的路由动作定义了相同的动作,它将使用反射来运行方法并将数据作为数组传递。因此,您可以在Twinkle内部将其用作Blade变量。这意味着在这种情况下,它将运行"index"方法并将数据返回到欢迎Twinkle。

Twinkle方法也支持隐式绑定。这意味着如果您从路由参数定义了您的参数,它们将被动态注入到方法参数中!

当前开发状态

  • 完成核心开发。
  • 完成Alpha发布0.1.x的识别问题/改进。
  • 关闭Alpha(0.1.x)发布。
  • 完成Beta发布0.2.x的识别问题/改进。
  • 关闭Beta(0.2.x)发布。
  • 测试覆盖率>90%。
  • 完善文档。
  • 完善视频教程。
  • 公开发布。

入门指南

Flame在您的/flame URL上创建了一个演示路由。您可以尝试使用它,并应该看到

这意味着您可以看到位于Brunocfalcao\Flame\Features\Demo命名空间中的演示功能。

创建您的第一个功能

非常简单。只需写下以下命令

php artisan make:feature

贡献

目前您不需要贡献,因为Flame仍在开发中。

许可证

Waygou Flame是开源软件,根据MIT许可证授权。