acuna-public / Mash

Mash is the powerful framework for websites, API and CLI applications building

Home Page:https://mash.ointeractive.ru

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mash

Mash is a powerful framework for websites, API and CLI applications building.

Application example:

1. Create your application template in templates/Default/main.htm folder for web site:

<html>
  
  <head>
    {headers}
  </head>
  
  <body>
    {content}
  </body>
  
  {footers}
  
</html>

2. Create your project main file like index.php in the root folder of your project:

<?php
  
  /**
   * WebSite is your application type. Another application types
   * is API for API, and CLI for console applications, or Mash
   * for build your own application type for your purposes
   */
  
  class MySite extends WebSite {
    
    public function getRootDir () { // Your project root dir
      return __DIR__;
    }
    
    public function setConfig (): Mash\Config { // Your project config
      return new MySite\Config ($this);
    }
    
    public function onInit () {
      
      parent::onInit ();
      
      // Your app initialization, for example connect to new DB, etc.
      
    }
    
    public function onShow (): string {
      
      // Your site content
      
      $this->tpl->load ('main'); // Load your HTML template
      
      $this->tpl->set ('content', 'Hello World!'); // Change its tags
      
      $this->tpl->compile ('main'); // Compile your template
      
      return $this->tpl->result['main']; // Return compiled content
      
    }
    
  }
  
  $site = new MySite ();
  echo $site->show ();

Done, your site is ready, now you can create new templates for another modules and combine them. {headers} and {footers} tags will be replaced by Mash which added needed HTML tags automatically, for example title, meta, etc.

Another documentation will be soon

About

Mash is the powerful framework for websites, API and CLI applications building

https://mash.ointeractive.ru

License:GNU General Public License v3.0


Languages

Language:PHP 60.8%Language:JavaScript 30.6%Language:CSS 8.5%Language:HTML 0.2%