jamesyps / laravel-myriad
提供了一种显示您 Laravel 项目中可用组件的方法
Requires
- php: >=7.1
- illuminate/support: ~5.6.6|~5.7.0|~5.8.0
- illuminate/view: ~5.6.6|~5.7.0|~5.8.0
- spatie/yaml-front-matter: ^2.0
Requires (Dev)
- laravel/framework: ~5.6.6|~5.7.0|~5.8.0
- orchestra/testbench: ~3.6.0|~3.7.0|~3.8.0
- phpunit/phpunit: ~7.5
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-20 04:36:49 UTC
README
一个简单的模式库包,用于记录和显示 blade 组件。
安装
使用 Composer 安装
composer require jamesyps/laravel-myriad
发布资源
php artisan vendor:publish --tag myriad-assets
然后您可以在 https://your-app.xxx/myriad/components
访问模式库
组件
此包的主要目的是记录 Laravel 项目内的组件。有关组件的更多信息,请参阅 Laravel 文档。
要开始,在配置的组件目录中创建一个新的组件,在这个例子中,让我们从按钮开始
<button class="btn btn-{{ $type ?? 'default'}}"> {{ $slot }} </button>
现在需要一些文档来展示如何使用它,有哪些可用的插槽以及可以通过哪些属性传递。这可以通过 blade 注释和 yaml 前端元数据来完成
{{-- --- slots: - default: My Button variables: - type: primary --- --}} <button class="btn btn-{{ $type ?? 'default'}}"> {{ $slot }} </button>
在预览视图中,现在将出现两个按钮,一个带有 btn-default
类,另一个带有 btn-primary
类。每个按钮都将显示 我的按钮 文本。
前端元数据也支持自定义属性,这些属性将在预览屏幕上可见,例如,如果您想显示当前状态或浏览器支持。
您还可以通过在最后一个 ---
下方添加文本来提供更多信息。此部分完全支持 markdown,因此您可以提供如下所示的格式化文档
{{-- --- slots: - default: My Button variables: - type: primary --- # Instructions This is a button and should be used when an interaction is required. **Do not** use this for navigation, instead use an `<a>` tag for this. --}} <button class="btn btn-{{ $type ?? 'default'}}"> {{ $slot }} </button>
定制化
Myriad 已开发为完全可配置,以满足您应用程序和工作流程的需求。
配置
基本定制可以通过配置文件进行。使用以下命令发布它
php artisan vendor:publish --tag myriad-config
要查看可用的选项,您可以在 此处查看源代码。
模板
要修改默认模板,请使用以下命令发布它们
php artisan vendor:publish --tag myriad-views
然后您可以在 resources/views/vendor/myriad
中找到它们。
合同
如果您需要为您的应用程序添加或修改功能,您可以用自己的替换默认的 Component Repository 和 Component Model 类。
[ 'model' => \App\Components\Models\Component::class, 'repository' => \App\Components\Repositories\ComponentRepository::class, ]
如果您没有扩展原始类,您必须确保任何新代码遵循以下合同
Jamesyps\Myriad\Contracts\ComponentRepositoryInterface
Jamesyps\Myriad\Contracts\ComponentInterface
这些可以在 Contracts 命名空间中找到。