MNRFY Framework

Современный PHP фреймворк с мощным шаблонизатором, системой переводов и инструментами разработки

🎨 Шаблонизатор

Собственный шаблонизатор похожий на Twig с расширенными возможностями

🌍 Многоязычность

Встроенная система переводов с автоматическим переводом

🗄 База данных

Удобный интерфейс работы с БД, транзакции и кеширование

📝 Формы

Удобная обработка форм с расширенным функционалом

🧩 Компоненты

Переиспользуемые компоненты и макеты

🔒 Безопасность

Встроенная CSRF защита и экранирование данных

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

1. Создайте шаблон страницы

Создайте файл /src/hello.html:

<!DOCTYPE html>
<html>
<head>
    <title>{{ config('app.name') }} - Привет</title>
</head>
<body>
    <h1>{{ t('welcome') }}</h1>
    
    {% set user = {"name":"Данило"} %}
    
    {% if user %}
        <p>Привет, {{ user.name }}!</p>
    {% else %}
        <p>Привет, гость!</p>
    {% endif %}
    
    <h2>Пользователи</h2>
    {% set users = db('1752665380840')->getItems('users', {'ban': 0}) %}
    
    <ul>
    {% foreach users as user %}
        <li>{{ user.login }} - {{ user.balance | money('₽') }}</li>
    {% endforeach %}
    </ul>
</body>
</html>

2. Откройте страницу

Перейдите по адресу http://yourdomain.com/hello

Основные возможности

Вывод переменных

<!-- Экранированный вывод -->
{{ user.name }}

<!-- Сырой вывод (без экранирования) -->
{!! article.content !!}

<!-- Значение по умолчанию -->
{{ user.nickname ?? 'Гость' }}

Условия

{% if user.balance > 0 %}
    <span class="balance-positive">{{ user.balance | money('₽') }}</span>
{% else %}
    <span class="balance-zero">Пополните баланс</span>
{% endif %}

Циклы

{% foreach products as product %}
    <div class="product">
        <h3>{{ product.name }}</h3>
        <p>{{ product.price | money('₽') }}</p>
    </div>
{% endforeach %}

Работа с БД

<!-- Получение записей -->
{% set users = db('1752665380840')->getItems('users', {'ban': 0}) %}

<!-- Получение одной записи -->
{% set user = db('1752665380840')->getItem('users', {'id': userId}) %}

<!-- Подсчет записей -->
{% set count = db('1752665380840')->countItems('users') %}

Переводы

<!-- Простой перевод -->
{{ t('welcome') }}

<!-- Перевод с параметрами -->
{{ t('greeting', {'name': user.name}) }}
Совет: Начните с изучения структуры проекта и основ шаблонизатора.

Преимущества MNRFY

Требования

Готовы начать? Перейдите к руководству по установке.