t-rex-dino / dino-library
A lightweight PHP library for service management, configuration handling, and dependency injection.
1.2.0
2025-11-12 01:36 UTC
Requires
- php: >=8.1
- psr/container: ^2.0
- psr/log: ^3.0
- symfony/yaml: ^7.3
Requires (Dev)
- mockery/mockery: ^1.6
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2026-03-13 02:00:15 UTC
README
๐ฆ 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.
