brunocfalcao / laravel-zepto-mail-api-driver
Laravel的Zeptomail API邮件驱动
Requires
- php: ^8.1
- illuminate/contracts: ^10.0||^11.0
This package is auto-updated.
Last update: 2024-09-17 14:55:53 UTC
README
关于Flame
Flame是一个以功能开发驱动的框架,它将改善您构建Laravel应用程序功能的方式。
这个免费包将允许您
- 以标准代码规范的方式创建您的功能,每个功能都在一个目录中。
- 创建和重复使用“智能”小部件,称为Twinkles,这将帮助您改进布局代码结构。
- 根据请求中调用的路由动作自动渲染面板和Twinkles。
- 能够在屏幕渲染Twinkle控制器动作之前执行Twinkle控制器动作。
- 以功能模块的方式构建您的应用程序,这将大大提高代码的可读性、结构和可重用性!
为什么选择Flame
我之所以构建Flame,是因为我开始构建中型Web应用程序(如Laraning或Laraflash),其中包含大量的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许可证授权。