Статистика использования компонентов

Рейтинг: 38.3286  
На голосовании
Предложил Пользователь 109495 05.07.2013 09:15:16

Статистика использования компонентов

В админке создать страницу, на которой был бы полный список всех использованных на сайте компонентов с указанием использованных шаблонов.
Зачем это нужно - часто нужно понять, используется ли на сайте какой-то шаблон или кастомный компонент - может, он уже мертвый груз и стоит его удалить?
С точки зрения ничего сложного не вижу - создать табличку БД с колонками для названия компонента, шаблона, пути подключения, а при каждом выполнении функции IncludeComponent добавлять запись в БД, выполняя проверку на уникальность перед добавлением. А в админке отображение этой таблицы + кнопка очистки таблицы.
Чтобы не замедлять сайт, можно вести такую статистку только в режиме отладки сайта.

Рейтинг: 4.1953  
Пользователь 11948 05.07.2013 12:51:39
а при каждом выполнении функции IncludeComponent добавлять запись в БД
Чтобы не замедлять сайт, можно вести такую статистку только в режиме отладки сайта
А если компонент редкий? Или вообще на него входа извне уже нет давно.

Идея хорошая, но тут только перебором публичной части и шаблонов действовать. Сканирование то бишь.  
Рейтинг: 0.2565  
Пользователь 109495 06.07.2013 09:18:04
Спасибо за отзыв!
Я тоже сначала предполагал предложить статический анализ кода, но бывают такие проекты, в которых шаблон выбирается на основе данных из сессии, кук, параметров отправленных на страницу и вычислить его нельзя.
Может, скомбинировать оба метода?
Рейтинг: 5.6478  
Пользователь 11948 07.07.2013 13:17:55
Если честно, подмена шаблона динамически (из переменной) очень нехороший стиль, этого лучше избегать. А подстраивать под плохой стиль алгоритмы сканирования как-то тоже не очень. Поэтому я только за сканирование. К тому же, в результатах сканирование будет видно, что шаблон это переменная,  а дальше разработчик пусть сам думает что там и как.

PS: Я не спорю, иногда без переменной-имени шаблона никуда, но это крайне редкая задача. А если она возникает часто, лучше пересмотреть задачу еще раз.  
Рейтинг: 1  
Пользователь 203730 13.09.2013 09:45:20
Хотя бы событие в IncludeComponent добавили, с остальным уже справиться не проблема (если речь о фиксации выполнения компонента с шаблоном а не о статическом анализе)