Commit 5d98b00
authored
Refactor Indexable interface and LogLevel class (#22)
* add size method
* feat: Normalize Interfaces
- Refined and standardized interface definitions across the project
- Applied Single Responsibility Principle (SRP) to ensure each interface has a clear, singular purpose
- Consistent naming conventions were implemented for better readability and maintainability
- Added thorough documentation for each interface, including method descriptions and expected behaviors
- Organized interfaces within appropriate namespaces to prevent naming collisions and maintain a logical structure
- Ensured parameter names in interface methods are consistent with implementing classes
- Avoided including constructors in interfaces to maintain flexibility
These changes enhance the overall clarity, maintainability, and professional quality of the codebase.
* Refactor and Normalize Collection Interface and Implementation
- Refactored `Collection` interface for consistency and adherence to best practices.
- Ensured all tests are comprehensive and validate the expected behavior.
* feat: Add BinaryHeap implementation and comprehensive tests
- Implemented BinaryHeap class with support for both min-heap and max-heap operations.
- Methods include: add, poll, peek, size, isEmpty, heapifyUp, heapifyDown, swap, and compare.
- Created unit tests for BinaryHeap class ensuring 100% coverage.
- Tested all key operations: add, poll, peek, heapifyUp, heapifyDown, swap, and compare.
- Included edge case tests for min-heap and max-heap scenarios.
- Ensured compliance with type safety and PHP 8.0+ features.
- Added comprehensive documentation and examples for BinaryHeap usage.
This commit enhances the KaririCode Framework by providing a robust, type-safe, and efficient BinaryHeap data structure with extensive unit tests.
* docs: Update README files in English and Portuguese
- Enhanced the overview and key features sections for clarity and completeness.
- Added detailed descriptions for all implemented data structures:
- TreeSet
- ArrayDeque
- ArrayQueue
- TreeMap
- LinkedList
- BinaryHeap
- HashMap
- Included complexity analysis and key methods for each data structure.
- Provided usage examples for each data structure to demonstrate functionality.
- Updated installation instructions and requirements.
- Updated acknowledgments and roadmap sections.
* style: Normalize code formatting and style
* feat: Create Container interface and add unit tests
- Define the Container interface with methods: `set`, `get`, and `has`.
- Implement unit tests for `set` method to ensure services are registered correctly.
- Add unit tests for `get` method to verify correct retrieval of services by identifier.
- Include unit tests for `has` method to check existence of services in the container.
- Normalize the `@category` comments in the interface documentation for consistency.
These changes establish a foundational contract for dependency injection within the KaririCode project and ensure robust and reliable functionality through comprehensive testing
* feat: Add logging interfaces and corresponding tests
- Created Configurable interface for managing configuration settings.
- Created Loggable interface to define logging methods for various log levels.
- Created ContextAware interface for managing context information in logs.
- Created FormatterAware interface for handling log formatter settings.
- Created HandlerAware interface for managing log handlers.
- Created ProcessorAware interface for managing log processors.
- Created LoggingManager interface that combines various logging functionalities.
- Created LogFormatter interface for defining log formatters.
- Created LogHandler interface for handling log records.
- Created LogLevel interface for defining log levels.
- Created LogProcessor interface for processing log records before handling.
- Created LogRotator interface for managing log file rotation.
- Added unit tests for each interface to ensure correct functionality:
- ConfigurableTest: Tests for setConfig and getConfig methods.
- LoggableTest: Tests for various logging level methods.
- ContextAwareTest: Tests for withContext and getContext methods.
- FormatterAwareTest: Tests for setFormatter and getFormatter methods.
- HandlerAwareTest: Tests for addHandler, pushHandler, popHandler, and getHandlers methods.
- ProcessorAwareTest: Tests for addProcessor and getProcessors methods.
- LoggingManagerTest: Comprehensive tests for all LoggingManager methods.
- LogFormatterTest: Test for the format method.
- LogHandlerTest: Test for the handle method.
- LogLevelTest: Test for the getLevel method.
- LogProcessorTest: Test for the process method.
- LogRotatorTest: Test for the rotate method.
* feat: Update logging interfaces Add tests for LoggerAware and LoggerConfigurable interfaces
- Revised and enhanced logging interfaces for better consistency and flexibility.
- Implemented new methods to support asynchronous logging.
- Improved documentation of the interfaces to facilitate integration.
- Added unit tests to ensure the robustness of the new implementations.
- Added unit test for LoggerAware interface to verify setLogger method.
- Added unit test for LoggerConfigurable interface to verify configure method.
- Ensured proper mock setup and expectations in tests.
* feat(logging): improve log rotation and update log handler
- Removed .phpcs-cache for cleaner repository
- Updated src/Logging/LogHandler.php to enhance log handling capabilities
- Modified src/Logging/LogLevel.php for better log level management
- Enhanced src/Logging/LogRotator.php with improved file rotation logic
- Updated src/Logging/Logger.php to integrate changes in log handling and rotation
* Refactor:Indexable interface and LogLevel class
- Modified the Indexable.php interface to enhance functionality.
- Updated the LogLevel.php class to add new log levels.
- Made lint adjustments in LogRotator class.1 parent 0849a5c commit 5d98b00
File tree
2 files changed
+11
-4
lines changed- src
- DataStructure/Behavioral
- Logging
2 files changed
+11
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
31 | 38 | | |
32 | 39 | | |
33 | 40 | | |
| |||
0 commit comments