Intro ┬╗ Agile Toolkit - When to use?

Agile Toolkit is collection of frameworks, tools and services that are most suitable for the following use-cases:

  • Building a Full Software as a Service application in PHP
  • Prototyping quick UI application for in-house use
  • Improving scalability of a complex enterprise application

It is also possible to build other application types, but we have designed a different learning paths that individually focus on the above 3 use-cases.

Areas in which Agile Toolkit excels when compared to other frameworks and toolkits:

  • Defining business logic, especially in a financial applications where a lot of calculations are needed.

  • Creating consistent User Interface without messing with HTML templates.

  • Solving scalability problems in your application without reliance on caching.

Way of Agile Toolkit

One of the reason why Agile Toolkit is able to captivate developers is because it has it's own "unique" approach to doing things. If you know some other PHP framework, than you need to be prepared that ATK might be doing things slightly differently.

Designers of the framework, however, have always made choices that will benefit your efficiency so spending some time trying to understand why things are done in certain way will help you learn something new and something useful.

Some core philosophies of Agile Toolkit are:

  • Your code should be readable and expressive.
  • Extend classes and use them as objects. No statics or globals.
  • Abstraction and Composing are keys to efficiency.
  • If anything can be implemented better, it should.
  • Use Web User Interface instead of command-line tools.
  • Small code footprint is just as important as fast performance.
  • Make things work by default, but leave a way to fine-tune.
  • Abstraction layers must be flexible and transparent.
  • Offer paid extensions so we can afford to pay our salaries.

By design - your application is extension of Agile Toolkit so many of the design principles will extend to your code. If your style is consistent with the framework, other developers will easily be able to understand and maintain your software.

Agile Toolkit at a glance

Versions up to 4.3 have been developed and distributed as a single repository of code. Starting with 4.4 we are breaking functionality into individual repositories, however the ZIP file you're downloading from the main website still contains all the same functionality.

If you use Agile Toolkit for your own project but your full-time job uses a different framework, you can now use a piece of ATK that you really like.

Agile Data - Better business logic and scalable data access

Agile Data is a powerful and elegant enterprise-grade data abstraction framework. When used correctly you can avoid gradual corrosion of your code and ensure that it's easy to maintain and enhance even with a bigger developer teams.

Agile Data can be used with any framework or PHP application. It is available under MIT license and you can learn more about it on the dedicated Github page.

Agile Toolkit distribution incorporates and enhances Agile Data to further integrate it with the UI layer. If your code already uses Agile Data, you can easily build Admin and Frontend UI. You will find several guides no how to do this.

As far as 'efficiency' goes - when your data layer is built according to standards defined by Agile Data, any UI module designed to work with "Agile Data" will be able to work with your models.

The add-ons you can get for Agile Toolkit will rely on Agile Data. Presence of data access standard allows us to simplify integration between a generic UI widgets and your specific data entities.

Standard UI third party Add-ons.

Agile Toolkit relies on Agile CSS framework, which is a separate project. The core goal of CSS framework is to supply flexible CSS classes that can be used to design Web UI elements (buttons, menus, forms, etc).

The standard HTML templates that use Agile CSS are used as a "default UI", so when you are installing 3rd party add-on, it will rely on the same CSS classes. Any UI that add-on brings into your application will be consistent with the rest of your UI.

Technically you could replace CSS framework with another one, but you would need to adopt add-on UI yourself.

Existence of standard UI allows application developers and add-on developers to create compatible UI that further saves your time.

Continue to next page..