You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.1 KiB

LE Framework Introduction

Перед вами простейший фреймворк, архитектура которого приспособлена для мультисайтовой раскатки. Т.е. у вас есть одна папка с фреймворком, который сразу и движок, а конкретные сайты или консольные приложения подключают файл include.php, создают файл конфигурации в папке приложения, при желании переопределяют или создают новые классы, модули и т.д., в итоге, с минимальными затратами можно слепить простейшее нестандартное приложение.

В будущем на этом фреймворке можно будет создавать такие приложения, как:

  • Консольные демоны (службы)
  • Блоги и статейные сайты
  • Интернет-магазины

Структура приложения

├── app_dir
│   ├── app_conf.php
│   ├── CLASSES - может отсутствовать
│   ├── MODULES - может отсутствовать
│   ├── TPL - может отсутствовать
│   ├── sessions - создается автоматически, если нет
│   ├── web - доступная веб-серверу папка
│   │   ├── assets - статичные файлы, не меняются приложением
│   │   │   ├── css
│   │   │   ├── js
│   │   │   └── etc
│   │   ├── pub_data - публикуемые ресурсы типа картинок
│   │   └── index.php - точка входа

пример создания структуры

cd my_app
mkdir -p {CLASSES,MODULES,TPL,sessions,web} web/assets/{css,js,etc} web/pub_data

index.php - точка входа

<?php

define("APPDIR",realpath(__DIR__."/../").DIRECTORY_SEPARATOR);
include "/www/kernel/init.php"; //path to framework

app_conf.php

<?php 
/*DB CONFIGURATION*/
SYSCONF::$DB['db_name'] = 'project1';
SYSCONF::$DB['user'] = 'root';
SYSCONF::$DB['pass'] = '...';
//SYSCONF::$DB['host'] = 'localhost';

//дефолтный модуль в корне сайта...
SYSCONF::$DEFAULT_MODULE['default']='welcome';

SYSCONF::$DEFAULT_MODULE['admin']='blog';




SYSCONF::$SPACE_LIST = [
    'admin|cabinet'=>'admin',
    'main'=>'main'
];

SYSCONF::$MOD_ALIASES['main'] = [
    'cart|category|product'=>'shop'
];

SYSCONF::$MOD_ALIASES['admin'] = [
    'category|cart|orders'=>'catalog'
];

ToDo

  • add class LE_SQLITE - иногда нужно делать мини-приложения типа домашней бухгалтерии
  • add class LE_CALENDAR - простейшие операции с датами, удобно для формирования всяких графиков платежей, например для кредитных калькуляторов
  • add class LE_FORMGEN - генератор типовых формочек с заполнением полей данными из БД, удобно для быстрого клепания редакторов в админке
  • add class LE_XML, LE_CSV - чтение и генерация форматов для экспорта/импорта
  • внедрить сторонние библиотеки для работы с xls, xlsx
  • слепить простейший UIKIT, должен состоять как из CSS, так и из JS и бэкендные функции на PHP для генерации всяких модальных окон, нужно еще переопределить всякие алерты и конфирмы на свои, чтобы все вписывалось в интерфейс

Весь процесс разработки логируется на YouTube в виде видеоуроков