alvarium/cake-oc

CakePHP 的 OCClient 插件

安装: 182

依赖项: 0

建议者: 0

安全性: 0

星标: 4

关注者: 1

分支: 1

公开问题: 1

类型:cakephp-plugin

3.0.2 2017-12-15 18:44 UTC

This package is auto-updated.

Last update: 2024-09-08 06:47:27 UTC


README

A CakePHP 3.X 插件,用于OpenComponents PHP 客户端

安装

您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。

安装 composer 包的推荐方法是

composer require alvarium/cake-oc

配置

之后,在您的 bootstrap.php 文件中加载插件

Plugin::load('Alvarium/OCClient', ['bootstrap' => true]);

在您的 config 文件夹中创建一个名为 occlient.php 的文件,定义您的开放组件注册端点

<?php

return [
    'OCClient' => [
        'serverRendering' => 'https://registry.your-company.io/',
    ]
];

然后,在您希望使用插件的控制器中加载组件 + 助手

<?php
namespace App;

use Cake\Event\Event;

class PostsController extends AppController
{
    public function initialize()
    {
        parent::initialize();

        $this->loadComponent('Alvarium/OCClient.Client');
    }

    public function beforeRender(Event $event)
    {
        parent::beforeRender($event);

        $this->viewBuilder()->helpers([
            'Alvarium/OCClient.OC',
        ]);
    }
}

使用

完成所有配置后,加载组件和助手,要在您的页面上加载开放组件脚本,您只需在控制器方法中使用 setComponents 定义组件即可

<?php
namespace App;

// [...]

class PostsController extends AppController
{
    // [...]

    public function index()
    {
        $this->Client->setComponents([
            [
              'name' => 'your-awesome-component',
              'parameters' => [
                  'comp1_selector' => '#awesome-component',
                  'key' => 'value',
                  'key2' => 'value2',
              ],
            ],
            [
                'name' => 'another-awesome-component',
                'parameters' => [
                    'comp2_selector' => '#awesome-component-2',
                    'key12' => 'value12',
                    'key23' => 'value23',
                ]
            ]
        ]);
    }

注意我们如何定义 *_selector 键。这是因为我们能够为每个组件定义选择器(这意味着我们需要在视图中对每个组件定义一个带有适当选择器的层)。

这在一定程度上是因为此插件的帮助器在加载组件时将它们附加到 script 视图块中。根据您如何处理您的开放组件小部件,这可能会带来一些问题。

如果是这样,您可以直接避免使用助手,并将脚本添加到您想要的位置

foreach ($oc_components as $component) {
    echo $component;
}

许可证

此插件代码采用 GNU GPL v.3 许可证