Нередко ошибки, из-за которых сайт падает, связаны с некорректным удалением компонентов. Например, остаются хуки, которые после удаления продолжают жить собственной жизнью. В документации очень лаконично описано, что
должно быть выполнено при удалении компонента. Боюсь, что эту краткость трактуют как руководство к действию. В результате actionDeleteComponent() в backend.php может иметь такой вид
public function actionDeleteComponent(){ $model = new cmsModel(); $model->deleteController('somecontroller'); $this->redirectTo('admin', 'controllers'); }
Ни о каких файлах и речи нет. Но нужно это как-то поправить!
Вначале я пошел по легкому пути и решил удалить основные папки, нашел крутой хелпер. Написал, но такое решение меня не устроило по нескольким причинам. Основным было то, что я не охватывал все файлы, которые были в компоненте.
И тут вспомнил, что при установке компонента появляются голубенькие папочки. (Для многих, я не исключение 😁, это всего лишь справочная информация и вы уже быстро двигаетесь дальше.)
Посмотрел в таблицу controllers — да, есть поле files. Эврика, вот они исходные данные!
Вариант, который представлен, удаляет файлы компонента, папки решил не трогать. Замечу, что на исчерпывающее решение не претендую, всегда есть какие-то нюансы, с которыми конкретный разработчик должен справится самостоятельно. Код выложен на gist.github.com. Будут замечания — не стесняйтесь.