hypnotract/laravel-view-identifiers

在 Laravel 5 中快速设置全局类和全局 ID 到主 HTML DOM 元素。

此包的规范存储库似乎已丢失,因此包已被冻结。

5.0.0 2018-06-09 23:48 UTC

This package is not auto-updated.

Last update: 2020-06-07 06:31:20 UTC


README

在 Laravel 5 中快速将视图标识符设置到主 HTML DOM 元素。让我们称这些标识符为:全局类和全局 ID。

文档

可能性

此包为您提供了以下可能性

  • 根据某些后端标准在主 HTML 元素上设置标识符
  • 在 JavaScript 或 CSS 中轻松检测加载了哪个页面
  • 仅在特定页面上进行 DOM 操作,例如在所有管理员面板页面上
  • 仅在特定页面上设置某些样式,例如在所有文章查看页面上,但在管理员面板中不设置

等等。

安装

对于 Laravel 的旧版本(尚未测试),请参阅:[Laravel 5.0-5.4](https://github.com/hypnotract/laravel-view-identifiers/tree/5.0.0) 和 [Laravel 5.5](https://github.com/hypnotract/laravel-view-identifiers/tree/5.5.0)。

composer require hypnotract/laravel-view-identifiers

配置

您可以通过发布配置文件来更改默认设置。

php artisan vendor:publish --provider="Hypnotract\ViewIdentifier\ServiceProvider" --tag=config

样式转换

支持的值和示例

kebab 将字符串转换为 "kebab-case"。

snake 将字符串转换为 "snake_case"。

camel 将字符串转换为 "camelCase"。

studly 将字符串转换为 "StudlyCase"。

自动发现

默认情况下,自动发现已启用。这意味着将根据控制器和操作名称为您设置类和 ID。

控制器命名空间

如果您的控制器命名空间与默认的 App\Http\Controllers 不同,您可以设置自己的命名空间。

用法

默认值

默认情况下,类和 ID 的自动发现已启用,您可以直接将这些设置到所需的 HTML 元素中。

<div class="content {{ ViewIdentifier::class()->get() }}">
<html id="{{ ViewIdentifier::id()->get() }}" lang="en">
<body id="{{ ViewIdentifier::id()->get() }}" class="{{ ViewIdentifier::class()->get() }}">

要禁用自动发现,请参阅配置自动发现

示例

App\Http\Controllers\Web\PageController::show 将获取 id web-page-showclass: web page show

App\Http\Controllers\Admin\PageController::edit 将获取 id admin-page-editclass: admin page edit

App\Http\Controllers\ArticleController::view 将获取 id article-viewclass: article view

自定义标识符

如果您想设置自定义的或任何其他标识符,可以这样做:

\ViewIdentifier::id()->set('whateverId');

\ViewIdentifier::class()->push('whateverClass');
\ViewIdentifier::class()->push('whateverSecondClass');

您可以以任何您想要的字母大小写样式传递字符串,因为它们将被转换为配置文件中设置的样式。

示例
use ViewIdentifier;

class AdminController extends Controller
{
    public function __construct()
    {
        parent::__construct();

        ViewIdentifier::class()->push('adminPanel');
    }
}

class ArticlesController extends AdminController
{
    public function __construct()
    {
        parent::__construct();

        ViewIdentifier::class()->push('article');
    }
    
    public function index()
    {
        ViewIdentifier::class()->push('index');
        
        $articles = Article::index()->paginate(25);
    
        return View::make('admin.articles.index')->with(compact('articles'));
    }
}

ViewIdentifier::class()->get() 中的结果 class 将是: admin-panel article index

需要帮助吗?

请使用 GitHub 的问题提交所有问题和疑问,我将尽力帮助您。

致谢

许可证

Laravel View Identifiers 是在 MIT 许可证下免费分发的软件。