A lightweight yet powerful PHP framework designed for simplicity and efficiency, inspired by Laravel. This framework provides essential features such as routing, an ORM, templating, migrations, and form validation, making it an excellent choice for rapid development.
- Routing: Define routes easily using
Route::get()
,Route::post()
, etc. - ORM & Query Builder: Provides an easy-to-use, scalable database abstraction layer.
- Blade-like Templating: Supports reusable and dynamic views.
- Migrations & Seeders: Simple syntax for database migrations and data seeding.
- Form Request Validation: Implements form validation .
- CLI Support: Includes command-line utilities for migrations, seeding, and logging.
- Modular & Scalable: Designed for flexibility and easy extension.
-
Clone the repository:
git clone https://github.com/hymns/mika-framework.git cd mika-framework
-
Install dependencies using Composer:
composer install
-
Configure the
.env
file and update accordingly:cp .env.example .env
-
Run migrations:
php leman db:migrate
-
Start the built-in PHP server:
php -S localhost:8000 -t public/
Create routes in routes/web.php
:
// Using with Closure
Route::get('/hello', function () {
return 'Hello, World!';
});
// Using with Controller
Route::get('/users', [UserController::class, 'listUser'], 'user.index');
Checkout full Route documentation.
Create new controller using Leman command line.
php leman make:controller UserController
Leman will create the basic CRUD function for UserController. This will help to reduce time to create from scratch.
<?php
namespace App\Controllers;
use Core\Http\Request;
use Core\Http\Response;
class UserController
{
/**
* Display a listing of the data.
*
* @return Response
*/
public function index(): Response
{
// display data list
}
/**
* Store a newly created data in storage.
*
* @param Request $request
* @return Response
*/
public function store(Request $request): Response
{
// do store process
}
/**
* Display the specified data.
*
* @param int $id
* @return Response
*/
public function show(int $id): Response
{
// show data
}
/**
* Display the specified data to edit.
*
* @param int $id
* @return Response
*/
public function edit(int $id): Response
{
// show edit form
}
/**
* Update the specified data in storage.
*
* @param int $id
* @param Request $request
* @return Response
*/
public function update(int $id, Request $request): Response
{
// do process update
}
/**
* Remove the specified user from storage.
*
* @param int $id
* @return Response
*/
public function delete(int $id): Response
{
// do process delete
}
}
Create new model using Leman command line.
php leman make:model User --table=users
Define a model:
class User extends Model {
protected string $table = 'users';
}
Query example:
$users = User::where('active', true)->get();
$request = new UserRequest();
if (!$request->validate()) {
die('Validation failed');
}
Feel free to fork the project and submit pull requests to improve it.
This project is licensed under the MIT License.