Przywracanie features za pomocą kodu PHP

Przywracanie features za pomocą kodu PHP

25.03.2013

Jeśli zarządzamy wersjami naszej aplikacji za pomocą hook_update_N oraz używamy modułu Features to często pojawia się konieczność przywrócenia nowych ustawień z plików. Można to zrobić ręcznie klikając na stronie administracyjnej modułu Features w poszczególne moduły, których status chcemy przywrócić. Szybszą metodą jest jeszcze użycie Drusha oraz komendy:

drush fra -y

Jeszcze jedna opcja to użycie kodu PHP. Kod taki można umieścić w hook_update_N i wraz z wywołaniem skryptu update.php wszystkie moduły typu features zostaną przywrócone do stanu domyślnego.

 

 

/** * List of all features. */ function application_features_list() { $features = array( 'application', 'page', 'layout', 'userprofile', ); return $features; } /** * Revert specified features. */ function application_features_revert($modules) { module_load_include('inc', 'features', 'features.export'); features_include(); foreach ($modules as $module) { if (($feature = feature_load($module, TRUE)) && module_exists($module)) { $components = array(); // Forcefully revert all components of a feature. foreach (array_keys($feature->info['features']) as $component) { if (features_hook($component, 'features_revert')) { $components[] = $component; } } } foreach ($components as $component) { features_revert(array($module => array($component))); } } } /** * Application update * 2013-03-25 */ function application_update_7107() { application_features_revert(application_features_list()); }

Powyższy kod umieszczamy w pliku nazwamodułu.install. W Droptica takie zmiany zapisujemy zawsze w module o nazwie Application. Jest to główny moduł naszej aplikacji, który służy m.in. do zarządzania wersjami aplikacji.

Podchodzimy do każdego projektu indywidualnie!
Sprawdź nasze usługi

Wszystkie usługi
Drupal
Symfony
React
PHP
DevOps
Nodejs
Design/UX