PHPackages                             oat-sa/tao-core - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. oat-sa/tao-core

ActiveTao-extension

oat-sa/tao-core
===============

TAO core extension

v56.1.12(1mo ago)66136.7k↑42.6%36[12 PRs](https://github.com/oat-sa/tao-core/pulls)20GPL-2.0-onlyPHPCI failing

Since Dec 5Pushed 1mo ago45 watchersCompare

[ Source](https://github.com/oat-sa/tao-core)[ Packagist](https://packagist.org/packages/oat-sa/tao-core)[ Docs](http://www.taotesting.com)[ RSS](/packages/oat-sa-tao-core/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (46)Versions (1691)Used By (20)

tao-core
========

[](#tao-core)

[![codecov](https://camo.githubusercontent.com/1899464a92beaf6c22ba1422d92586133ffc94478896e3e98e9ce038c9bae3b0/68747470733a2f2f636f6465636f762e696f2f67682f6f61742d73612f74616f2d636f72652f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d755056646a304a72456e)](https://codecov.io/gh/oat-sa/tao-core)

- [Task Queue Doc](models/classes/taskQueue/README.md)
- [Middlewares Doc](models/classes/Middleware/README.md)
- [Feature Flag](models/classes/featureFlag/README.md)
- [CSRF Tokens](models/classes/security/xsrf/README.md)
- [Client Config](models/classes/clientConfig/README.md)

Webhooks
========

[](#webhooks)

Description
-----------

[](#description)

Webhooks allow you to send a request to remote server based on triggered event

How to use it
-------------

[](#how-to-use-it)

### Register event webhook.

[](#register-event-webhook)

use command `\oat\tao\scripts\tools\RegisterEventWebhook` to register events that are implementing `\oat\tao\model\webhooks\configEntity\WebhookInterface` interface.

i.e:

```
$ php index.php 'oat\tao\scripts\tools\RegisterEventWebhook'
    \ -u "https://example.com"
    \ -m "POST"
    \ -e ""

```

Check ACL Permissions
=====================

[](#check-acl-permissions)

In order to check ACL permissions, you can use the `PermissionChecker`:

```
$permissionChecker = $this->getServiceLocator()->get(oat\tao\model\accessControl\PermissionChecker::class);

$permissionChecker->hasWriteAccess('resourceId');
$permissionChecker->hasReadAccess('resourceId');
$permissionChecker->hasGrantAccess('resourceId');
```

**Important**: It takes into consideration the current user in the session, if no user is provided.

Roles Access (rules and action permissions)
===========================================

[](#roles-access-rules-and-action-permissions)

Description
-----------

[](#description-1)

Script allow you to apply (add)/revoke (remove) list of rules and/or permissions to a specific roles and actions.

How to use it
-------------

[](#how-to-use-it-1)

Execute the following command to apply (add) new rules/permissions:

```
$ php index.php 'oat\tao\scripts\tools\accessControl\SetRolesAccess' \
--config [config.json|json_string]

```

If you want to revoke (remove) them, add `--revoke` flag:

```
$ php index.php 'oat\tao\scripts\tools\accessControl\SetRolesAccess' \
--revoke \
--config [config.json|json_string]

```

### Config example

[](#config-example)

```
{
  "rules": {
    "role": [
      {
        "ext": "extensionIdentifier",
        "mod": "actionControllerName",
        "act": "actionMethodName"
      }
    ]
  },
  "permissions": {
    "controller": {
      "action": {
        "rule1": "READ",
        "rule2": "WRITE"
      }
    }
  }
}
```

Environment variables
=====================

[](#environment-variables)

Here you can find the environment variables including feature flags

VariableDescriptionDefault valueFEATURE\_FLAG\_LISTS\_DEPENDENCY\_ENABLEDEnable Remote Lists Dependency feature-FEATURE\_FLAG\_ADVANCED\_SEARCH\_DISABLEDDisable advanced search feature, if set to 1-FEATURE\_FLAG\_STATISTIC\_METADATA\_IMPORTEnable statistics metadata import-FEATURE\_FLAG\_CKEDITOR\_SOURCEDIALOGEnable source editing for ckeditorfalseFEATURE\_FLAG\_SOLAR\_DESIGN\_ENABLEDActivate the Solar Design mode-GOOGLE\_APPLICATION\_CREDENTIALSPath to GCP credentials path-DATA\_STORE\_STATISTIC\_PUB\_SUB\_TOPICTopic name for statistic metadata Pub/Sub-REDIRECT\_AFTER\_LOGOUT\_URLAllows to configure the redirect after logout via environment variable. The fallback is the configured redirect on urlroute.conf.php-PORTAL\_URLThe Portal url used on the back button of Portal theme-FEATURE\_FLAG\_TRANSLATION\_ENABLEDEnable access to items/tests translations feature-TAO\_ALLOWED\_TRANSLATION\_LOCALESComma separated List of locales available for translations / authoring in the UI. If none provided, all are allowed-COOKIE\_POLICY\_CONFIGJSON with CookiePolicy config. Example: `{"privacyPolicyUrl":"https://...","cookiePolicyUrl":"https://..."}`-TAO\_ID\_GENERATOR\_MAX\_RETRIESMaximum number of retry attempts for unique ID generation on collision10TAO\_ID\_GENERATOR\_SHOULD\_CHECK\_STATEMENTSEnable statement checks during ID generation (set to 1 to enable)0TAO\_ID\_GENERATOR\_ID\_STARTStarting value for unique ID generation1Routing
=======

[](#routing)

Check more information about actions/controllers and [routing here](./models/classes/routing/README.md)

Observer implementations
========================

[](#observer-implementations)

Check the current [observer implementations here](./models/classes/Observer/README.md)

###  Health Score

69

—

FairBetter than 100% of packages

Maintenance89

Actively maintained with recent releases

Popularity47

Moderate usage in the ecosystem

Community50

Growing community involvement

Maturity83

Battle-tested with a long release history

 Bus Factor6

6 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

1097

Last Release

53d ago

Major Versions

v54.49.7 → v55.0.02026-01-09

v55.0.1.5 → v56.0.02026-02-20

v54.49.4.1 → v56.1.02026-02-26

v55.0.1.6 → v56.1.52026-03-05

v55.2.5 → v56.1.122026-03-26

PHP version history (5 changes)v2.7.13PHP &gt;=5.3.10

v2.15.1PHP &gt;=5.4

v5.1.0PHP &gt;=5.5

v31.1.0PHP &gt;=5.6

38.13.3.2-devPHP ^7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/98ddc6f1b615b1fac2d59f1e72d5dc6056cf6650414271da90cb3f0e203516fe?d=identicon)[bugalood](/maintainers/bugalood)

![](https://www.gravatar.com/avatar/c0ec704e0a8abaf0c27b227ad05d7aca23bc8f83d195229d94d4508cddc0fd24?d=identicon)[oat-lionel](/maintainers/oat-lionel)

![](https://www.gravatar.com/avatar/e8c30644c0da147701176483ca1ca40e1c41012e6c5b0da47e984c1eb8a840b1?d=identicon)[jbout](/maintainers/jbout)

![](https://www.gravatar.com/avatar/723a1fd1ece5276155af140d62801e89884eaf8663b643d3a0fb826e49e9ec6b?d=identicon)[jsconan](/maintainers/jsconan)

---

Top Contributors

[![krampstudio](https://avatars.githubusercontent.com/u/468620?v=4)](https://github.com/krampstudio "krampstudio (1916 commits)")[![jsconan](https://avatars.githubusercontent.com/u/1500098?v=4)](https://github.com/jsconan "jsconan (1591 commits)")[![ssipasseuth](https://avatars.githubusercontent.com/u/8425344?v=4)](https://github.com/ssipasseuth "ssipasseuth (1036 commits)")[![jbout](https://avatars.githubusercontent.com/u/5815304?v=4)](https://github.com/jbout "jbout (1020 commits)")[![siwane](https://avatars.githubusercontent.com/u/8009602?v=4)](https://github.com/siwane "siwane (577 commits)")[![shpran](https://avatars.githubusercontent.com/u/59471572?v=4)](https://github.com/shpran "shpran (498 commits)")[![no-chris](https://avatars.githubusercontent.com/u/11467480?v=4)](https://github.com/no-chris "no-chris (472 commits)")[![bugalot](https://avatars.githubusercontent.com/u/4217431?v=4)](https://github.com/bugalot "bugalot (470 commits)")[![bartlomiejmarszal](https://avatars.githubusercontent.com/u/16231681?v=4)](https://github.com/bartlomiejmarszal "bartlomiejmarszal (466 commits)")[![llecaque](https://avatars.githubusercontent.com/u/5645487?v=4)](https://github.com/llecaque "llecaque (414 commits)")[![tikhanovichA](https://avatars.githubusercontent.com/u/1053022?v=4)](https://github.com/tikhanovichA "tikhanovichA (386 commits)")[![boajer](https://avatars.githubusercontent.com/u/4569734?v=4)](https://github.com/boajer "boajer (348 commits)")[![zagovorichev](https://avatars.githubusercontent.com/u/1445911?v=4)](https://github.com/zagovorichev "zagovorichev (346 commits)")[![oatymart](https://avatars.githubusercontent.com/u/43652944?v=4)](https://github.com/oatymart "oatymart (309 commits)")[![wazelin](https://avatars.githubusercontent.com/u/2943256?v=4)](https://github.com/wazelin "wazelin (283 commits)")[![SergiiTao](https://avatars.githubusercontent.com/u/36041347?v=4)](https://github.com/SergiiTao "SergiiTao (251 commits)")[![bziondik](https://avatars.githubusercontent.com/u/25976342?v=4)](https://github.com/bziondik "bziondik (222 commits)")[![gabrielfs7](https://avatars.githubusercontent.com/u/1467589?v=4)](https://github.com/gabrielfs7 "gabrielfs7 (207 commits)")[![antoinerobin](https://avatars.githubusercontent.com/u/5881795?v=4)](https://github.com/antoinerobin "antoinerobin (196 commits)")[![ionutpad](https://avatars.githubusercontent.com/u/31656944?v=4)](https://github.com/ionutpad "ionutpad (156 commits)")

---

Tags

assessmentTAOcomputer-based-assessmentOAT

### Embed Badge

![Health badge](/badges/oat-sa-tao-core/health.svg)

```
[![Health](https://phpackages.com/badges/oat-sa-tao-core/health.svg)](https://phpackages.com/packages/oat-sa-tao-core)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[concrete5/core

Concrete core subtree split

19159.3k48](/packages/concrete5-core)[oat-sa/generis

TAO generis library

11140.3k76](/packages/oat-sa-generis)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
