All Projects → ahmedalaahagag → tiny-framework

ahmedalaahagag / tiny-framework

Licence: MIT License
A light wight easy to use RESTful apis framework for education & demo purposes. stripped down framework to the fundamental components that that every one would essentially need to (learn / make a demo application).

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to tiny-framework

Cross
Cross++ Lightweight Crossplatform Game Engine
Stars: ✭ 26 (+100%)
Mutual labels:  lightweight, education
Pine
A modern, native macOS markdown editor
Stars: ✭ 2,818 (+21576.92%)
Mutual labels:  lightweight, minimal
Pico
Graceful & Minimal CSS design system in pure semantic HTML
Stars: ✭ 89 (+584.62%)
Mutual labels:  lightweight, minimal
Beedle
A tiny library inspired by Redux & Vuex to help you manage state in your JavaScript apps
Stars: ✭ 329 (+2430.77%)
Mutual labels:  lightweight, minimal
koochak
A minimal & lightweight CSS framework
Stars: ✭ 15 (+15.38%)
Mutual labels:  lightweight, minimal
Domvm
DOM ViewModel - A thin, fast, dependency-free vdom view layer
Stars: ✭ 581 (+4369.23%)
Mutual labels:  lightweight, minimal
Herbe
Daemon-less notifications without D-Bus. Minimal and lightweight.
Stars: ✭ 235 (+1707.69%)
Mutual labels:  lightweight, minimal
Bonsai
🌱 a tiny distro-independent package manager
Stars: ✭ 188 (+1346.15%)
Mutual labels:  lightweight, minimal
minidenticons
Super lightweight SVG identicon (icon avatar) generator
Stars: ✭ 89 (+584.62%)
Mutual labels:  lightweight, tiny
CalDOM
An agnostic, reactive & minimalist (3kb) JavaScript UI library with direct access to native DOM.
Stars: ✭ 176 (+1253.85%)
Mutual labels:  lightweight, tiny
Webpack Nano
A teensy, squeaky 🐤 clean Webpack CLI
Stars: ✭ 199 (+1430.77%)
Mutual labels:  minimal, tiny
kolorist
A tiny utility to colorize stdin/stdout
Stars: ✭ 160 (+1130.77%)
Mutual labels:  minimal, tiny
Minimp3
Minimalistic MP3 decoder single header library
Stars: ✭ 898 (+6807.69%)
Mutual labels:  minimal, tiny
Spruce
A lightweight state management layer for Alpine.js. 🌲
Stars: ✭ 720 (+5438.46%)
Mutual labels:  lightweight, tiny
Framework
MomentPHP | The PHP mini-framework based on Slim and Laravel Components
Stars: ✭ 6 (-53.85%)
Mutual labels:  minimal, slim
natick
natickOS - A minimal, lightweight, research Linux Distribution
Stars: ✭ 33 (+153.85%)
Mutual labels:  lightweight, minimal
tinypool
🧵 A minimal and tiny Node.js Worker Thread Pool implementation (38KB)
Stars: ✭ 452 (+3376.92%)
Mutual labels:  minimal, tiny
SSTMCSPGAAS
Stupidly Simple Tiny Minimal Coming Soon Page Generator As A Service
Stars: ✭ 23 (+76.92%)
Mutual labels:  minimal, tiny
data science chile
Lista de cursos de Data Science en Chile 📈📊🇨🇱
Stars: ✭ 22 (+69.23%)
Mutual labels:  education
Kali-Linux-Tools-Interface
Graphical Web interface developed to facilitate the use of security information tools.
Stars: ✭ 169 (+1200%)
Mutual labels:  education

Tiny Framework (PHP)

Light weight and easy to use RESTful api framework for education & demo purposes. stripped down to the fundamental components that every one would essentially need to (learn/create a demo application).

Installation Instructions

# Clone tiny-framwork
git clone https://github.com/ahmedalaahagag/tiny-framwork.git

# Cd into the cloned repo
cd tiny-framework

# Run "composer update -o" then "composer du"
composer update -o && composer du

# Run the this command "php -S localhost:8080 -t public/", or change it according to your configuration
php -S localhost:8080 -t public/

# Create a database according to the config file or 
import the given demo user table user.sql in database folder

Features

1 - Service Container.

2 - Routes.

3 - Response (json).

4 - Session Handler.

5 - Database (PDO driver).

6 - Command Line (Symfony Component).

7 - Dependency Injection.

8 - Models / Controllers.

9 - Class Mapping / Reflections.

10 - File Handler.

11 - Api calls

Where to get started

Typically the entry point is public/index.php

creates a new app object

from here you will find the framework bootstrapping

injecting the autoload and calling bootstrap/app.php

form this point on the framework goes into action filling a service container

reading the routes

matching the requested route with the registered then get the controller and the requested function

Commands

  • Create CRUD Controller / Model / Routes
 php tiny crud:make <name>
  • Create Api Call
 php tiny api-call:make <ClassName>

asciicast

Run Unit Tests

cd /path/to/app && run ./vendor/bin/phpunit
# or
cd /path/to/app && composer test

TODOs

  • Add more db drivers
  • Add frontend integration/handling
  • Cover more test cases
  • More Commands (makes it easier to use the framework)
  • Add DB migration files feature

Special Thanks to

Mahmoud Nassar

Mohamed Nagy

Ahmed Jamal

For their support

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].