README.md

Summary

Maintainability
Test Coverage
# Agile Core

**Collection of PHP Traits for designing object-oriented frameworks.**

[![Build](https://github.com/atk4/core/actions/workflows/test-unit.yml/badge.svg?branch=develop)](https://github.com/atk4/core/actions?query=branch:develop)
[![CodeCov](https://codecov.io/gh/atk4/core/branch/develop/graph/badge.svg)](https://codecov.io/gh/atk4/core)
[![GitHub release](https://img.shields.io/github/release/atk4/core.svg)](https://github.com/atk4/core/releases)
[![Code Climate](https://codeclimate.com/github/atk4/core/badges/gpa.svg)](https://codeclimate.com/github/atk4/core)

Agile Core was created for [Agile Data](https://github.com/atk4/data) and [Agile UI](https://github.com/atk4/ui), but can be used in any other framework too. You will mostly find PHP Traits here, that add functionality into your objects such as:

- Containers: Implements Parent/Child relations between your objects
- Hooks: Create hooks and register callbacks with priorities and arguments
- Initializers: Automatically execute init() method of your object
- Dynamic Methods: Add methods dynamically into existing objects
- Factory: Specify class name as a string
- App Scope: Inject global "app" object and pass it to new objects

Additionally you a much better 'Exception' class for general-purpose exceptions.

## Documentation

https://atk4-core.readthedocs.io/

## Community and Support

[![Stack Overflow Community](https://img.shields.io/stackexchange/stackoverflow/t/atk4.svg)](https://stackoverflow.com/questions/ask?tags=atk4)
[![Discord Community](https://img.shields.io/badge/discord-User_Forum-green.svg)](https://discord.gg/QVKSk2B)

## Install from Composer

```
composer require atk4/core
```

## Agile Toolkit

Agile Core is part of [Agile Toolkit - PHP UI Framework](https://atk4.org/). If you like this project, you should also look into:

- [Agile Data](https://github.com/atk4/data) - [![GitHub release](https://img.shields.io/github/release/atk4/data.svg?label=Agile+Data)](https://github.com/atk4/data/releases)
- [Agile UI](https://github.com/atk4/ui) - [![GitHub release](https://img.shields.io/github/release/atk4/ui.svg?label=Agile+UI)](https://github.com/atk4/ui/releases)