basercms icon indicating copy to clipboard operation
basercms copied to clipboard

BcContentsHelperについて検討

Open seto1 opened this issue 3 years ago • 4 comments

https://github.com/baserproject/ucmitz/blob/dev/plugins/baser-core/src/View/Helper/BcContentsHelper.php

  • フロント用の関数と管理画面用の関数が混在している
    • フロント用: nextLink、pvevLinkなど
    • 管理画面用: isActionAvailable、isEditableなど
  • フロント用の関数はBcBaserHelper経由でも呼び出せるようにとの話なので対応方法を検討

seto1 avatar Jun 20 '22 07:06 seto1

フロント用の関数はBcBaserHelper経由でも呼び出せるようにとの話なので対応方法を検討

こちらに関しては、BlogBaserHelper と BlogHelper の関係のように次の構成でできたらと思います。 https://miro.com/app/board/uXjVOr6f8uM=/?share_link_id=818933006789

ただ、現在は、プラグインしかマジックメソッドで呼び出せないので、コア側はヘルパの登録の仕組みが必要となりそうです。

@seto1

ryuring avatar Jun 21 '22 04:06 ryuring

@ryuring 分かりやすい図をありがとうございます。

透過的に呼び出すためのクラスも分かりやすいと思うのですが、設定ファイルに紐付け設定を記載するのも記述量とファイル数が減るのですがいかがでしょう。

サンプル: https://github.com/seto1/ucmitz/commit/4bda367900eec69a6b6371c9f09f07c4152e17ee

seto1 avatar Jun 28 '22 01:06 seto1

@seto1 これは面白い実装ですね。 設定ファイルのキー名が散らからないようちょっと考えたいところですね。

BcHelper.callFunction.BcBaserHelper

そういえば、bc_form.php もあるな。これは、Cakeの仕組みでヘルパのオプション指定で読み出してる感じですね。 BcAdminAppView に定義があります。

ryuring avatar Jun 30 '22 05:06 ryuring

設定ファイル名変更 & loadHelperでの設定読み込み対応版はこちらです。 https://github.com/seto1/ucmitz/commit/2117ccd4742a79f40d5e3a66785433752570776a

透過的呼び出しの対応がBcBaserHelper以外で必要になってくるかによって、設定値の形式や渡し方は要検討ですね。 BcBaserHelper以外での対応が必要になってくるのであれば、基底クラス (BcHelper?)が必要になってくるかと思います。

seto1 avatar Jul 07 '22 07:07 seto1