PHPackages                             phpizi/framework - 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. phpizi/framework

ActiveLibrary[Framework](/categories/framework)

phpizi/framework
================

MVC framework for PHP based on ASP MVC features

049PHP

Since Sep 26Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Yordii-CE/phpizi-framework)[ Packagist](https://packagist.org/packages/phpizi/framework)[ RSS](/packages/phpizi-framework/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Getting started
===============

[](#getting-started)

1. Dowload this framework.
2. Rename 'easyflow' to your project name.
3. Working in the App folder (Ignoring Core).

```
app
├── config
├── controllers
├── libs
├── models
├── public
├── views
└── main.php
```

How to work with easyflow?
==========================

[](#how-to-work-with-easyflow)

you have to follow a series of naming rules to work with easyflow.

### Files

[](#files)

- Controllers: Point nomenclature and in lower case, all must end in '.controller'.
- Models: Point nomenclature and in lower case, all must end in '.model'.
- Views: Create a folder for each controller and within all the actions|functions that the controller has defined:

```
app
├── controllers
│    └── articles.controller.php
├── models
│    └── articles.model.php
├── views
│    └── articles
│        └── index.php
│        └── news.php
├── ...
```

### Classes

[](#classes)

- Controllers: UpperCamelCase, all must end in 'Controller'.

```
class ArticlesController extends Controller
{
}
```

- Models class name: UpperCamelCase, all must end in 'Model'.

```
class ArticlesModel extends Model
{
}
```

NOTE: When we reference a controller or model from the code, we do so without its prefixes.

Automatic creation
==================

[](#automatic-creation)

You can create the files manually following these naming rules but we have failed a .bat that allows you to create controllers, models and views in an autonomous way thus avoiding errors.

### Controller, Model and View

[](#controller-model-and-view)

```
.bat articles

```

### Only Controller and Model

[](#only-controller-and-model)

```
.bat articles -true -false

```

### Only Controller

[](#only-controller)

```
.bat articles -false -false

```

View variables
==============

[](#view-variables)

You can access these variables in any view.

```
echo $PROJECT_PATH;
echo $BASE_URL;
echo $CONTROLLER;
echo $ACTION;
```

Config pattern
==============

[](#config-pattern)

You can config a default pattern in the main.php file.

```
DefaultUrl::$pattern = "{articles}/{index}/{1}";
```

Actions
=======

[](#actions)

### view()

[](#view)

you can display a view like this:

```
class ArticlesController extends Controller
{
    function index(): View
    {
        return view();
    }
}
```

### json()

[](#json)

You can respond with a json like this:

```
class ArticlesController extends Controller
{
    function index(): Json
    {
        return json("Hello world!");
    }
}
```

### redirectToAction()

[](#redirecttoaction)

you can redirect to a controller action like this:

```
class ArticlesController extends Controller
{
    function index(): Redirect
    {
        return redirectToAction('index', 'Login');
    }
}
```

### redirectToUrl()

[](#redirecttourl)

you can redirect to a web url like this:

```
class ArticlesController extends Controller
{
    function index(): Redirect
    {
        return redirectToUrl('https://www.youtube.com/');
    }
}
```

Prefix
======

[](#prefix)

### For app

[](#for-app)

you can set a url prefix at application level like this:

```
DefaultUrl::$pattern = "application/{articles}/{index}/{1}";
```

### For controller

[](#for-controller)

you can set a url prefix at controller level like this:

```
class ArticlesController extends Controller
{
    function __construct()
    {
      prefix("statistics");
    }
    ...
}
```

[![Descripción de la imagen](/screenshots/data_in_view.png)](/screenshots/data_in_view.png)

### Specify view and data

[](#specify-view-and-data)

You can speciy the view name and the data name.

[![Descripción de la imagen](/screenshots/view_with_both.png)](/screenshots/view_with_both.png)

### View variables

[](#view-variables-1)

You can access these variables in any view: $CONTROLLER, $ACTION, $BASE\_URL.

### Use params

[](#use-params)

You can send parameters to a certain action We can obtain the parameters as follows.

- articles/index/1

[![Descripción de la imagen](/screenshots/params.png "articles/index/1")](/screenshots/params.png)

- articles/index/1/Yordii

[![Descripción de la imagen](/screenshots/params_two.png "articles/index/1/Yordii")](/screenshots/params_two.png)

Template (shared folder)
========================

[](#template-shared-folder)

There will always be files 'footer' and 'header', these will wrap all views. You can add other components like 'menu' etc and add them to any part of your template stored in your 'shared' folder.

### Omit template

[](#omit-template)

You can omit the template that wraps the view with a third parameter.

[![Descripción de la imagen](/screenshots/omit_template.png)](/screenshots/omit_template.png)

Connect to Mysql
================

[](#connect-to-mysql)

1. In the config file you can set your connection data.

[![Descripción de la imagen](/screenshots/config.png)](/screenshots/config.png)

2. You will have to load your database in your model, the load is not automatic because not all models can obtain data from a database, so resources are saved.

[![Descripción de la imagen](/screenshots/model_to_mysql.png)](/screenshots/model_to_mysql.png)

3. Finally in your controller you can use your model and access your data as follows.

[![Descripción de la imagen](/screenshots/controller_to_mysql.png)](/screenshots/controller_to_mysql.png)

Contributions
=============

[](#contributions)

Your contributions are welcome! If you want to collaborate in this project, please follow the steps below:

1. Fork this repository and clone your own copy to your local machine.
2. Create a new branch to make your changes: `git checkout -b additional`.
3. Make changes and improvements to the code.
4. Make sure your changes follow the style guides and best practices of the project.
5. Commit your changes: `git commit -m "Description of changes"`.
6. Push your changes to your remote repository: `git push origin additional`.
7. Open a Pull Request to this main repository and describe the changes you have made.
8. Wait for your changes to be reviewed and merged.

Contact
=======

[](#contact)

If you have any questions or suggestions related to this project, feel free to contact me. You can find me at .

License
=======

[](#license)

This project is licensed under the [MIT](https://opensource.org/licenses/MIT) License. If you use this code, please include the LICENSE file in your project.

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/94014080?v=4)[Yordii](/maintainers/Yordii-CE)[@Yordii-CE](https://github.com/Yordii-CE)

---

Top Contributors

[![Yordii-CE](https://avatars.githubusercontent.com/u/94014080?v=4)](https://github.com/Yordii-CE "Yordii-CE (1 commits)")

### Embed Badge

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

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

###  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)
