Skip to content

命名規約 #6

Description

@chihiro-adachi

プラグインコード

重複を避けるため, [ベンダー名][プラグイン]の形式を推奨
キャメルケースで記述する

AcmeCategoryContent

テーブル名

※プラグイン固有のテーブルを作成する場合

plg_[プラグインコードのスネークケース]_xxx

use Doctrine\ORM\Mapping as ORM;

/**
 * Config
 *
 * @ORM\Table(name="plg_acme_category_content_config")
 * @ORM\Entity(repositoryClass="Plugin\AcmeCategoryContent\Repository\ConfigRepository")
 */
class Config

テーブルのカラム名およびgetter/setter

※traitを使用してカラムを追加する場合

[プラグインコードのスネークケース]_xxx
getter/setterはキャメルケースで記述する

use Eccube\Annotation\EntityExtension;
use Doctrine\ORM\Mapping as ORM;

/**
 * @EntityExtension("Eccube\Entity\Customer")
 */
trait CustomerTrait
{
    /**
     * @ORM\Column(name="acme_category_content_xxx" type="integer", nullable=true)
     */
    private $acme_category_content_xxx;

    public function getAcmeCategoryContentXxx()
    {
    }

    public function setAcmeCategoryContentXxx($xxx)
    {
    }
}

ルーティング

[プラグインコードのスネークケース]_xxx

class ConfigController extends AbstractController
{
    /**
     * @Route("/%eccube_admin_route%/acme_category_content/config", name="acme_category_content_admin_config")
     * @Template("@AcmeCategoryContent/admin/config.twig")
     */
    public function index(Request $request)

URL

/[プラグインコードのスネークケース]/xxx/xxx

class ConfigController extends AbstractController
{
    /**
     * @Route("/%eccube_admin_route%/acme_category_content/config", name="acme_category_content_admin_config")
     * @Template("@AcmeCategoryContent/admin/config.twig")
     */
    public function index(Request $request)

FormExtensionで追加するフィールド

[プラグインコードのスネークケース]_xxx

class XxxExtention extends AbstractTypeExtension
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('acme_category_content_name', TextType::class);

htmlで使用するID, class

[プラグインコードのスネークケース]_xxx

<div id="acme_category_content_info" class="card rounded border-0 mb-4">

コマンド名

[プラグインコードのスネークケース]:xxx:xxx

class XxxCommand extends Command
{
    protected static $defaultName = 'acme_category_content:xxx:yyy';

言語ファイル

[プラグインコードのスネークケース].xxx.xxx

# nav
acme_category_content.admin.nav.category: カテゴリコンテンツ一覧

# flash messages
acme_category_content.admin.save.success: 登録しました。
acme_category_content.admin.save.failed: 登録に失敗しました。

プラグインコード以降の命名規則はEC-CUBE本体の命名規則に従う
EC-CUBE/ec-cube#3593

パラメータ

[プラグインコードのスネークケース].xxx.xxx

parameters:
  acme_category_content.xxx: 1

services:
  acme_category_content.log.formatter.line:
      class: Monolog\Formatter\LineFormatter
      arguments: ...

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions