netflie/componentes

一个用于创建HTML自定义元素的PHP编译器

v1.0.0 2020-05-24 15:34 UTC

This package is auto-updated.

Last update: 2024-09-19 10:22:35 UTC


README

GitHub Workflow Status Quality Score

这个PHP包提供了一个服务器端编译器,用于渲染自定义HTML组件。 这个包受到BladeX包(用于Laravel)的启发。从1.0.0新版本开始,这个包使用Laravel Blade Compiler。你现在可以使用Laravel Blade Components提供的所有功能(非匿名组件尚不支持)。

你可以这样写

<my-alert type="error" message="I'm an Alert" />

输出将会是

<div class="alert error">I'm an alert</div>

你可以将这个警告的内容放置在一个简单的Blade视图中,在使用my-alert组件之前需要先注册这个视图

<div class="alert {{ $type }}">
  {{ $message }}
</div>

安装

composer require netflie/componentes

使用

设置

在编写你的第一个组件之前,你必须设置视图文件系统,这是你的组件模板将被存储的位置

<?php declare(strict_types=1);

namespace Foo\Bar;

use Netflie\Componentes\Componentes;

$viewPath = realpath(__DIR__ . '/views'); // your project views folder

$componentes = Componentes::create($viewPath);

编写你的第一个组件

在Blade模板中编写你组件的内容,并将其存储在你的项目视图组件文件夹中

{{-- your_project/views/components/alert.blade.php --}}

<div class="alert {{ $type }}">
  {{ $message }}
</div>

所有匿名组件将自动在your_project/views/components目录下被发现。

现在你可以在你的视图中使用你自定义的HTML元素了

<h1>My view</h1>

<x-alert type="error" message="I'm an Alert" />

编译

你需要编译HTML以渲染注册的HTML元素。这个HTML代码可以由框架预先编译,或者直接从一个html文件中读取

<?php

namespace Foo\Bar;
$input_html = '<html>'
               .'My webpage code precompiled by my own framework'
               .'<x-alert/>'
            .'</html>';
$ouput_html = $componentes->render($input_html);

更多文档

查看Laravel Blade Components的文档以了解全部功能。

测试

composer test

进行中

  • 基于类的组件