t-rex-dino/dino-library

A lightweight PHP library for service management, configuration handling, and dependency injection.

Maintainers

Package info

github.com/t-rex-dino/dino-library

pkg:composer/t-rex-dino/dino-library

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.2.0 2025-11-12 01:36 UTC

This package is auto-updated.

Last update: 2026-03-13 02:00:15 UTC


README

Dino Library Banner

๐Ÿฆ• Dino Library

Dino Library is a lightweight, extensible PHP library designed to manage services, configurations, and dependency injection in a clean and modular way.

๐Ÿš€ Installation


composer require t-rex-dino/dino-library

๐Ÿ“ Project Structure


src/
โ”œโ”€โ”€ Contracts/           // Core interfaces
โ”œโ”€โ”€ Exceptions/          // Custom exception classes
โ”œโ”€โ”€ Core/                // Main library classes

tests/
โ”œโ”€โ”€ Unit/                // PHPUnit unit tests

examples/
โ”œโ”€โ”€ *.php                // Practical usage examples

docs/
โ”œโ”€โ”€ Guides/              // Conceptual guides
โ”œโ”€โ”€ API-Reference/       // API documentation
โ”œโ”€โ”€ Examples/            // Example explanations
โ”œโ”€โ”€ Tutorials/           // Step-by-step tutorials

๐Ÿงฉ Quick Usage

LibraryManager


use Dino\Core\LibraryManager;

$manager = new LibraryManager();
$manager->register('logger', new Logger());
$logger = $manager->get('logger');

ConfigHandler with Validation


use Dino\Core\ConfigHandler;
use Dino\Validation\Rules\RequiredValidator;

$config = new ConfigHandler();
$config->registerValidator(new RequiredValidator());
$config->set('app.name', 'Dino Library');

ServiceContainer with Factory


use Dino\Core\ServiceContainer;
use Dino\Contracts\FactoryInterface;

class LoggerFactory implements FactoryInterface {
    public function create(...$params): object {
        return new Logger();
    }
}

$container = new ServiceContainer();
$container->addFactory('logger', new LoggerFactory());
$logger = $container->get('logger');

โšก Lazy Loading


$container->singleton('heavyService', fn() => new HeavyService(), true);
$service = $container->get('heavyService'); // created only when accessed

๐Ÿ”— Dependency Injection


$resolver = new DependencyResolver($container);
$controller = $resolver->resolve(Controller::class);

๐Ÿงช Running Tests


vendor/bin/phpunit --bootstrap tests/bootstrap.php tests/Unit

๐Ÿ“š Examples

Example files are located in the examples/ directory:

  • basic-usage.php
  • config-handler-demo.php
  • service-container-demo.php
  • config-validation-demo.php
  • service-provider-demo.php (New in 1.2.0)
  • lazy-loading-demo.php (New in 1.2.0)
  • service-tagging-demo.php (New in 1.2.0)
  • advanced-di-demo.php (New in 1.2.0)

php examples/advanced-di-demo.php

๐Ÿค Contributing

Contributions are welcome! Please submit issues, pull requests, or suggestions. For guidelines, refer to CONTRIBUTING.md.

๐Ÿง™โ€โ™‚๏ธ Development Team

  • t-rex-dino โ€“ Project Manager & Repository Maintainer
  • DeepSeek AI โ€“ Architect & Optimization Specialist
  • Copilot โ€“ Lead Developer & Documentation Specialist

๐Ÿ“„ License

This project is licensed under the MIT License.