Skip to content

andy87/nano-framework

Repository files navigation

+

Simple PHP framework `Nano` v1

Fast start with

nano-application

En

  • fast, low size, easy expand
  • Nice interaction interface (subjectively)

Application structure

📁 
├─📁 config                              Directory with config files 
│ ├─📄 common.php                          Common config file
│ └─📄 main.php                            Main config file
├─📁 controllers                         Library Controllers
│ ├─📁 console                             Comingsoon...
│ └─📁 web                                 Directory with `web` Controller class
│   └─📄 <controller_id>Controller.php       <controller_id> file
├─📁 static                              Directory with public files & templates views
│ ├─📁 css                                 Library `CSS files`
│ ├─📁 js                                  Library `JS files`
│ └─📁 img                                 Library `Images`
├─📁 vendor                              Composer directory
├─📁 views                               Library with `views`
│ ├─📁 _layouts                            `views` for layouts
│ └─📁 <controller_id>                     `views` for <controller_id>
│    └─📄 <action_id>.php                   `views` for <action_id>
├─📄 .gitignore                          Git ignore file
├─📄 .htaccess                           Apache config file
├─📄 composer.json                       Composer config file
├─📄 endpoint.php                        Endpoint
└─📄 README.md                           This file O_O

endpoint

const ROOT = __DIR__;

include ROOT . "/vendor/autoload.php";

framework\Nano::setup([
    require ROOT . "/config/common.php",
    require ROOT . "/config/web.php"
])->run();

More example/info:

Ru

  • быстрый, мало "весит", легко расширяемый
  • Приятный интерфейс взаимодействия (субъективно)

Быстрый старт с

шаблоном приложения

Цель фреймворка:

Быстрое создание простых сайтов и прототипов

Что он умеет? Что-то умеет, но так и хочется сказать: да практически ничего! Фреймворк был специально написан с минимальным количеством функционала, но имеет простой способ расширить этот функционал.

Возможности фреймворка:

  • разделять код на controllers и views
  • views может отрендерить другие views
  • views может использовать обёртку(layout)
  • action имеет 3 Content-Type ответа:
    • HTML (по умолчанию), JSON, RAW
  • легко расширить функционал фреймворка, создавая свои компоненты на основе базовые классов