如何在10月CMS中创建自己的功能?

问题描述 投票:2回答:3

“全局”是指我可以在页面和布局上随处调用的函数,而不是在我应该使用它们的每个地方重复它们

laravel octobercms
3个回答
0
投票

注册函数在这里试试

\System\Classes\MarkupManager::instance()->registerCallback(function($manager){
    $manager->registerFunctions([
        'myFunction' => function($param1){
            return "Hello " . $param1;
        },
    ]);
]);

在布局页面调用中

{{ myFunction('world!') }}

在laravel中的全局功能

在app文件夹app/helpers.php中创建helpers.php文件

if (! function_exists('showMessage')) {
    function showMessage($message = null)
    {
        return $message;
    }
}

添加composer.json文件以进行自动加载

"autoload": {
    "files": [
        "app/helpers.php"
    ],
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},

和转储作曲家

composer dump-autoload

为了更多的理解阅读这个tutorial


0
投票

创建全局函数文件是直接从编写器自动加载它。

  1. 创建一个functions.php文件,在这个例子中,我们将在app/Helpers中创建它。
  2. 添加你的功能 <?php function global_function_example($str) { return 'A Global Function with '. $str; }
  3. composer.json部分内的autoload中添加以下行: "files": ["app/Helpers/functions.php"]
  4. 运行composer dump-autoload

您现在可以在应用程序的任何位置访问global_function_example('hello world')表单,这是检查blade file的简单方法:

{{ global_function_example('hello world') }}

0
投票

您可以创建自己的自定义插件,并在Plugin.php中使用registerMarkupTags

public function registerMarkupTags()
{
    return [
        'functions' => [
            'currentUrl' => function () {
                return request()->getRequestUri();
            },
            'currentUrlFull' => function () {
                return URL::to(request()->getRequestUri());
            },
            'ip' => function () {
                return Request::ip();
            }
        ]
    ];
}
© www.soinside.com 2019 - 2024. All rights reserved.