Получите информацию о вашем проекте Laravel или Lumen.
Самый простой способ установить пакет — использовать композитор.
composer require " wnx/laravel-stats " --dev
Пакет автоматически зарегистрируется.
Если вы используете Lumen, вам необходимо вручную зарегистрировать поставщика услуг в файле bootstrap/app.php
:
$ app -> register ( Wnx LaravelStats StatsServiceProvider::class);
При желании вы можете опубликовать файл конфигурации в своих приложениях Laravel с помощью следующей команды:
php artisan vendor:publish --provider= " WnxLaravelStatsStatsServiceProvider "
После установки вы можете сгенерировать статистику, выполнив следующую команду Artisan.
php artisan stats
(Убедитесь, что вы запустили php artisan config:clear
перед запуском указанной выше команды.)
Статистика также доступна в формате JSON.
php artisan stats --json
Если вам нужен более подробный отчет и посмотреть, какие классы в какой компонент сгруппированы, вы можете использовать опцию --verbose
.
php artisan stats --verbose
Подробный вариант доступен также для формата JSON.
php artisan stats --json --verbose
Примечание. Если в вашем проекте для написания тестов используется Pest PHP, эти файлы будут автоматически исключены из статистики. Из-за внутренней работы laravel-stats тесты Pest PHP в настоящее время не могут быть обнаружены. См. № 194 для получения дополнительной информации.
Пакет сканирует файлы, определенные в массиве paths
в файле конфигурации. Затем он применяет классификаторы к этим классам, чтобы определить, какой компонент Laravel представляет класс.
Компонент | Классификация |
---|---|
Компоненты Livewire | Необходимо расширить LivewireComponent |
Контроллер | Должен быть зарегистрирован с помощью маршрута и не расширяет LivewireComponent |
Модель | Необходимо расширить IlluminateDatabaseEloquentModel |
Команда | Необходимо расширить IlluminateConsoleCommand |
Правило | Необходимо расширить IlluminateContractsValidationRule |
Политика | Политика должна быть зарегистрирована в вашем AuthServiceProvider |
Промежуточное ПО | Промежуточное ПО должно быть зарегистрировано в вашем Http-ядре. |
Событие | Необходимо использовать IlluminateFoundationEventsDispatchable -Trait |
Прослушиватель событий | Необходимо зарегистрироваться для участия в событии в EventServiceProvider |
Почта | Необходимо расширить IlluminateMailMailable |
Уведомление | Необходимо расширить IlluminateNotificationsNotification |
Нова Экшен | Необходимо расширить LaravelNovaActionsAction |
Панель управления Нова | Необходимо расширить LaravelNovaDashboard |
Нова Фильтр | Необходимо расширить LaravelNovaFiltersFilter |
Нова Линз | Необходимо расширить LaravelNovaLensesLens |
Нова Ресурс | Необходимо расширить LaravelNovaResource |
Работа | Необходимо использовать IlluminateFoundationBusDispatchable -Trait |
Миграция | Необходимо расширить IlluminateDatabaseMigrationsMigration |
Запрос | Необходимо расширить IlluminateFoundationHttpFormRequest |
Ресурс | Необходимо расширить IlluminateHttpResourcesJsonJsonResource или IlluminateHttpResourcesJsonResourceCollection |
Сеялка | Необходимо расширить IlluminateDatabaseSeeder |
Поставщик услуг | Необходимо расширить IlluminateSupportServiceProvider |
Компоненты лезвия | Необходимо расширить IlluminateViewComponent |
Пользовательские касты | Необходимо реализовать IlluminateContractsDatabaseEloquentCastsAttributes или IlluminateContractsDatabaseEloquentCastsInboundAttributes |
Фабрика баз данных | Необходимо расширить IlluminateDatabaseEloquentFactory |
Сумеречные тесты | Необходимо расширить LaravelDuskTestCase |
Тест BrowserKit | Необходимо расширить LaravelBrowserKitTestingTestCase |
PHPUnit-тест | Необходимо расширить PHPUnitFrameworkTestCase |
Если в вашем приложении есть собственные компоненты, которые вы хотели бы видеть в laravel-stats
вы можете создать свои собственные «Классификаторы». Создайте свои собственные классификаторы, реализовав контракт Classifier
и добавив класс в массив конфигурации stats.custom_component_classifier
.
Например:
// app/Classifiers/RepositoryClassifier.php
<?php
namespace App Classifiers ;
use Wnx LaravelStats ReflectionClass ;
use Wnx LaravelStats Contracts Classifier ;
class RepositoryClassifier implements Classifier
{
public function name (): string
{
return ' Repositories ' ;
}
public function satisfies ( ReflectionClass $ class ): bool
{
return $ class -> isSubclassOf ( App Repositories BaseRepository::class);
}
public function countsTowardsApplicationCode (): bool
{
return true ;
}
public function countsTowardsTests (): bool
{
return false ;
}
}
// config/stats.php
<?php
. . .
' custom_component_classifier ' => [
App Classifiers RepositoryClassifier::class
],
...
Вы можете использовать этот пакет, но если он попадет в вашу производственную среду, вам придется купить миру дерево.
Сейчас общеизвестно, что одним из лучших инструментов борьбы с климатическим кризисом и предотвращения повышения температуры выше 1,5°C является посадка деревьев. Если вы поддержите этот пакет и внесете вклад в создание леса Treeware, вы создадите рабочие места для местных семей и восстановите среду обитания диких животных.
Вы можете купить деревья здесь offset.earth/treeware
Узнайте больше о Treeware на сайте Treeware.earth.
В пакете есть тесты, написанные на phpunit. Вы можете запустить их с помощью следующей команды.
./vendor/bin/phpunit
Если вы работаете над пакетом локально и хотите просто запустить команду в демонстрационном проекте, вы можете использовать формат репозитория пути композитора. Добавьте следующий фрагмент в файл composer.json
вашего демонстрационного проекта.
{
"repositories" : [
{
"type" : " path " ,
"url" : " /path/to/laravel-stats/ " ,
"options" : {
"symlink" : true
}
}
],
}
И «установите» пакет с помощью composer require wnx/laravel-stats
. Теперь пакет должен иметь символическую ссылку в вашем демонстрационном проекте.
Мы используем SemVer для управления версиями. Доступные версии см. в тегах этого репозитория.
Этот проект лицензируется по лицензии MIT — подробности см. в файле LICENSE.