Sử dụng tiện ích mở rộng gỡ lỗi / chế độ nhà phát triển đủ bảo vệ


18

Có một số tiện ích mở rộng tuyệt vời dành cho nhà phát triển Magento mà bạn thường không muốn có trên hệ thống trực tiếp.

Làm thế nào bạn có thể giữ chúng trong kho dự án nhưng tránh để chúng bị lộ trên một cửa hàng trực tiếp?

Câu trả lời:


20

Có hai kỹ thuật tương đối mới để làm điều đó:

  • Sử dụng modman để bạn có thể tự kiểm soát những gì cần triển khai cho từng môi trường. Điều này có nghĩa là bạn modman deploy [name-of-dev-extension]chỉ chạy ở môi trường dev của bạn.

  • Sử dụng trình soạn thảo magento với các composer.jsonkịch bản khác nhau cho các môi trường khác nhau. Và cách dễ dàng hơn nữa là chỉ định các phần mở rộng đó là các mô-đun dev và sau đó cài đặt dự án bằng cách sử dụng công --require-devtắc trên máy phát triển của bạn.


1
+ một để giới thiệu cho modman :) tùy chọn tốt đẹp
Toon Van Dooren

Bạn có thể mô tả thêm về cách triển khai cụ thể theo môi trường đó như thế nào không? Ý tôi là tôi giữ danh sách các mô-đun tôi triển khai ở đâu? Thông thường tôi có một thư mục của tất cả các mô-đun - và một lần nữa tôi phải tách biệt trực tiếp và phát triển.
Alex

@Alex: vui lòng xem chỉnh sửa của tôi.
dùng487772

@Tim: cảm ơn! Tôi cũng chỉnh sửa câu trả lời của bạn bây giờ.
Alex

@Alex: Cảm ơn. Tôi không biết điều này :-)
user487772

10

Chúng thường có thể được tắt một cách thuận tiện với cờ cấu hình, vì vậy chúng hoạt động về mặt kỹ thuật nhưng không làm gì cả. Nếu bạn đặt cờ này thành false trong app/etc/local.xmlhệ thống trực tiếp của mình, bạn sẽ ổn.


Đây là một giải pháp tốt trừ khi bạn muốn giữ local.xmltập tin của mình trong repo. Đó có thể là một trường hợp.
dùng487772

Câu trả lời tuyệt vời - local.xmlthường không có trong repo
Alex

6

Xem MageTrashApp được tạo ra tại Magento Hackathon ở Berlin gần đây. Cho phép bạn hủy kích hoạt các mô-đun thông qua bảng quản trị.


5

Một cách đơn giản để làm điều này là, vô hiệu hóa mô-đun trong / etc / mô-đun, đẩy nó, bỏ qua tệp cục bộ và kích hoạt lại nó.


Trong trường hợp này, bạn sẽ bị giới hạn trong việc thực hiện sửa đổi đối với tệp bootstrap mở rộng (ví dụ: sửa đổi phụ thuộc). Ngoài ra nếu bạn sẽ kiểm tra, hãy nói trên máy khác của bạn, bạn sẽ phải thực hiện lại những thủ thuật đó một lần nữa. Có thể còn bất tiện hơn với một nhóm gồm nhiều nhà phát triển.
dùng487772

Nếu bạn bỏ qua tệp cục bộ, điều duy nhất các nhà phát triển khác phải làm là kích hoạt lại. Điều này chỉ mất vài giây imho.
Toon Van Dooren

Đúng. Nhưng sau đó họ lại phải bỏ qua nó tại địa phương. Và điều này là cho mỗi phần mở rộng cho mỗi bản sao làm việc. Ý tôi là giải pháp của bạn chắc chắn sẽ hiệu quả nhưng hơi bất tiện.
dùng487772

đúng, tôi đoán tôi chỉ nhìn nó từ vị trí của mình, tôi thường chỉ tích hợp 1 hoặc 2 công cụ dev :-)
Toon Van Dooren

