seymennc/php-blade

此包的最新版本(dev-master)没有提供许可证信息。

dev-master 2024-09-22 20:16 UTC

This package is auto-updated.

Last update: 2024-09-22 20:16:44 UTC


README

Luminance PHPBlade 是一个基于 PHP 的轻量级模板引擎,灵感来源于 Laravel 的 Blade 模板系统。它允许您使用清晰、易于使用的语法将应用程序的逻辑与表示层分离。

徽章

Latest Stable Version

Total Downloads

Latest Unstable Version

License

PHP Version Require

Version

🔗 链接

portfolio linkedin twitter

特性

  • 轻量级:最小化且易于集成到任何 PHP 项目中。
  • 动态模板:定义部分、布局和可重用组件
  • CSRF 保护:内置对在表单中包含 CSRF 令牌的支持。
  • 视图缓存:缓存编译后的视图以提高性能。
  • Blade 风格语法:利用与 Laravel 的 Blade 相似的指令,提供熟悉的使用体验。

安装

要使用此项目,请按照以下步骤操作

Git 克隆

git clone https://github.com/seymennc/php-blade.git
cd php-blade
php -S 127.0.0.1:8080

Composer

如果你使用 php-blade 创建新项目

composer create-project seymennc/php-blade php-blade
cd php-blade
php -S 127.0.0.1:8080

如果你仅在项目中使用它

composer require seymennc/php-blade

用法

在项目中包含自动加载器

require 'vendor/autoload.php';

请确保在配置中定义视图和缓存目录的路径

// Example configuration in config.php
return [
    [
        'views' => dirname(__DIR__) . '/resources/views',
        'cache' => dirname(__DIR__) . '/storage/cache',
        'suffix' => '.blade.php'
    ]
];

渲染视图

要渲染视图,只需调用 Blade::view() 方法

use Luminance\Service\phpblade\Blade\Blade;

echo Blade::view('home');

或者你可以这样使用

use Luminance\Service\phpblade\Blade\Blade;

view('home');

如果你需要将数据传递给视图,可以通过将数组作为第二个参数传递来实现

echo Blade::view('home', ['title' => 'Welcome Home']);
//Or use this
view('home', ['title' => 'Welcome Home']);

定义部分和扩展布局

你可以使用熟悉的 Blade 风格指令定义部分和扩展布局

// layouts/master.blade.php
<!DOCTYPE html>
<html>
<head>
    <title>@yield('title')</title>
</head>
<body>
    @yield('content')
</body>
</html>

// views/home.blade.php
@extends('layouts.master')

@section('title', 'Home Page')

@section('content')
<h1>Welcome to the Home Page</h1>
@endsection

CSRF 令牌

对于需要 CSRF 令牌的表单

<form method="POST" action="/submit">
    @csrf
    <!-- form fields -->
</form>

所有可用指令

@include('view')
{{ /* For PHP Variables */}}
@foreach(array)
    // Loop
@endforeach
@section('section')
    // Section
@endsection
@extends('layout')
@yield('section')
@csrf

更多示例可以在 Asgard 文档 中找到。

贡献

我们欢迎贡献!如果你发现了一个错误或对改进有建议,请打开一个问题或直接向项目贡献。

我们的♥️贡献者

许可证

根据 GNU 通用公共许可证许可,版权所有 © 2024 年至今 BLC Studio