lhaamed/blade-bundler

一个超级高效的打包工具,用于打包您Laravel blade的所有相似结构。使用此工具将给您带来难以置信的开发速度,这在关键时刻是必要的。您可以根据需要将其定制到任何程度。

v0.1.5 2024-06-04 20:45 UTC

This package is auto-updated.

Last update: 2024-09-28 12:16:58 UTC


README

一个超级高效的打包工具,用于打包您Laravel blade的所有相似结构。使用此工具将给您带来难以置信的开发速度,这在关键时刻是必要的。您可以根据需要将其定制到任何程度。

安装

像Packagist中的任何其他包一样,您需要在config/app.php中使用以下行将服务提供者和外观别名添加到您的应用程序根目录下的配置文件中

首先,您需要在终端中运行以下命令

  composer require lhaamed/blade-bundler

然后,将其添加到"providers"数组中的服务提供者

  BladeBundler\BladeBundlerServiceProvider::class,

然后将其添加到"aliases"数组中的别名

  'BB' => BladeBundler\BB::class

永远不要忘记在终端中使用以下命令,因为您已更改配置文件。

  php artisan optimize
  composer du

什么是ListBundle

ListBundle是一个帮助您使用包原则以更好的方式创建列表主要结构的Bundle。您可以为每个模型和任何类型的用法创建不同的列表。例如,对于显示用户列表,您可以有不同类型的列表,并且在每个控制器中,您只需通过更改listGenerator函数中的函数名即可调用其中任何一个。这个系统的优点是同时拥有基于集合和基于分页的列表。这意味着您可以将数据作为集合或分页对象传递,并根据数据类型,Bundler为您生成所需的打包。在这个版本中,默认没有列表视图。不要忘记我们正在努力使事情变得更容易,而不是在开发过程中造成麻烦。通过从ListBundle对象中获取dd(),您将找到如何在blade文件中显示它的方法。没有特定的列表视图文件可以帮助您在任何复杂程度下将ListBundle与您的主题绑定。

如何使用ListBundle

此包将帮助您组织在应用程序中生成表单和表格列表。因此,您可以从任何方面全面控制所有现有的表单和列表。要有一个列表,您需要您的$query,它可以分页或不分页。如果您传递分页查询,您将获得分页的包,如果您不传递,它将正确地给出包。制作包的另一个必要参数是映射函数。打包器将通过映射函数传递查询以生成所需的列表。

  $paginated_query = User::paginate(30)->onEachSide(0);
  $listBundle = BB::generateList($paginated_query,['this','defaultListMap']);

或者

  $collected_query = User::all();
  $listBundle = BB::generateList($collected_query,['this','defaultListMap']);

让我们看一下映射函数的结构。

public static function defaultListMap(listBundle $listBundle ,LengthAwarePaginator|Collection $query): listBundle
{
    $items = BB::getQueryItems($query);

    $mappedData = array_map(function ($eachRecord) use ( $query) {
        $recordModel = $query->find($eachRecord['id']);
        $action_links = [];

        return [
            $recordModel->showName(),
            $recordModel->showLastname(),
            'actions' => $action_links
        ];
    }, $items);

    $listBundle->setTitle('custom title for the list');
    $listBundle->setTableHeader([
        'name',
        'lastname',
        'actions',
    ]);
    $listBundle->setTableRecords($mappedData);

    return $listBundle;
}

在这个函数中,您定义了每个头的确切值和每个单元格的值。因此,您可以更好地以更全面的方式控制列表。

什么是FormBundle

FormBundle是一个帮助您使用Bootstrap结构创建表单的Bundle。通过使用FormGenerator创建表单后,您必须添加一个新的部分。在每个部分中,您都可以添加行,在行中,您可以添加您的单元格。每个单元格包含输入,您可以在以下列表中看到支持的输入。

许可证

MIT