3

Tôi nghĩ rằng cách tốt nhất để xử lý vấn đề này là giữ tất cả các mô-đun đó trong mã cục bộPool và vô hiệu hóa tất cả các mô-đun cục bộ trực tiếp với dòng này trong tệp localDB của bạn:

    <disable_local_modules>true</disable_local_modules>

Hoặc bạn có thể thực hiện "Tắt đầu ra mô-đun" trong phần phụ trợ trên môi trường trực tiếp của mình. (Hệ thống -> Cấu hình -> Nâng cao). Tuy nhiên, điều này không hoàn toàn vô hiệu hóa các mô-đun. Nhưng có lẽ nó chỉ đủ để bạn muốn che giấu nó.

Điều khác duy nhất tôi có thể nghĩ là viết một số mã có thể kéo cái này ra. Chỉ cần kiểm tra xem nó ở chế độ nhà phát triển ( Mage::getIsDeveloperMode()) và sau đó tắt các mô-đun. Tôi đã tìm thấy một số chi tiết khác để đạt được điều này tại đây: /programming/6520634/magento-how-to-disable-module-programmatically


Cả 3 giải pháp đều không đủ tốt. Vô hiệu hóa localcác mô-đun sẽ buộc bạn di chuyển tất cả các mô-đun khác từ localcodePool vào communityvà cũng làm điều đó cho tất cả các tiện ích mở rộng trong tương lai. Vô hiệu hóa đầu ra mô-đun như bạn nói vẫn cho phép tiện ích mở rộng làm chậm cửa hàng của bạn. Và giải pháp thứ 3 sẽ yêu cầu sửa đổi sẽ được ghi đè bằng bản cập nhật (các) tiện ích mở rộng.
dùng487772

2
@Tim tôi đồng ý, hoàn toàn. Cần có một cách tốt hơn để xử lý vấn đề này, nên có một cấu hình cốt lõi để vô hiệu hóa / kích hoạt các mô-đun khi ở chế độ phát triển.
Rick Kuipers

3

Tôi thường chỉ đưa chúng vào môi trường thử nghiệm của mình, nhưng không kiểm tra chúng vào hệ thống kiểm soát phiên bản, ví dụ bằng cách sử dụng .gitignoretệp để loại trừ chúng khỏi bị xem xét để cam kết.


OP nhấn mạnh vào việc giữ các phần mở rộng trong kho lưu trữ.
dùng487772

1

Có một slide trong hội nghị Imagine 2011 của Erik Hansen. Ông đã nêu một mã trong slide như bên dưới (đối với chế độ nhà phát triển)

# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
   $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}

Đây là, Erik cho phép cài đặt dựa trên các tên miền phụ mà bạn có thể tự tùy chỉnh nó.


Điều này có liên quan gì đến các mô-đun để phát triển?
Bryan Ruiz

Kính gửi @bryan_ruiz, hệ thống Magento kiểm tra MAGE_IS_DEVELOPER_MODE xem có hoạt động hay không. Kiểm tra bài viết của Alan. Chế độ nhà phát triển Magento
Oğuz elikdemir

những gì tôi đang nói là tôi không hiểu làm thế nào điều này liên quan đến câu hỏi. chế độ nhà phát triển sẽ không kích hoạt hoặc vô hiệu hóa các mô-đun anh ta đang sử dụng.
Bryan Ruiz

Bryan, như tôi đã chỉ định trong nhận xét của mình, bạn có thể tùy chỉnh mã theo yêu cầu của bạn. Tất nhiên, ý tưởng thô không phù hợp với yêu cầu. Chẳng hạn, nếu bạn viết phần mở rộng của mình phụ thuộc vào một tham số, bạn có thể kiểm tra hoặc kiểm soát đoạn trích trên!
Oğuz elikdemir
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.