Đang tải phụ thuộc từ thư mục nhà cung cấp trong mô-đun bằng trình soạn thảo


7

Tôi đang sử dụng trình soạn thảo để quản lý các phụ thuộc trong mô-đun drupal của mình. Tôi đã chỉ định sự phụ thuộc của mình trong tệp composer.json được đặt trong thư mục gốc của mô-đun. Sau khi chạy composer installcomand, nó sẽ cài đặt tất cả các phụ thuộc một cách chính xác; tuy nhiên, tự động tải dường như không hoạt động.

Tôi đã kiểm tra một số chủ đề ở đây để giải quyết vấn đề và thấy rằng hầu hết trong số họ đề nghị sử dụng mô-đun trình quản lý nhà soạn nhạc có sẵn ngay cả trên trang của mô-đun trên drupal.org, nó nói rằng nó không được chấp nhận do việc sử dụng trình soạn thảo được cải tiến của Drupal kể từ phiên bản 8.1

Đây là tệp composer.json của tôi trong thư mục gốc của mô-đun của tôi:

{
"name": "activit/facebook_ratings",
"description": "Display a feed of your Facebook fanpage's ratings on your website.",
"type": "drupal-module",
"require": {
    "facebook/graph-sdk": "^5.4"
},
"license": "MIT",
"authors": [
    {
        "name": "Robert Balasko",
        "email": "rbalasko@activit.sk"
    }
]
}

và một lớp nhà máy trong thư mục gốc của src cố tải một lớp từ biểu đồ-sdk.

<?php namespace Drupal\facebook_ratings;


use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Facebook\Facebook;

class FacebookConnectorFactory {

  private $logger_factory;

  public function __construct(LoggerChannelFactoryInterface $logger_factory) {
    $this->logger_factory = $logger_factory;
  }

  public function getFacebookService($app_id, $app_secret) {
    if (!$app_id || !$app_secret) {
      $this->logger_factory
        ->get('facebook_ratings')
        ->error('Undefined App ID or App secret');

      return FALSE;
    }

    return new Facebook([
      'app_id' => $app_id,
      'app_secret' => $app_secret,
      'default_graph_version' => 'v2.6',
    ]);
  }

}

Kết quả là một class not foundlỗi khi tôi chạy mã của tôi. Không nên phụ thuộc vào tự động tải hay tôi đang làm gì sai?

Cảm ơn rất nhiều.

Câu trả lời:


7

Trình quản lý trình soạn thảo chỉ là một trình bao bọc nhỏ xung quanh Plugin Merge mà chúng ta có trong lõi ngày nay.

Đăng ký mô-đun của bạn trong thư mục gốc composer.jsoncủa dự án, tìm kiếm thêm> hợp nhất-plugin> bao gồm. Nó sẽ giống như thế này:

"extra": {
    "_readme": [
        "By default Drupal loads the autoloader from ./vendor/autoload.php.",
        "To change the autoloader you can edit ./autoload.php."
    ],
    "merge-plugin": {
        "include": [
            "core/composer.json",
            "modules/facebook_ratings/composer.json"
        ],
        "recurse": false,
        "replace": false,
        "merge-extra": false
    }
}

modules/facebook_ratings/composer.jsonlà con đường dẫn đến của bạn composer.json. Nó phụ thuộc vào nơi bạn có mô-đun của bạn.

Chạy composer installsau đó.

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.