MODULE.schema.yml có cần thiết khi bạn xác định MODULE.sinstall.yml không?


8

MODULE.schema.ymlyêu cầu khi bạn xác định MODULE.settings.yml? Có vẻ như nó cũng hoạt động khi tôi xóa MODULE.schema.ymltệp khỏi install / lược đồ.

Câu trả lời:


10

Nó không hoàn toàn cần thiết nhưng khuyến khích mạnh mẽ để có một.

Theo mặc định, Drupal không xác thực lược đồ, nhưng nó thực hiện trong các thử nghiệm và có một vấn đề sẽ cho phép nó nếu bạn sử dụng example.sinstall.local.php / Development.service.yml được cung cấp. Đó là lý do tại sao bạn không thấy lỗi ngay bây giờ khi bạn cài đặt, nhưng bạn sẽ thấy lỗi đó khi bạn viết bài kiểm tra đầu tiên của mình.

Hiện tại nó được sử dụng để đảm bảo cấu hình đã lưu có kiểu dữ liệu phù hợp (ví dụ: float và không phải là số nguyên); Không làm điều đó một cách chính xác có thể phá vỡ công cụ và khả năng dịch cấu hình. Nhiều thứ khác có thể theo sau, ví dụ như một mô-đun tạo biểu mẫu cài đặt.


1

Cài đặt.yml chỉ cần thiết khi bạn muốn có các giá trị mặc định để bắt đầu trong cấu hình của mình sau khi mô-đun được cài đặt.


lược đồ.yml hoàn toàn không có gì để làm với các bảng cơ sở dữ liệu, ý bạn là hook_schema ().
Berdir

Bạn nói đúng Tôi đã khiến họ bối rối, tôi đã chỉnh sửa câu trả lời của mình
Fons Vandamme

1

MODULE/config/install/MODULE.settings.yml tập tin không bắt buộc

MODULE.settings.ymltập tin cơ bản được sử dụng để cấu hình các giá trị mặc định. và điều đó sẽ chỉ ảnh hưởng khi bạn cài đặt mô-đun lần đầu tiên.

Hai tùy chọn có sẵn để phản ánh các thay đổi trong MODULE.settings.yml:

  1. Gỡ MODULEcài đặt và cài đặt lại!
  2. Sử dụng MODULE.installtập tin và hook_update_N(&$sandbox)

ví dụ: Tên tệp: MODULE/MODULE.install

    /**
     * Write a line or two here about what the updates are for.
     * This is shown to users on the update.php page.
     */
    function mymodule_update_8001(&$sandbox) {
      $config_factory = \Drupal::configFactory();
      $default_value = 'Test';
      $config_factory->getEditable('MODULE.settings')->set('config_field_key', $default_value)->save();
    }

liên kết tham khảo


Bạn có nghĩa là cần phải gỡ cài đặt mô-đun và cài đặt lại nếu cài đặt.yml cập nhật?
Jahng

Vui lòng kiểm tra câu trả lời cập nhật của tôi, tôi hy vọng nó sẽ giúp bạn.
AshwinP
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.