
內容簡介
非常重要:此外掛已被停用,不再維護。請考慮改用Stage WP Plugin Manager。
若您在本機環境進行開發,當您將程式碼和資料庫部署到暫存或正式伺服器時,您會發現有些已啟用的外掛在暫存及正式環境並不需要。當然,您可以在部署前或之後停用這些外掛,但如果您想要更改程式碼或從遠端更新本機資料庫,您會需要這些外掛再次啟用。這整個啟用及停用外掛的測試流程可能非常令人沮喪,並且有時會是浪費時間的做法。
在這些情況下,環境外掛管理器可成為您的好幫手。不幸的是,由於這個外掛執行的敏感工作,它並不能立刻使用,因此除了安裝此外掛以外,您需要進一步做一些工作。
請仔細閱讀以下說明。
我需要什麼來使其運作?
環境外掛管理器以您的工作流程為假設:
在您的 WordPress 設定檔(通常是 wp-config.php)中,您需要有一個名為 WP_ENV_PLUGINS 的常數。
WP_ENV_PLUGINS 值必須是以下三者之一:development, staging, production。
WP_ENV_PLUGINS 的值在每個階段中是不同的。有些開發者喜歡為每個環境維護不同的設定檔,或者根據某些評估更改常數的值。例如,您可以在 wp-config.php 檔案中設置以下內容:
if ( file_exists( dirname( FILE ) . ‘/development-config.php’ ) ) { define(‘WP_ENV_PLUGINS’, ‘development’); } elseif ( file_exists( dirname( FILE ) . ‘/staging-config.php’ ) ) { define(‘WP_ENV_PLUGINS’, ‘staging’); } else { define(‘WP_ENV_PLUGINS’, ‘production’); }
如果您遵循此範例,請注意 development-config.php 不應該在部署到暫存和正式環境中包括在內,且 development-config.php 及 staging-config.php 不應該存在於您的正式環境中。
這些假設不會更改,因此您需要遵循這個實踐以正確使用此外掛。
如何設置我的環境?
安裝此外掛後(建議先在開發環境中安裝),您會發現在清單中每個已啟用外掛的下方出現一個新連結,上面寫著「僅供開發使用」(請注意,根據您的WP_ENV_PLUGINS常數,「開發」也可能為「暫存」或「正式」)。請記住這一點,並按照以下步驟進行:
啟用您需要在環境中使用的所有外掛程式。
對於所有要標記為僅限開發使用的外掛程式,請點選「僅供開發使用」連結。
按下連結後,該外掛程式將被新增到僅限在目前環境下啟用的外掛程式清單中。如果您想要將外掛程式從清單中移除,您可以點擊「不再僅供開發使用」連結。
如何在部署後重置我的環境?
一旦您成功進行完整的部署(包括檔案和資料庫),例如從開發環境到暫存,您會發現那些選擇在開發使用的外掛程式在暫存環境中會自動停用,且可能還會出現在已停用的外掛程式清單中。這是正常現象,接下來您可以按照上述步驟和您的WP_ENV_PLUGINS常數,重新啟用或停用外掛程式即可。
外掛標籤
開發者團隊
② 後台搜尋「Environmental Plugin Manager」→ 直接安裝(推薦)
原文外掛簡介
VERY IMPORTANT: This plugin is deprecated and will not be mantained anymore. Please consider using Stage WP Plugin Manager instead.
If you develop locally, at some point you’ll have some plugins active in your local environment that you don’t need anymore when you deploy your code and database to staging or production. Sure, you can deactivate them before or after deploying, but you’re gonna need them again to be active if you want to perform changes to your code, or update your local database from your remote one. The whole process of activate and deactivate plugins for testing purposes could be really frustrating, and sometimes a complete waste of time.
Is in that kind of situations when the Environmental Plugin Manager can be a really helpful friend. Sadly, due to the sentitive work that this plugin performs, it doesn’t work right out of the box, so besides from installing this plugin, you need to do some additional work.
Please read the following instructions very carefully.
What do I need to make it work?
The Environmental Plugin Manager works on some assumptions about your workflow:
You have a constant named WP_ENV_PLUGINS defined in your WordPress configuration file (often wp-config.php).
The WP_ENV_PLUGINS value is one of the following: development, staging, production.
The value of WP_ENV_PLUGINS is different in each of your stages. Some developers prefer to keep different configuration files for each one of their environments, or change the values of their constants based on some evaluation. For example, you could have something like this in your wp-config.php file:
if ( file_exists( dirname( FILE ) . ‘/development-config.php’ ) ) { define(‘WP_ENV_PLUGINS’, ‘development’); } elseif ( file_exists( dirname( FILE ) . ‘/staging-config.php’ ) ) { define(‘WP_ENV_PLUGINS’, ‘staging’); } else { define(‘WP_ENV_PLUGINS’, ‘production’); }
If you follow this example, note that development-config.php should not be included in your deployments to staging and production, and both development-config.php and staging-config.php should not exist in your production environment.
These assumptions are not going to change, so you need to follow this practice in order to use this plugin correctly.
How do I set up my environment?
Once you have installed this plugin (my recommendation is to do it first in development), you will notice that a new link appears under each active plugin of the list, which reads “Use for development only” (note that “development” could also be “staging” or “production”, depending on your WP_ENV_PLUGINS constant). Keep that in mind and follow these steps:
Activate all the plugins that you need to use for your environment.
Click the “Use for development only” link for all the plugins you want to mark as development-only.
Once you click a link, that plugin will be added to the list of plugins that need to be active only in the current environment. You can click the “No more development only” link if you want to remove the plugin from the list.
How do I reset my environment after a deploy?
Once you performed a complete deploy (files and database) to a different environment, let’s say from development to staging, you will see that those plugins you selected in development to be active only in that environment are still active. Fear not! This is an intended behavior, as it would be insecure to change the status of the plugins without your knowledge, so you need to do it manually by just clicking the “Reset Plugins Environment (staging)” button that you see in your admin bar. After that, you should see your development-only plugins as not active.
That’s pretty much it. You can test it yourself before deploying by just changing the values of WP_ENV_PLUGINS.
Auto-reset mode
If you prefer your environments to be reset automatically, without clicking any button, you can add a second constant to your configuration file, called WP_ENV_PLUGINS_AUTO_RESET, which should be set to true. If you use this method, you won’t see the reset button in the admin bar anymore (instead, it will be replaced by an environment indicator), but keep in mind that the reset process will run every time a page of your site is loaded. It shouldn’t take a lot of resources, though.
If you use the auto-reset process, using this plugin as a must-use will be a lot more effective.
Will this plugin work on MultiSite installations?
If you’re using MultiSite, please note that you can activate and deactivate this plugin globally, but you cannot manage plugin environments for the whole network, just for individual sites. Also, this plugin cannot manage network activated plugins. This is in the to-do list, though.
Contribute
You can make suggestions and submit your own modifications to this plugin on Github.
