Skip to content
This repository was archived by the owner on Jul 20, 2020. It is now read-only.

n-keist/lemony-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lemony-php

This is a (very) tiny PHP-Framework which was intended to be used in a personal project.

Routing and Views

There is no .htaccess to modify, URLs are "beautified" tho, but in a more convenient way. A URL might look like this:

http://localhost:8080/?/home

Registering URLs is easy: Open the index.php file, and start adding routes like followed:

$router->add('/path/to/route', new namespace\MyViewController(), 'METHOD');

The Router supports dynamic parameters like this:

$router->add('/user/{userId}', new vcs\UserVC());

If you add a parameter like this, you are able to fetch userId in the run(params) method in your ViewController

A simple ViewController (based on the second example) could look like this:

<?php 
namespace lemony\viewmodel;

use lemony\ViewModel;

class UserViewModel extends ViewModel
{
	
	private $model = [];

	function __construct()
	{
		parent::__construct('user');
	}

	public function getModel() {
		return $this->model;
	}

	public function run($params) {
		$this->model['userId'] = $params['userId'];
	}
}
?>

The Template you are using, is defined in the parents constructor. All Templates are stored in /app/views

This "framework" is using the Mustache Templating Engine.

Database

In /classes there is a file called config.class.php.example, if you are going to use this feature, rename this file to config.class.php and update your credentials.

The database class contains a basic QueryBuilder.

Query Builder Examples:

Insert:

$query = db::getInstance()
			->table('test')
			->insert(['username' => "n-keist", 'age' => 19])
			->getQuery();

Update:

$query = db::getInstance()
			->table('test')
			->update(['job' => "Software Developer")
			->where(['username' => "n-keist"])
			->getQuery();

Select:

$query = db::getInstance()
			->table('test')
			->select("age, job")
			->where(['username' => "n-keist"])
			->getQuery();

The select method allows more functions like order(orderType, column) and limit(count, offset)

Delete:

$query = db::getInstance()
			->table('test')
			->delete()
			->where(['username' => "n-keist"])
			->getQuery();

This class also supports raw queries, if you don't want to rely on the query builder (it could have faults tho)

$result = db::getInstance()->raw(query, parameters)->execute();

Installation

  1. Clone the project
  2. run composer install in the command prompt
  3. update your mysql data