Tích hợp trình tải tự động của nhà soạn nhạc vào Magento


19

Vì vậy, nhà soạn nhạc thật tuyệt vời và có rất nhiều mã trong kho lưu trữ packagist của nhà soạn nhạc giúp việc viết các phần mở rộng Magento dễ dàng hơn.

Vấn đề tôi gặp phải là cách tốt nhất để thiết lập tự động tải.

Theo mặc định, các gói soạn thảo được cài đặt cho / nhà cung cấp và bên trong thư mục đó là tệp autoload.php, thiết lập tải lớp cho các gói do nhà soạn nhạc quản lý.

Vì vậy, cách tốt nhất để tập tin /vendor/autoload.php 'của nhà soạn nhạc là gì? Điều này sẽ cần phải làm việc cho cả các kịch bản webstore và shell. Có một sự kiện quan sát nào tôi có thể nhấn để thực hiện các yêu cầu không?

Chúc mừng!


Không có manh mối nếu github.com/magento-hackathon/magento-composer-installer có bất kỳ trợ giúp nào ở đây. Tôi nghĩ rằng nó không liên quan. Tôi nghĩ rằng bạn cố gắng cài đặt các gói không phải Magento với nhà soạn nhạc và về cơ bản muốn có chúng trong lib /
Alex

Vâng, bạn có thể đặt trình soạn thảo để cài đặt thành lib nếu bạn chọn, nhưng tôi muốn tách libs của trình soạn thảo / mage libs nếu có thể. Ngoài ra, trong trình soạn thảo, bạn có thể có những thứ gọn gàng như tự động nạp lớp, không phù hợp với cơ chế tải tự động Mage.
Aaron Bonner

1
+1. Có vẻ như một trong những sự kiện đầu tiên được gửi từ Mage.php nên thực hiện thủ thuật ...?
kalenjordan

Tôi biết rằng điều này đã được trả lời từ lâu, nhưng một tùy chọn khác là đưa trình tải tự động của nhà cung cấp vào tệp index.php của bạn (trước khi require_once $mageFilenameđược gọi). Điều này hoạt động tốt cho cài đặt máy khách và không mất tập tin viết lại.
Joseph tại SwiftOtter

Vâng, bạn đang hack một tập tin cốt lõi, index.php. Khi bạn nâng cấp, bạn sẽ cần nhớ bạn đã thêm dòng mã đó vào tệp index.php.
Aaron Bonner

Câu trả lời:


15

Trình tải tự động Magento được đăng ký Mage.php.

Nếu muốn làm điều này trong một mô-đun riêng, bạn nên lấy sự kiện đầu tiên có thể và yêu cầu trình tải tự động ở đó

Theo phân tích của Alan, điều này sẽ xảy ra resource_get_tablename- nhưng bạn phải chắc chắn rằng bạn chỉ xử lý sự kiện này một lần.

Giải pháp nhanh và bẩn sẽ là vá lỗi Mage.php(phần đầu của tệp) - nhưng đây là hack lõi.

Ngoài ra, chúng tôi có mô-đun Magento-PSR-0-Autoloader , cung cấp một cách để thêm các nhà soạn nhạc tự động tải thông qua cấu hình. Đây là một triển khai cơ bản sử dụng resource_get_tablenamesự kiện này.


Cảm ơn Alex, điều đó thật hoàn hảo. Tôi đã vá mage.php nhưng không muốn đưa nó vào sản xuất. quan sát resource_get_tablename hoạt động tốt!
Aaron Bonner

4
Vinai cũng có một đề nghị tuyệt vời là đặt Varien_Autoload vào nhóm mã địa phương và đặt mã cần thiết ở đó để tránh các sự kiện quan sát đắt tiền và vá mã lõi trực tiếp.
Aaron Bonner

1
"Thực hiện đơn giản ví dụ trên: github.com/thijssnowcountry/magento1_composer_loader " - @ user2594875
Fabian Schmengler
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.