PHPackages                             zemit-cms/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. [Framework](/categories/framework)
4. /
5. zemit-cms/core

ActiveLibrary[Framework](/categories/framework)

zemit-cms/core
==============

Build Phalcon REST APIs faster with database-first scaffolding, model relationships, eager loading, identity, permissions, CLI, and WebSocket support.

3.7.1(1w ago)148.5k↓59.4%3[1 PRs](https://github.com/phalcon-kit/core/pulls)1BSD-3-ClausePHPPHP &gt;=8.5CI passing

Since Dec 18Pushed 5d ago5 watchersCompare

[ Source](https://github.com/phalcon-kit/core)[ Packagist](https://packagist.org/packages/zemit-cms/core)[ Docs](https://github.com/phalcon-kit)[ GitHub Sponsors](https://github.com/sponsors/jturbide)[ RSS](/packages/zemit-cms-core/feed)WikiDiscussions master Synced yesterday

READMEChangelog (2)Dependencies (107)Versions (125)Used By (1)

Phalcon Kit Core
================

[](#phalcon-kit-core)

[![CI](https://github.com/phalcon-kit/core/actions/workflows/main.yml/badge.svg)](https://github.com/phalcon-kit/core/actions/workflows/main.yml)[![Version](https://camo.githubusercontent.com/30b4c1f87dd48b0b0f24bef964b681de7eab1cd992468dc78aabf18051db5a40/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7068616c636f6e2d6b69742f636f7265)](https://camo.githubusercontent.com/30b4c1f87dd48b0b0f24bef964b681de7eab1cd992468dc78aabf18051db5a40/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7068616c636f6e2d6b69742f636f7265)[![PHP](https://camo.githubusercontent.com/3b19b601d856487f63d93abf786e204970bcfec356d8822919367b7ea41ca8cd/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f7068616c636f6e2d6b69742f636f72652f706870)](https://camo.githubusercontent.com/3b19b601d856487f63d93abf786e204970bcfec356d8822919367b7ea41ca8cd/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f7068616c636f6e2d6b69742f636f72652f706870)[![Downloads](https://camo.githubusercontent.com/d828a8873e2cab0faaa813501f5c99bfad4eb5bc9bbbe0eacd3e7d4e0921a410/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7068616c636f6e2d6b69742f636f7265)](https://camo.githubusercontent.com/d828a8873e2cab0faaa813501f5c99bfad4eb5bc9bbbe0eacd3e7d4e0921a410/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7068616c636f6e2d6b69742f636f7265)[![Legacy Installs](https://camo.githubusercontent.com/1e8319b5cb3624f853cc9790674aaeae4fe70b9c429bd430f8d49e6119da03fa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7a656d69742d636d732f636f72653f6c6162656c3d6c6567616379253230696e7374616c6c73)](https://packagist.org/packages/zemit-cms/core)[![Docs](https://camo.githubusercontent.com/75ee5dd1b0062ba9bcb89eea36e6e13a38b0f078d40d9f2831a41d3445e1d658/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63732d6775696465732d626c7565)](guides/README.md)[![License](https://camo.githubusercontent.com/d1ae5749ac3803512ba7b664893ea3e6b61da5d2c80ee4699b7edf9e76c66eeb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7068616c636f6e2d6b69742f636f7265)](https://camo.githubusercontent.com/d1ae5749ac3803512ba7b664893ea3e6b61da5d2c80ee4699b7edf9e76c66eeb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7068616c636f6e2d6b69742f636f7265)

Build Phalcon applications faster, especially REST APIs backed by a real database schema.

Phalcon Kit Core sits on top of the [Phalcon PHP Framework](https://phalcon.io)and gives you the application plumbing most teams write again and again: bootstrap, config, providers, REST controllers, model scaffolding, eager loading, identity, permissions, CLI tasks, WebSocket workers, logging, helpers, and quality tooling.

You still write normal Phalcon/PHP. Phalcon Kit handles the repetitive structure so you can spend more time on the resource rules, business logic, and product behavior.

Project Independence
--------------------

[](#project-independence)

Phalcon Kit is an independent open source project. It is not part of the official Phalcon PHP Framework project and is not affiliated with, endorsed by, or sponsored by the Phalcon project or its maintainers. References to Phalcon describe compatibility with the upstream framework.

Quick Start
-----------

[](#quick-start)

Start a new application from the [`phalcon-kit/app`](https://packagist.org/packages/phalcon-kit/app) skeleton:

```
composer create-project phalcon-kit/app my-api
```

Add the core package to an existing Phalcon application:

```
composer require phalcon-kit/core
```

New projects should use `phalcon-kit/core`. Older projects may still reference [`zemit-cms/core`](https://packagist.org/packages/zemit-cms/core), the previous package name. Keep old projects pinned until you are ready to test the package name migration.

Why Use It
----------

[](#why-use-it)

Use Phalcon Kit when you want Phalcon's speed and low-level control, but you do not want every project to re-invent the same API and model infrastructure.

It is useful when you need to:

- turn database tables into typed Phalcon models;
- expose model-backed REST resources quickly;
- save nested one-to-many or many-to-many payloads;
- filter, search, sort, paginate, and eager-load relations consistently;
- restrict rows by user, role, project, workspace, tenant, or ownership rules;
- use JWT/session identity, impersonation, and role-based access control;
- keep CLI, WebSocket, API, and web modules on the same bootstrap/config;
- let generated model code track the database while concrete models stay clean.

From Database To API
--------------------

[](#from-database-to-api)

The usual workflow is:

1. Create or update the database schema.
2. Run migrations.
3. Run the scaffolder.
4. Add business logic to concrete models.
5. Add a small REST controller that declares save/filter/search/eager-load policy.

Example resource controller:

```
