Đặc tả plugin

Tổng quan

Mô tả các phác thảo của đặc tả trình cắm thêm.

Cấu trúc thư mục

Nó cho thấy cấu trúc thư mục chung của trình cắm thêm.

app/Plugin/SamplePlugin/
├── Command
├── Common
│   └── Nav.php
├── Controller
├── Doctrine
│   └── Query
├── Entity
├── EventListener
│   └── EventListener.php
├── Form
│   ├── Extension
│   └── Type
├── PluginManager.php
├── Repository
├── Resource
│   ├── config
│   ├── locale
│   └── template
└── composer.json

Không phải tất cả các thư mục trên, các tập tin được yêu cầu. Nó composer.jsonchỉ cần thiết để trở nên thiết yếu .

Tập tin cấu hình

Khi viết thông tin plugin, có composer.jsonđịnh nghĩa về container services.yaml.

composer.json

Viết thông tin plugin. [Thư mục plugin]/composer.json.

Các mục thiết lập như sau.

  • tên: tên gói
    • "ec-cube/[Code Plugin]" .
  • phiên bản: Phiên bản
    • Số phiên bản của plugin.
    • Vui lòng điều chỉnh theo định dạng phiên bản của php.
  • Mô tả: Tên plugin
  • loại: Loại gói
    • "eccube-plugin" Tôi sẽ
  • yêu cầu: gói phụ thuộc
    • Nếu có một gói được sử dụng bởi plugin, nó sẽ được nối thêm.
    • "ec-cube/plugin-installer": "~0.0.6" Hãy luôn luôn mô tả.
  • phụ: thông tin phụ trợ
    • "code": "[Mã trình cắm]" Hãy mô tả.

Một ví dụ về mô tả như sau.

{
    "name": "ec-cube/ProductReview",
    "version": "1.0.0",
    "description": "Plugin đánh giá sản phẩm",
    "type": "eccube-plugin",
    "require": {
        "ec-cube/plugin-installer": "~0.0.6"
    },
    "extra": {
        "code": "ProductReview"
    }
}

services.yaml

Xác định container. [Thư mục plugin]/Resouce/services.yaml. Bên cạnh định dạng yaml, php và xml cũng có thể được sử dụng.

Để biết định nghĩa về container, vui lòng tham khảo tài liệu chính thức của Symfony. https://symfony.com/doc/current/service_container.html

Đóng gói Plugin

Khi phân phối trình cắm được phát triển hoặc áp dụng cho cửa hàng của chủ sở hữu, bạn cần lưu trữ nó. Vui lòng lưu trữ trong tar.gz. Ngoài ra, vui lòng tạo một kho lưu trữ với các điểm sau đây trong tâm trí.

  • Không nén mỗi thư mục
  • .git.DS_StoreKhông bao gồm các thư mục, tập tin, vv trong kho lưu trữ
$ cd app/[PluginDir]
$ tar --exclude  ".git" --exclude ".DS_Store" -cvzf ../[PluginDir].tar.gz *

Thay đổi từ 3.0.x

Những thay đổi chính từ 3.0.x được mô tả.

  • Khấu hao của ServiceProvider
    • Định nghĩa vùng chứa được thực hiện bởi ServiceProvider hiện sử dụng cơ chế Symfony.
  • Thay đổi cơ chế di chuyển
    • Di chuyển bây giờ sử dụng học thuyết: lược đồ: cập nhật.
    • Vui lòng không di chuyển trong PluginManager, chỉ nhập dữ liệu, cập nhật / xóa dữ liệu ban đầu.
  • Khấu hao điểm móc
    • eccube.event.admin.requestCác điểm hook hoạt động trước và sau khi thực hiện yêu cầu không được chấp nhận.
    • Nếu bạn đang sử dụng nó để chèn một phần vào tệp twig, thì đó là phương pháp chuẩn bị một đoạn mã và dán nó cho người dùng.
    • https://github.com/EC-CUBE/ec-cube/issues/2440
  • Chỉ cài đặt tệp sẽ không được tải
    • Hồ sơ phải được đăng ký trong dtb_plugin.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *