utilikit-1.0.0/utilikit.services.yml

utilikit.services.yml
# UtiliKit Service Definitions
#
# This file defines the complete service architecture for the UtiliKit module,
# including core services for CSS generation, content scanning, state management,
# file operations, caching, and AJAX functionality.
#
# Service Architecture Overview:
# - Core Services: Constants, rules, state management, content scanning
# - CSS Pipeline: Generation, file management, caching
# - Content Processing: Entity scanning, class validation
# - User Interface: AJAX controllers, admin forms
# - Testing: Test CSS generation and validation
# - Infrastructure: Logging, caching, performance optimization

services:

  # =============================================================================
  # CORE FOUNDATION SERVICES
  # =============================================================================

  # Constants and configuration service
  # Provides centralized access to module constants, defaults, and static values
  utilikit.constants:
    class: Drupal\utilikit\Service\UtilikitConstants

  # CSS rules service
  # Defines and manages utility class patterns, CSS property mappings,
  # responsive breakpoints, and validation rules for utility class generation
  utilikit.rules:
    class: Drupal\utilikit\Service\UtilikitRules

  # State management service
  # Handles persistent storage of known utility classes, generated CSS,
  # timestamps, rate limiting data, and cleanup operations using Drupal's State API
  utilikit.state_manager:
    class: Drupal\utilikit\Service\UtilikitStateManager
    arguments: ['@state']

  # =============================================================================
  # CONTENT PROCESSING SERVICES
  # =============================================================================

  # Content scanner service
  # Scans entities and content for utility classes, validates class names,
  # and provides batch processing for large content sets
  utilikit.content_scanner:
    class: Drupal\utilikit\Service\UtilikitContentScanner
    arguments:
      - '@entity_type.manager'  # For entity loading and type management
      - '@logger.channel.utilikit'  # For logging scan operations and errors
      - '@utilikit.rules'  # For utility class validation

  # =============================================================================
  # CSS GENERATION PIPELINE
  # =============================================================================

  # CSS generator service
  # Core service that converts utility class names into CSS rules,
  # handles responsive variants, manages CSS compilation and optimization
  utilikit.css_generator:
    class: Drupal\utilikit\Service\UtilikitCssGenerator
    arguments:
      - '@config.factory'  # For module configuration access
      - '@cache.default'  # For CSS caching and performance
      - '@utilikit.content_scanner'  # For class validation integration
      - '@logger.channel.utilikit'  # For logging CSS generation operations

  # File manager service
  # Manages static CSS file operations including creation, updates, cleanup,
  # URL generation, and file system permissions for static rendering mode
  utilikit.file_manager:
    class: Drupal\utilikit\Service\UtilikitFileManager
    arguments:
      - '@utilikit.state_manager'      # For CSS content and timestamp management
      - '@file_system'                 # For file system operations
      - '@file_url_generator'          # For generating accessible file URLs
      - '@config.factory'              # For configuration access
      - '@asset.css.optimizer'         # For CSS optimization
      - '@logger.channel.utilikit'     # For file operation logging
  # Cache manager service
  # Comprehensive caching system that handles render cache, page cache,
  # CSS optimization, theme registry, and cache tag invalidation
  utilikit.cache_manager:
    class: Drupal\utilikit\Service\UtilikitCacheManager
    arguments:
      - '@cache.render'  # For render cache invalidation
      - '@cache_tags.invalidator'  # For targeted cache tag invalidation
      - '@state'  # For cache-related state management
      - '@theme.registry'  # For theme system cache clearing
      - '@asset.css.collection_optimizer'  # For CSS asset optimization
      - '@asset.js.collection_optimizer'  # For JS asset optimization
      - '@?cache.page'  # Optional: Page cache (if available)
      - '@?cache.dynamic_page_cache'  # Optional: Dynamic page cache (if available)

  # =============================================================================
  # MAIN ORCHESTRATION SERVICES
  # =============================================================================

  # Main service provider for coordinated UtiliKit operations
  # Facade that orchestrates CSS generation, file management, and caching
  utilikit.service_provider:
    class: Drupal\utilikit\Service\UtilikitServiceProvider
    arguments:
      - '@utilikit.css_generator'
      - '@utilikit.file_manager'
      - '@utilikit.content_scanner'
      - '@utilikit.state_manager'
      - '@utilikit.cache_manager'
      - '@logger.channel.utilikit'
      - '@config.factory'
      - '@?utilikit.test_css_generator'


  # General utility service
  # Provides common utility functions and configuration access for
  # other services and components throughout the module
  utilikit.service:
    class: Drupal\utilikit\Service\UtilikitService
    arguments: ['@config.factory']

  # =============================================================================
  # USER INTERFACE CONTROLLERS
  # =============================================================================

  # AJAX controller service
  # Handles AJAX requests for real-time CSS updates, provides lock management
  # for concurrent operations, and manages queue processing for deferred tasks
  utilikit.ajax_controller:
    class: Drupal\utilikit\Controller\UtilikitAjaxController
    arguments:
      - '@utilikit.service_provider'  # For main service coordination
      - '@lock'                       # For concurrent operation protection
      - '@queue'                      # For deferred task processing
      - '@renderer'                   # For AJAX response rendering
      - '@logger.channel.utilikit'    # For operation logging (ADD THIS LINE)
      - '@datetime.time'

  # =============================================================================
  # LOGGING AND MONITORING
  # =============================================================================

  # Dedicated logging channel
  # Provides centralized logging for all UtiliKit operations including
  # CSS generation, file operations, performance metrics, and error tracking
  logger.channel.utilikit:
    parent: logger.channel_base
    arguments: ['utilikit']

  # =============================================================================
  # TESTING AND DEVELOPMENT SERVICES
  # =============================================================================

  # Test CSS generator service
  # Development utility for generating comprehensive test CSS files containing
  # all possible utility classes for testing, validation, and development
  utilikit.test_css_generator:
    class: Drupal\utilikit\Service\UtilikitTestCssGenerator
    arguments:
      - '@utilikit.css_generator'  # For CSS generation
      - '@utilikit.file_manager'  # For file operations
      - '@file_system'  # For direct file system access
      - '@file_url_generator'  # For URL generation
      - '@?utilikit_test.test_generator'  # Optional: Test class generator (if test module enabled)

# =============================================================================
# SERVICE DEPENDENCY NOTES
# =============================================================================
#
# Optional Dependencies (prefixed with @?):
# - cache.page: May not be available in all Drupal configurations
# - cache.dynamic_page_cache: May not be available in all configurations
# - utilikit_test.test_generator: Only available when utilikit_test module is enabled
#
# Service Relationships:
# - utilikit.service_provider acts as the main facade coordinating all services
# - Content scanning feeds into CSS generation which feeds into file management
# - Cache manager provides cross-cutting caching support for all operations
# - State manager provides persistent storage for all services
# - Logger provides centralized monitoring and debugging capabilities

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc