webchemistry/service-attribute

There is no license information available for the latest version (v2.2.0) of this package.

v2.2.0 2023-12-04 12:46 UTC

This package is auto-updated.

Last update: 2024-04-04 13:42:14 UTC


README

<?php declare(strict_types = 1);

use Nette\Utils\Finder;
use WebChemistry\ServiceAttribute\DecoratorFinder;
use WebChemistry\ServiceAttribute\Generator\DecoratorNeonGenerator;
use WebChemistry\ServiceAttribute\Generator\NeonFile;
use WebChemistry\ServiceAttribute\Generator\ServiceNeonGenerator;
use WebChemistry\ServiceAttribute\ServiceFinder;
use WebChemistry\ServiceAttribute\Validator\DecoratorValidator;

require __DIR__ . '/vendor/autoload.php';

$directory = Finder::find('*.php')
	->from(__DIR__ . '/app');

// decorators
echo "\e[36mDecorators\e[39m\n";

$decorators = DecoratorFinder::findDecorators($directory);

DecoratorValidator::validate($decorators);

$neon = new NeonFile($path = __DIR__ . '/app/generated/decorators.neon', (new DecoratorNeonGenerator($decorators))->generate());
$neon->diff();
$neon->save();

echo sprintf("File generated from %d decorators: file://%s\n", count($decorators), $path);

// services
echo "\e[36mServices\e[39m\n";
$services = ServiceFinder::findServices($directory);

$neon = new NeonFile($path = __DIR__ . '/app/generated/services.neon', (new ServiceNeonGenerator($services))->generate());
$neon->diff();
$neon->save();

echo sprintf("File generated from %d services: file://%s\n", count($services), $path);

run:

php services.php