Download the PHP package sme/app without Composer
On this page you can find all versions of the php package sme/app. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package app
SME
simple mvc framework
Это нечто похожее на laravel но намного быстрее и проще
Внимание, документация является устаревшей, в ближайшее время постараюсь переписать
Установка
Первый запуск
Route
Controller
View
Compressor
Model
Storage
Cache
Http client
Exceptions
Log
Console
Установка:
Первый запуск:
В директории с проектом просто выполнить команду
Готово! Теперь можно открыть браузер по адресу http://127.0.0.1:8000
у вас должна открыться стандартная страница движка.
Всё ваше приложение находится в папке app
Маршруты в файле routes/web.php
Route:
В файле /route/web.php
Создаём маршрут по пути /
и вызываем метод index
в контроллере mainController
, так же даём имя маршруту home
в цепочке методов ->name()
Так же можно создать маршрут с замыканием
Для отправки переменных в маршруте поместите их в фигурных скобках прямо в URL
Controller:
В папке /controller создаём файл контроллера, например mainController.php
шаблон есть в файле def.php
Создаём нужный нам метод, например index()
Для получения данных от клиента используется класс request
или хелперrequest()
Получаем переменную из маршрута:
Или
Получаем переменную из формы:
View:
В папке /app/view создаём файл вида, например home.php
Передать переменную в вид из контроллера или замыкания маршрута
В видах мы можем делать как и обычные вставки php ` так и компилируемые с помощью спецсимволов
{{Переменная или функция}}или
@функция`
Наследование lay
- папка, html
- файл
Обьявить секцию
или
Получить секцию
Обьявить переменную:
Перебрать массив
Добавление собственных функций в компилятор
В файле appService.php
в методе register
или же подключить свой класс через appService
Compiler::declare(имя функции
,анонимная функция(
агрументы переданные в функцию,
последним всегда будет анонимная функция для добавления в конец буффера)
)
Готово, вызываем в виде
Результат, в том месте где была вызвана функция будет выведено 6
в самом низу страницы будет выведено 2
Compressor:
Compressor - инструмент для обьединения подключаемых css или js файлов в один
Просто передаём компрессору наши файлы в виде массива и указываем какой файл должен получиться
Пример с css
В результате получаем всего один файл что положительно сказывается на скорости загрузки страницы
Если содержимое файлов отлично от text/javascript
или text/css
можем указать своё в 3 агрументе функции
Model:
В папке /app/model создаём файл модели, например db.php
шаблон есть в файле def.php
По умолчанию имя таблицы должно быть таким же как и название класса модели, но можно переназначить с помощью свойства класса $table
Для работы с моделью нужно подключить её в контроллере
Или если нужно использовать в замыкании маршрута
Чтобы обратится к модели используем тот же метод только без аргументов: model()->имя модели
:
Так же можно обратится к модели сразу после подключения
Для работы с данными используется цепочка методов родительского класса:
Примеры:
Получаем массив:
Создаём запись:
Редактируем запись (метод find()
используется для получения записи по ID
):
Удаление записи:
Storage:
Класс для работы с хранилищем (в стадии разработки)
Сохранить файл на диск
Получить файл с диска
Удалить файл
Проверить существует ли файл
Так же можно сохранять файлы сразу из при их получении из формы
Cache:
В кэше можно хранить любые данные и файлы от одной секунды до бесконечности
Сохранить данные в кэше put(ключ
,данные
,время хранения в секундах
)
Получить данные
или получить и сразу удалить
Удалить
Проверить сущеутвование по ключу
Http client:
Простой GET запрос
В ответ получаем обьект:
POST запрос с параметрами
По умолчанию запрос выполняется в виде json обьекта с типом application/json
Если нужно выполнить обычный application/x-www-form-urlencoded
то добавьте метод asForm перед выполнением запроса
Если нужен multipart/form-data
Basic авторизация
или Digest авторизация
если Realm статичен, можем указать
Таймаут в секундах
Вызвать исключение в случае ошибки
Если нужно обработать ошибку, можно использовать замыкание
Exceptions:
Обьявить исключение можно в appService.php
Вызываем исключение
Или через хелпер
Так же мы можем переназначать системные исключения
Например переназначим исключение валидации на вывод json
Log:
Логирование
Включить логирование можно в файле конфигурации .env
По умолчанию лог сохраняется по пути ROOT/storage/.log/
Сохранить информацию в лог
Если нужно записать ошибку используется метод error
Лог так же выводится в консольных командах
Например если мы хотим вывести таймер или что то подобное можно использовать метод thisLine
в этом случае информация не запишется в файл а будет перезаписываться на этой же строке в консоле
Console:
Команды
Запустить Dev server
Очистить кэш
Запуск приложения из консоли
Например напишем отображение времени в консоли
В файле route/console.php
создаём маршрут с методом console
с замыканием
Запускаем в консоли
Передача аргументов из консоли
Выполняем
All versions of app with dependencies
PHP Build Version
Package Version
The package sme/app contains the following files
Loading the files please wait ....