Lỗi nghiêm trọng: Không thể khởi tạo giao diện


11

Cửa hàng magento của tôi đang ném lỗi này:

Lỗi nghiêm trọng: Không thể khởi tạo giao diện Magento \ Framework \ View \ Design \ Theme \ ResolverInterface trong /L Library / WebServer / Document / magento /veor / magento / framework / OcjectManager / Factory / DTHER / Developer.php trên dòng 73

Tôi không biết tại sao nó bắt đầu xuất hiện. Tôi không cài đặt mô-đun mới. Cửa hàng đã hoạt động tốt.

Tôi đã kiểm tra quyền truy cập tập tin và tôi thấy không có vấn đề ở đó. Đồng thời xóa / var / dir và, tôi nghĩ rằng, tất cả các thư mục / tệp được tạo.

[EDIT] Tùy chọn được xác định là nhà cung cấp / magento / magento2-base / app / etc / di.xml

<preference for="Magento\Framework\View\Design\Theme\ResolverInterface" type="Magento\Theme\Model\Theme\Resolver" /> 

1
Tôi hy vọng trong mô-đun tùy chỉnh của bạn hoặc mã bạn đang cố gắng sử dụng Magento \ Framework \ View \ Design \ Theme \ ResolverInterface trong hàm tạo hoặc trình quản lý đối tượng
Pradeep Kumar

@PradeepKumar số tôi không.
Filipe Sá

2
xóa bộ nhớ cache của bạn và nội dung của var/generation.
Marius

@Marius như đã nêu trong câu hỏi, tôi đã xóa hoàn toàn thư mục / var / *.
Filipe Sá

Lấy làm tiếc. Tôi đã bỏ lỡ dòng đó.
Marius

Câu trả lời:


23

Nếu bạn sử dụng redis, hãy chạy:


redis-cli flushall



Nếu bạn cũng sử dụng một môi trường như ansible ( lxc - server), bạn sẽ cần thực hiện lệnh đó trong vùng chứa. Thêm vào đó tôi đã làm như sau:

  • Thông thoáng var/generation
  • Thông thoáng var/cache
  • Kích hoạt các mô-đun Magento: bin/magento module:enable --all
  • Biên dịch DI bin/magento setup:di:compile

1
có rất nhiều giải pháp sai lệch ngoài kia và điều này đã có hiệu quả ngay lập tức

3
Kích hoạt các mô-đun Magento: mô-đun bin / magento: enable --all - Làm việc cho tôi
Agnes

KHÔNG! Nó không phải là thực hành tốt! mô-đun bin / magento: enable --all giống như chmod -R 777 :(
Kārlis Millers

6

Tôi đã có lỗi này và nó đã được giải quyết bằng cách xóa thư mục var và sau đó chạy setup:upgrade. Nếu điều này không giải quyết được thì hãy tìm lỗi trong di.xmltập tin


đặc biệt làm việc cho tôivar/cache
Joshua Soileau

Cảm ơn redis-cli flushallđã làm việc cho tôi.
Sarjan Gautam

4

Chạy theo lệnh và kiểm tra.

rm -rf generated

rm -rf var/*

Đã làm cho tôi.


2

Điều này làm việc cho tôi:

 sudo apt-get install php-intl

 sudo service apache2 reload

1

Trong trường hợp của tôi, tôi đã phải xóa một mô-đun và tôi chỉ đơn giản là xóa các tệp của mô-đun mà không theo các phương pháp thích hợp và sau đó lỗi này xuất hiện ở mọi nơi. Sau khi tìm kiếm nhiều, tôi đã kết thúc việc thay thế các tập tin của mô-đun trở lại cùng thư mục và xóa tất cả các thư mục cần thiết khỏi var và chạy các lệnh sau.

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy

và tất cả đã được sửa. Sau đó tôi làm theo những cách thích hợp để loại bỏ mô-đun. Hy vọng điều này sẽ tiết kiệm thời gian của ai đó. :-)


1

Xóa bộ nhớ cache rm -rf var/cache

Nếu bật lại, hãy xóa db bằng cách sử dụng dòng lệnh:

$> redis-cli
$> flushall

0
php bin/magento c:c
php bin/magento setup:di:compile

sẽ khắc phục vấn đề của bạn


0

Dump trình soạn thảo tự động tải tập tin:

$ composer dumpautoload

Sau đó:

bin/magento setup:upgrade
bin/magento setup:di:compile


0

Lỗi này được tạo khi bạn thử tạo (mới) một đối tượng (lớp) trên thực tế và giao diện. Điều này thường xảy ra khi bạn chưa ghi đè giao diện cho một lớp trong tệp di.xml. Hoặc đã ghi đè lên tệp di.xml trong thư mục adminhtml và đang cố gắng sử dụng giao diện trong giao diện.

interface MyInterface{
   pubic function getVariable(): int
}

class MyClass 
implements MyInterface{

   protected $variable;

   pubic function getVariable(){
      return $this->variable;
   }
}

$variable = new MyInterface();
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.