taylorpmt/short-code

Laravel 支持

v0.0.1 2022-04-06 14:02 UTC

This package is auto-updated.

Last update: 2024-09-17 15:59:32 UTC


README

Logo

Laravel-Shortcodes

安装

您可以通过 composer 安装此包

composer require taylorpmt/short-code

更新 composer 后,将 ServiceProvider 添加到 config/app.php 中的 providers 数组中

要求

  1. illuminate/view 5.6+
  2. illuminate/support 5.6+
  3. illuminate/contracts 5.6+
  4. PHP 7.2+

使用

Taylorpmt\ShortCode\Providers\ShortcodesServiceProvider::class

您可以使用外观(facade)以缩短代码。将以下内容添加到您的别名中

'Shortcode' => Taylorpmt\ShortCode\Facades\Shortcode::class,

或者,您可以使用 AppServiceProvider 注册以缩短代码。

<?php

namespace App\Providers;

use Taylorpmt\ShortCode\Facades\Shortcode;
use Taylorpmt\ShortCode\Providers\ShortcodesServiceProvider;
use Illuminate\Foundation\AliasLoader;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {   
        $this->app->register(ShortcodesServiceProvider::class);
        $loader = AliasLoader::getInstance();
        $loader->alias('Shortcode', Shortcode::class);
    }

}

使用

创建文件 BlockSingleShortCode.php

<?php

namespace CMS\Page\Repository\Shortcode;


class BlockSingleShortCode
{
    const short_code_name = 'category-item';

    /*
        Shortcode register in providers 
    */
    public function register($shortcode, $content, $compiler, $name, $viewData)
    {
       // Logic code 
    }
}

在 providers 中注册 ShortCode

<?php

namespace CMS\Page\Providers;

use Illuminate\Support\ServiceProvider;
use Shortcode;
use CMS\Page\Repository\Shortcode\BlockSingleShortCode;

class PageProviders extends ServiceProvider
{
    public function register()
    {
        Shortcode::register(BlockSingleShortCode::short_code_name, BlockSingleShortCode::class);
    }
}

短代码编译

定义访问器 要定义一个访问器,在您想要访问的列的模型上创建一个 getDataContentAttribute 方法。在此示例中,我们将定义 data_content 属性的访问器。访问器将在尝试检索 data_content 的值时自动由 Eloquent 调用

public function getDataContentAttribute()
{
    return Shortcode::compile($data['data_content']);
}

参考来源

webwizo/laravel-shortcodes