PHPackages                             ixaya/manager - 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. ixaya/manager

ActiveLibrary[Framework](/categories/framework)

ixaya/manager
=============

An HMVC Framework, Superset of CodeIgniter

2.0.1(5d ago)32.9k↓20%3MITPHPPHP ^8.2CI failing

Since Sep 14Pushed 5d ago3 watchersCompare

[ Source](https://github.com/Ixaya/Manager)[ Packagist](https://packagist.org/packages/ixaya/manager)[ RSS](/packages/ixaya-manager/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (10)Versions (22)Used By (0)

Manager — by [Ixaya](https://www.ixaya.com)
===========================================

[](#manager--by-ixaya)

HMVC Code Igniter based Framework for creating backends and complete websites

About this package
------------------

[](#about-this-package)

**Ixaya Manager** is a set of files, libraries, and modules that allows you to use Code Igniter to build a Backend with Login or a Complete Website if you prefer.

### Features

[](#features)

- CodeIgniter upgradeable through Composer (always use latest version)
- Run the project (a webserver) using a shell script (no need to install Apache or Nginx during development (`http://localhost:8000`)
- HMVC
- Diferent folders for diferent modules: `modules/admin`, `modules/frontned`, etc.
- Support for MySQL, PostgreSQL, MSSQL, Sqlite, or any database that is supported in CodeIgniter 3.
- Different Database connection/technology per Model. (you can have a model that loads a Database from Postgres and another Model that loads a Database from MySQL.
- Responsive Theme (SB Admin 2 Template for the Backend)
- Login protected Admin module
- Examples to create a REST API
- Examples to send Native Apple Push Notifications or use Firebase for Android
- Production Tested
- try { } catch { } login for errors (an improvement over CodeIgniter's)
- Secured Application Folder from Public.

---

How to Install
--------------

[](#how-to-install)

### Requirements

[](#requirements)

- PHP 8.1+
- Composer

### 1. Install via Composer

[](#1-install-via-composer)

```
composer require ixaya/manager
```

### 2. Scaffold your project

[](#2-scaffold-your-project)

Copy the sample application structure from the package into your project root:

```
cp -r vendor/ixaya/manager/sample/. .
```

This gives you a complete working structure — controllers, models, views, config, and entry points — ready to customize.

### 3. Configure environment

[](#3-configure-environment)

```
cp .env.sample.dev .env
cp .env.sample.priv .env.priv
```

Open both files and fill in the required fields:

- `.env` — general settings: app name, base URL, environment, database credentials, cache, mail.
- `.env.priv` — sensitive secrets: API keys, tokens, private credentials. **Never commit this file.**

### Suggested packages

[](#suggested-packages)

Depending on the features you need, install one or more of the following:

**Optional — core extensions:**

```
composer require aws/aws-sdk-php        # AWS S3, Textract, Bedrock integration
composer require phpoffice/phpspreadsheet  # Excel export/import
```

**Optional — WebSocket server:**

```
composer require amphp/websocket-server  # Built-in WebSocket server
composer require amphp/redis             # Redis-backed WebSocket scaling
composer require amphp/log               # Structured logging for async services
composer require adhocore/jwt            # WebSocket authentication
```

---

PHP Validations
---------------

[](#php-validations)

### PHP Static Code Analysis

[](#php-static-code-analysis)

Run using PHPStan:

**First time, install PHPStan:**

```
composer require --dev phpstan/phpstan
```

**Standard analysis:**

```
./vendor/bin/phpstan analyse
```

**With increased memory limit:**

```
./vendor/bin/phpstan analyse --memory-limit=512M
```

> **Tip:** Use the memory limit option if you encounter out-of-memory errors during analysis.

### PHP Unit Testing

[](#php-unit-testing)

Run using PHPUnit

**First time, install PHPUnit:**

```
composer require --dev phpunit/phpunit
```

**Run all tests:**

```
./vendor/bin/phpunit
```

**Run specific test file:**

```
./vendor/bin/phpunit tests/Unit/ExampleTest.php
```

**Run tests with verbose output:**

```
./vendor/bin/phpunit --verbose
```

**Run tests in specific group/category:**

```
./vendor/bin/phpunit --group unit
```

> **Tip:** Use `--testdox` flag for readable test output, or `--stop-on-failure` to halt execution on the first failed test.

### PHP Code Formatting

[](#php-code-formatting)

Fix using PHP CS Fixer

\*First time, install PHP CS Fixer:\*\*

```
composer require --dev php-cs-fixer/shim
```

**Fix code formatting:**

```
./vendor/bin/php-cs-fixer fix
```

**Dry run (preview changes without applying):**

```
./vendor/bin/php-cs-fixer fix --dry-run
```

**Dry run with diff (preview exact changes):**

```
./vendor/bin/php-cs-fixer fix --dry-run --diff
```

**Power user — pinned PHP version (macOS Homebrew):**

```
/opt/homebrew/opt/php@8.3/bin/php /opt/homebrew/bin/php-cs-fixer fix
```

---

Docker Setup
------------

[](#docker-setup)

This project can be run using Docker with different configurations for development and production environments.

### Configuration Files

[](#configuration-files)

The project uses multiple Docker Compose files:

- `docker-compose.yml` - Base configuration (shared settings)
- `docker-compose.dev.yml` - Development overrides (code mounting, live changes)
- `docker-compose.prod.yml` - Production overrides (no volumes, optimized)

### Building and Running

[](#building-and-running)

#### Basic Setup (Base Configuration Only)

[](#basic-setup-base-configuration-only)

```
# Build
docker-compose build

# Start
docker-compose up -d

# Rebuild and start (if Dockerfile changed)
docker-compose up -d --build

# Stop
docker-compose down
```

#### Development Mode

[](#development-mode)

Uses live code mounting - changes are reflected immediately without rebuilding.

```
# Start
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d app
```

#### Production Mode

[](#production-mode)

Uses code copied into the image - requires rebuild for code changes.

```
# Start
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d app
```

### Useful Commands

[](#useful-commands)

```
# View all logs
docker-compose logs -f

# View logs for specific service
docker-compose logs -f app

# Enter the app container
docker-compose exec app bash
```

---

MsgPack Support
---------------

[](#msgpack-support)

This package can use MsgPack for faster cache and payload serialization. While the native PHP MsgPack extension (installed via `pecl` or system packages) offers the best performance, not all servers have it available.

### Install the PHP MsgPack Fallback Library

[](#install-the-php-msgpack-fallback-library)

Add the pure PHP implementation to your project, along the composer patcher:

```
composer require rybakit/msgpack
composer require cweagans/composer-patches
```

### Apply the PHP 8.1+ Compatibility Patch

[](#apply-the-php-81-compatibility-patch)

Add the following configuration to your root `composer.json`:

```
{
  ...
    "extra": {
        "patches": {
            "rybakit/msgpack": {
                "Fix PHP 8.1 chr() deprecation": "vendor/ixaya/manager/patches/msgpack-php81-fix.patch"
            }
        }
    }
  ...
}
```

### Apply the Changes

[](#apply-the-changes)

Run the following command to install dependencies and apply patches:

```
composer install
```

---

Application Structure
---------------------

[](#application-structure)

### Project Setup

[](#project-setup)

We recommend creating a root folder named `app` and checking out the project inside it. The framework follows an HMVC (Hierarchical Model-View-Controller) architecture based on CodeIgniter.

### Root Directory

[](#root-directory)

```
app/
├── composer.json
├── application/
├── public/
├── private/
├── bin/
└── patches/

```

### Public Directory

[](#public-directory)

The `public/` folder contains all publicly accessible files served by the web server.

```
public/
├── index.php                    # Application entry point
├── media/                       # User-uploaded files
└── assets/                      # Static assets organized by module
    └── {module}/
        ├── js/                  # JavaScript files
        ├── css/                 # Stylesheets
        ├── images/              # Images
        └── videos/              # Video files

```

### Application Directory

[](#application-directory)

The `application/` folder contains the core application code and global resources.

```
application/
├── cache/                       # Application cache
├── config/                      # Application configuration files
├── controllers/                 # Global controllers
├── database/                    # Database configuration
├── helpers/                     # Global helper functions
├── hooks/                       # Global hooks
├── language/                    # Global language files
├── libraries/                   # Global libraries
├── migrations/                  # Database migrations
├── models/                      # Global models
├── modules/                     # HMVC modules (see below)
├── third_party/                 # Third-party libraries
└── views/                       # Global views

```

### Modules (HMVC Structure)

[](#modules-hmvc-structure)

The framework uses HMVC architecture, allowing you to organize code into self-contained modules. Each module can have its own MVC structure and resources.

```
application/modules/
└── {module}/
    ├── controllers/             # Module-specific controllers
    ├── models/                  # Module-specific models
    ├── migrations/              # Module-specific migrations
    ├── views/                   # Module-specific views
    ├── libraries/               # Module-specific libraries
    ├── helpers/                 # Module-specific helpers
    ├── language/                # Module-specific language files
    └── config/                  # Module-specific configuration

```

**Benefits of HMVC:**

- **Modularity**: Each module is self-contained and reusable
- **Organization**: Better code organization for large applications
- **Separation**: Modules can be developed and tested independently
- **Scalability**: Easy to add, remove, or replace modules

**Example Module Structure:**

```
application/modules/blog/
├── controllers/
│   ├── Blog.php
│   └── Admin.php
├── models/
│   └── Blog_model.php
├── views/
│   ├── index.php
│   └── detail.php
└── libraries/
    └── Blog_helper.php

```

### Additional Directories

[](#additional-directories)

- **`bin/`** - Command-line scripts and utilities
- **`private/`** - Private files not accessible via web
- **`patches/`** - Compatibility patches for dependencies

###  Health Score

60

—

FairBetter than 98% of packages

Maintenance99

Actively maintained with recent releases

Popularity24

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity84

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 58.3% 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 ~158 days

Recently: every ~57 days

Total

19

Last Release

5d ago

Major Versions

0.5.5 → 1.0.02024-08-27

1.x-dev → 2.0.02026-06-28

PHP version history (4 changes)0.1PHP ^5.4 || ^7.0

0.5.4PHP ^5.4 || ^7.0 || ^8.0

1.0.0PHP ^7.4 || ^8.0

1.4.0PHP ^8.2

### Community

Maintainers

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

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

---

Top Contributors

[![humole](https://avatars.githubusercontent.com/u/221601?v=4)](https://github.com/humole "humole (180 commits)")[![gumoz](https://avatars.githubusercontent.com/u/48006?v=4)](https://github.com/gumoz "gumoz (66 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (55 commits)")[![kmartinezabarca](https://avatars.githubusercontent.com/u/78579850?v=4)](https://github.com/kmartinezabarca "kmartinezabarca (6 commits)")[![ArgelOrtiz](https://avatars.githubusercontent.com/u/34045316?v=4)](https://github.com/ArgelOrtiz "ArgelOrtiz (2 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[laravel/dusk

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

1.9k39.6M299](/packages/laravel-dusk)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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