Tôi vừa tiếp quản một trang web và phải xây dựng lại trang web bằng trình soạn nhạc. Nếu vẫn giữ nguyên chức năng loft_data_grids_boot(), việc sử dụng drush để xóa bộ đệm sẽ dẫn đến thông báo lỗi
PHP Fatal error: Cannot redeclare class AKlump\LoftDataGrids\DrupalTableExporter in /...../public/sites/all/modules/contrib/loft_data_grids/includes/DrupalTableExporter.php on line 7
Tuy nhiên, vá mã
require_once dirname(__FILE__) . '/vendor/autoload.php';
dẫn đến báo cáo trạng thái rằng "Đã tìm thấy các phụ thuộc Loft Data Grids nhưng không được tải; xem README để biết hướng dẫn cài đặt. "
Thư mục nhà cung cấp/aklump được sao chép trong cả thư mục nhà cung cấp do mô-đun cung cấp và thư mục nhà cung cấp mà phần còn lại của nhà soạn nhạc tạo ra, điều này gây ra xung đột này vì mô-đun dường như đang sao chép một số quy trình khởi động mà một trang web được xây dựng bởi nhà soạn nhạc đã sẵn sàng
Vài ngày trước, chúng tôi đã gặp thông báo lỗi này do khách hàng của chúng tôi không thể tiếp tục viết mã trong một thời gian dài
Tại Bobcares, chúng tôi thường nhận được yêu cầu sửa các lỗi nghiêm trọng của PHP, như một phần của Dịch vụ quản lý máy chủ của chúng tôi
Hôm nay, chúng ta sẽ tìm hiểu sâu về các lỗi nghiêm trọng của PHP và xem các Kỹ sư hỗ trợ của chúng ta khắc phục chúng như thế nào
Tại sao xảy ra lỗi nghiêm trọng PHP?
Chúng tôi đã thấy nhiều khách hàng của mình gặp phải lỗi này. Thông thường, lỗi này khiến tập lệnh bị chấm dứt ngay lập tức
Về cơ bản, 'Lỗi nghiêm trọng PHP không thể khai báo lại lớp' chỉ ra rằng tên lớp đã tồn tại
Thông thường, lỗi này xuất hiện khi người dùng đang thêm một số mã PHP mới. Nhưng các trang web WordPress cũng hiển thị lỗi tương tự do xung đột plugin hoặc chủ đề
Hãy xem cả hai trường hợp này một cách chi tiết
1. Lỗi khi mã hóa
Lỗi nghiêm trọng PHP là khá phổ biến trong khi viết mã. Các nhà phát triển thường nhận được thông báo lỗi khi cố gắng khai báo một lớp đã tồn tại. Thông báo lỗi xuất hiện dưới dạng
PHP Fatal error: Cannot redeclare class.Tại điểm lỗi này, tập lệnh kết thúc
Gần đây, một trong những khách hàng của chúng tôi đã tiếp cận chúng tôi với lỗi này. Vì vậy, chúng tôi đề nghị anh ấy tránh sử dụng lớp đã có sẵn trong mã hóa tiếp theo
Nhưng lớp mới được tạo bởi khách hàng của chúng tôi cũng đưa ra lỗi tương tự. Vì vậy, chúng tôi đã cung cấp cho anh ấy lệnh dưới đây để khắc phục sự cố
include_once "xxxx.php";Đây XXXX là tên lớp mới
2. Lỗi không thể khai báo lại lớp trong WordPress
Đôi khi, các trang web WordPress hiển thị lỗi nghiêm trọng không thể khai báo lại lớp
Thông thường, trang WordPress dựa trên PHP hiển thị lỗi này sau khi cài đặt plugin hoặc chủ đề mới. Một thông báo lỗi điển hình trong WordPress trông giống như
Khi khách hàng của chúng tôi tiếp cận chúng tôi với thông báo lỗi này, Nhóm hỗ trợ của chúng tôi sẽ kiểm tra lý do gây ra lỗi
Trong hầu hết các trường hợp, lỗi sẽ xảy ra với việc sử dụng cùng một lớp trong hàm. tập tin php và plugin. Vì vậy, để khắc phục lỗi này, chúng tôi vô hiệu hóa plugin và cài đặt phiên bản mới nhất
[Cần trợ giúp trong việc sửa các lỗi nghiêm trọng của PHP? . ]
Phần kết luận
Nói tóm lại, lỗi nghiêm trọng PHP không thể khai báo lại lớp xảy ra do sử dụng lại tên lớp đã tồn tại hoặc plugin trong các trang web WordPress. Hôm nay, chúng tôi đã xem cách Kỹ sư hỗ trợ của chúng tôi khắc phục lỗi này cho khách hàng của chúng tôi
NGĂN CHẶN MÁY CHỦ CỦA BẠN KHỎI SỰ CỐ
Không bao giờ mất khách hàng vì tốc độ máy chủ kém. Hãy để chúng tôi giúp bạn
Các chuyên gia máy chủ của chúng tôi sẽ giám sát và bảo trì máy chủ của bạn 24/7 để nó luôn hoạt động nhanh và an toàn
Đôi khi nó sẽ chỉ in một lần, mặc dù lớp của bạn được đưa vào hai lần trở lên. Điều này là do PHP thực sự phân tích cú pháp tất cả các lớp cấp cao nhất trong một tệp trước khi thực thi bất kỳ mã nào và đưa ra lỗi nghiêm trọng ngay lập tức. Để khắc phục điều này, hãy bọc khai báo lớp của bạn trong if(true) { .. }, điều này sẽ chuyển lớp của bạn xuống một mức trong phạm vi. Sau đó, bạn sẽ nhận được hai dấu vết của mình trước các lỗi nghiêm trọng của PHP
Điều này sẽ giúp bạn tìm thấy nơi lớp học của bạn được đưa vào nhiều lần trong một dự án phức tạp