PHPackages                             qcodo/qcodo - 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. qcodo/qcodo

ActiveLibrary[Framework](/categories/framework)

qcodo/qcodo
===========

Qcodo PHP Development Framework

0.6.28(2mo ago)634.8k↓33.3%23MITPHP

Since Jun 2Pushed 2mo ago13 watchersCompare

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

READMEChangelogDependenciesVersions (69)Used By (0)

Quick Installation
------------------

[](#quick-installation)

Begin by installing the package through Composer.

```
composer require qcodo/qcodo

```

Run the command line installer for Qcodo

```
vendor/bin/qcodo-setup

```

You will be asked to specify:

- The path to the root of your project directory (relative to the `vendor/` directory
- The namespace for your application
- The name of the directory you want to place your qcodo-based application

Server Instance
---------------

[](#server-instance)

Every physical Qcodo application has a `server instance`, which defines which server instance/environment that is currently running (e.g. `dev`, `stage`, `prod`, etc.).

You must define the instance in `application/configuration/_server_instance.php`. Depending on how you plan to set up your source code repository, you may want to have this file "ignored" by your source code repository, so that each installed instance of your application can specify which instance it is running without impacting code commits.

Qcodo Console Tool
------------------

[](#qcodo-console-tool)

All Qcodo commands are run from the command line console, by running the following script:

```
application/qcodo [COMMAND]

```

There are a handful of included commands provided for you:

- `codegen`
- `codegen-swagger`
- `ws-setup`

For any command, you can add `--help` to get a help screen for that command.

You are also able to implement your own commands by adding your own Console Handler to `application/Handlers/Console`

Database Configuration and ORM Code Generation
----------------------------------------------

[](#database-configuration-and-orm-code-generation)

You can specify your database connection settings at `application/configuration/database.php`.

Once configured, you can run codegen by running

```
application/qcodo codegen DB_INDEX

```

where `DB_INDEX` is the index of the DB you specified in the `database.php` configuration file.

The generated class files will be in `application/Models/Database`

Swagger
-------

[](#swagger)

Feel free to create your own swagger file and place it anywhere in the project tree. One recommendation would be to place it at `docs/swagger.json`.

Setting up the web service
--------------------------

[](#setting-up-the-web-service)

Once you have a swagger file defined, you can create the webroot for the webservice.

```
application/qcodo ws-setup

```

You will be asked to specify:

- the location of the swagger file
- the folder (relative to the Application directory) to place the public web root folder

The resulting WS root path is what you should use as the `DocumentRoot` setting for your webserver. Note that a `.htaccess` file is included in this folder -- if using Apache, make sure that AllowOverride is enabled for this folder so that Apache honors the `.htaccess` settings.

Assuming you have set up with the default settings, you should be able to access your swagger file by going to `http://localhost/display/swagger` in your browser. Going to any other path should either execute that webservice method, OR bring up a "Path Not Found" message.

Swagger Schema Code Generation
------------------------------

[](#swagger-schema-code-generation)

You are able to code generate all of your swagger-defined Schema objects as PHP objects, as well.

You can do this by running

```
application/qcodo codegen-schema docs/swagger.json

```

The generated class files will be in `application/Models/Schema`

Implementing the WebService API / Understanding Routing and Mocking
-------------------------------------------------------------------

[](#implementing-the-webservice-api--understanding-routing-and-mocking)

Your Swagger file will define how a request (e.g. `http://localhost/product/create`) gets handled.

Swagger allows you to define a path (e.g. `/product/create`), and for that path can define an action (e.g. `post`). Within that definition, you can define your input parameters and expected outputs.

You will also want to specify the following which Qcodo uses to formulate the webservice response:

- operationId
- example

When you a initially developing your application, you may want to simply have your server return a static mock response for each of your methods. This is how `example` is used.

When you are ready to start implementing the actual logic to handle, you will need to specify your `operationId`. This is what the Qcodo router uses to route a `POST /product/create` call to your code. The `operationId` should specify your WebService Handler class name, and then a webservice handler method that will be within your class. So for example, it can be `ProductApi::create`.

Assuming you have a `ProductApi` class at `application/Handlers/WebService/ProductApi.php`, it will then call the `create()` method in that class.

###  Health Score

56

—

FairBetter than 98% of packages

Maintenance84

Actively maintained with recent releases

Popularity37

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 91% of commits — single point of failure

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 ~42 days

Recently: every ~2 days

Total

68

Last Release

77d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/53aba16003b8bf86b785268215e528b27156706c680f449505ffeac56b70236e?d=identicon)[qcodo](/maintainers/qcodo)

---

Top Contributors

[![mikeho](https://avatars.githubusercontent.com/u/42845?v=4)](https://github.com/mikeho "mikeho (625 commits)")[![klucznik](https://avatars.githubusercontent.com/u/40096?v=4)](https://github.com/klucznik "klucznik (39 commits)")[![marcosdsanchez](https://avatars.githubusercontent.com/u/45263?v=4)](https://github.com/marcosdsanchez "marcosdsanchez (18 commits)")[![spekary](https://avatars.githubusercontent.com/u/755757?v=4)](https://github.com/spekary "spekary (2 commits)")[![fernandolordan](https://avatars.githubusercontent.com/u/236471?v=4)](https://github.com/fernandolordan "fernandolordan (1 commits)")[![liquidise](https://avatars.githubusercontent.com/u/624710?v=4)](https://github.com/liquidise "liquidise (1 commits)")[![xadn](https://avatars.githubusercontent.com/u/563800?v=4)](https://github.com/xadn "xadn (1 commits)")

### Embed Badge

![Health badge](/badges/qcodo-qcodo/health.svg)

```
[![Health](https://phpackages.com/badges/qcodo-qcodo/health.svg)](https://phpackages.com/packages/qcodo-qcodo)
```

###  Alternatives

[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

712181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)[laravel/pail

Easily delve into your Laravel application's log files directly from the command line.

91545.3M590](/packages/laravel-pail)

PHPackages © 2026

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