Table of Contents

Core - v1.2.0

Usage

ArtisanPack UI Core exposes its functionality through five layers — a shared base service provider, a configuration manager, a logging stack, a Blade directive helper, and the diagnostic / compatibility / update inspectors — plus a set of Artisan commands and a testing-utility toolkit that consumers can lean on.

Topics

  • Service providerArtisanPackServiceProvider, the shared base class for every package
  • Configuration managerConfigurationManager, ConfigurationSchema, ValidationResult, helpers, facade
  • LoggingLoggerFactory, Logger, ArtisanPackLogger, audit entries, the AuditLogCreated event, ArtisanPackLog facade
  • Blade directivesBladeDirectiveRegistrar, intent-revealing directive registration patterns
  • DiagnosticsDiagnosticRunner, the five default checks, custom checks, php artisan artisanpack:diagnose
  • Compatibility analysisCompatibilityChecker, php artisan artisanpack:check-compatibility
  • UpdatesUpdateChecker, PackagistClient, php artisan artisanpack:check-updates
  • Artisan commands — full command reference (artisanpack:*)
  • Constants, enums, exceptions — shared primitives every package consumes
  • Testing utilitiesArtisanPackTestCase, the assertions trait, config + mock concerns

Quick reference

// Read configuration
$theme = artisanpack_config( 'livewire-ui-components.theme.primary', '#3b82f6' );

// Log + audit
use ArtisanPackUI\Core\Facades\ArtisanPackLog;
$log = ArtisanPackLog::make( 'media-library' );
$log->info( 'Image uploaded.', [ 'id' => 42 ] );
$log->audit( 'media.uploaded', [ 'id' => 42 ] );

// Register Blade directives
$blade = artisanpack_blade();
$blade->echo( 'cms_title', 'config( "cms-framework.site.title" )' );
$blade->escaped( 'cms_description', 'config( "cms-framework.site.description" )' );
$blade->conditional( 'cms_role', '$user->hasRole( %s )', 'admin' );

// Build a service provider
class MediaLibraryServiceProvider extends \ArtisanPackUI\Core\ArtisanPackServiceProvider
{
    protected ?string $configFile       = __DIR__ . '/../config/media-library.php';
    protected ?string $configKey        = 'artisanpack.media-library';
    protected ?string $configPublishTag = 'media-library-config';

    protected array $commands = [ \ArtisanPackUI\MediaLibrary\Commands\ProcessThumbnails::class ];

    protected array $singletons = [
        'media-library' => \ArtisanPackUI\MediaLibrary\MediaLibrary::class,
    ];

    protected function registerPackageBindings(): void
    {
        // Package-specific bindings unique to media-library.
    }
}
# Artisan
php artisan artisanpack:scaffold-config
php artisan artisanpack:install-packages
php artisan artisanpack:diagnose
php artisan artisanpack:check-compatibility
php artisan artisanpack:check-updates
php artisan artisanpack:make-package artisanpack-ui/new-package