PHP code example of gravity-framework / gravity-core

1. Go to this page and download the library: Download gravity-framework/gravity-core library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

gravity-framework / gravity-core example snippets


composer dump-autoload




//A modifier selon la configuration des dossiers du projet
define('DS', DIRECTORY_SEPARATOR);//Séparateur de dossier selon l'OS
define('VIEWS', dirname(__DIR__). DS .'templates'.DS);//Les maquettes
define('SCRIPTS', dirname($_SERVER['SCRIPT_NAME']).DS);//Le dossier dans lequel se trouve votre fichier index.php (contrôleur frontal), par exemple public/
define('STYLES', SCRIPTS.'css'.DS);//Les fichiers css
define('JS', SCRIPTS.'js'.DS);//Les fichiers javascript
define('IMAGES', SCRIPTS.'images'.DS);//Les images

//Vous pouvez aussi définir vos propres constantes selon vos besoins




return [
    "server" => "mysql",
    "host" => "localhost",
    "port" => "3306",
    "user" => "root",
    "pass" => "",
    "dbname" => "mabase"
]


<!DOCTYPE html>
<html lang="fr">

    <head>
        <title><?= $title 

 $title = "Accueil" 


use Gravity\Core\App\Controllers\Controller;
use Gravity\Core\Routing\Router;


$router = new Router($_REQUEST['route']);

########################################### Definissez vos routes ########################################### 

$router->get('/', function() {
	(new Controller())->renderView('Home.index', 'layout');
});

$router->get('/shop', [ShopController::class, 'index']);

$router->get('/shop/:productId', "App\Controllers\ShopController@show");


$router->get('/', function() {
	(new Controller())->renderView('Home.index', 'layout');
});

$router->get('/shop', [ShopController::class, 'index']);

$router->get('/shop/:productId', "App\Controllers\ShopController@show");

try {
	$router->run();
} catch(Exception $e) {
    	//Affiche les détails de l'erreur dans une vue
	(new Controller())->renderView('Errors.index', 'Errors.layout', ['error'=>$e]);
}

use Gravity\Core\App\Entity\Entity;

class Article extends Entity {

    protected static $}

use Gravity\Core\App\Repository\Repository;


class ArticleRepository extends Repository {

    protected static $entity = Arcticle::class;
    protected static $table = "articles";

}

$router->get('/', function() {
    	//Tous les articles
    	$articles = ArticleRepository::findAll();
	(new Controller())->renderView('Home.index', 'layout', ['articles'=>$articles]);
});

$router->get('/articles/:id', function() use($router) {
    	//Les paramètres de la route pour récupérer l'id
    	$params = $router->getRoute('articles.get')->getParameters();

	$a = ArticleRepository::find($params[0]);

	(new Controller())->renderView('Articles.show', 'layout', ['article'=>$a]);

}, 'articles.get');

$router->get('/articles/author/:name', function() use($router) {
    	//Les paramètres de la route pour récupérer l'auteur
    	$params = $router->getRoute('articles.get.author')->getParameters();

	$a = ArticleRepository::findWhere(['auteur'], [$params[0]]);

	(new Controller())->renderView('Articles.show', 'layout', ['article(s)'=>$a]);

}, 'articles.get.author');

$router->post('/articles', function() use($router) {
    	//Les paramètres et données de la requête
    	$params = $router->getRoute('articles.post')->getExtras();

    	$a = new Article($params);

	$saved = ArticleRepository::save($a);

	(new Controller())->renderView('Articles.save', 'layout', ['saved'=>$saved]);

}, 'articles.post');


use Gravity\Core\App\Resources\AbstractResource;

class ArticleResource extends AbstractResource {

    protected $entity = Article::class;

    public function toArray() {
        $data = $this->entity->toArray();

        unset($data['auteur']);
        
        $data['rédacteur'] = $this->entity->auteur;

        $data['contenu'] = substr($this->entity->contenu, 0, 20).'...';

        return $data;
    }

}

// Article dont l'id est 5
$article = ArticleRepository::find(5);

$articleFormatted = (new ArticleResource())->make($article);

(new Controller())->renderView('Articles.show', 'layout', ['article'=>$articleFormatted]);
apache
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ public/index.php?route=$1 [QSA,L]
$content
database.php