Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Regenix: Новейший нестандартный MVC фреймворк для PHP

Anna | 31.05.2014 | нет комментариев

Приветствую всех. Хочу представить вам свой план под наименованием Regenix.

image
Это новейший MVC фреймворк для языка PHP, в рамках которого реализовано несколько увлекательных и уникальных идей, которые вы с малой вероятностью встретите в других PHP фреймворках. На план огромное воздействие оказал Play! framework и язык Java.

В 2-х словах, Regenix это фреймворк, тот, что ориентирован на контроль ошибок, на суровые рамки, тот, что Зачастую не приемлет множества решений для одной задачи. Таким образом обеспечивается согласованность в огромный команде разработчиков.

Основные качества фреймворка:

  • Классическая MVC Зодчество
  • Помощь нескольких планов на одном ядре без лишних манипуляций
  • Эластичный роутинг на основе конфигурационных файлов
  • Разумный обзор кода для обнаружения runtime ошибок
  • Славный и подробнейший итог ошибок
  • Администратор зависимостей для assets, модулей и зависимостей composer
  • Ленивая загрузка классов, сканер классов
  • Для моделей интегрирован Propel ORM
  • CLI для управления планами
  • А также DI контейнер (схожий на Guice), i18n, логирование, свой легкой шаблонизатор и многое другое …

Так сложилось, что я тружусь в компании где Зачастую применяют Java в качестве backend языка и PHP в качестве frontend языка. В мире PHP довольно много знаменитых фреймворков, впрочем многие из них не подходят нам по многим критериям. К тому же, позже года программирования на Java и Play я крепко привык к иной идеологии и приблизительно 8 месяцев назад начал разработку Regenix в свободное время.

Дальше я расскажу об особенностях фреймворка больше подробнее…

Введение

Regenix требует PHP 5.3 и всякий web сервер (Nginx FastCGI, Apache mod_rewrite, и др.), является
всецело Open Source планом и помещен на GitHub’e (https://github.com/dim-s/regenix). Также Отчасти доступна актуальная документация на английском языке, которую дозволено обнаружить на гитхабе (русская версия теснее устарела).

MVC Зодчество

В Regenix реализована классическая зодчество MVC — Модели, Представления и Контроллеры. Контроллер это класс унаследованный от базового класса regenixmvcController, все его публичные нестатичные способы могут быть действиями (actions). Дабы связать URL с способами контроллеров (routing) применяется особый файл конфигурации с легким для чтения синтаксисом, тот, что дюже схож на роутинги из Play framework.

Представление (либо Образцы) реализованы через особый шаблонизатор с простым синтаксисом, тот, что Отчасти схож на Smarty. Шаблонизатор по-умолчанию экранирует html символы.

Модели — реализованы с поддержкой стороннего плана — Propel ORM, это довольно вестимая и знаменитая ORM, с помощью миграций, генерацией схем и моделей и нескольких БД — Postgres, MySQL и т.д.

Контроль Качества — Runtime ошибки

PHP динамический язык программирования, а это обозначает, что Зачастую оплошность появляется в момент выполнения. Впрочем, Regenix сумел Отчасти решить эту загвоздку. Во фреймворк встроен анализатор кода, тот, что обнаруживает уйма ошибок еще до выполнения самого кода. Для примера возьмем применение несуществующего класса в use (итог ошибок во фреймворке):

Значимо подметить, что фреймворк находит эти ошибки не в момент выполнения! Проверяются безусловно все исходники плана при всяком открытии страницы (безусловно это происходит в DEV режиме), а также дозволено запустить обзор из CLI. В всеобщем, фреймворк поддерживает следующие типы ошибок:

  • Несуществующие классы — в new, use, доводах функций и способов, в implements, extends и т.д.
  • Проверка на корректность implements и extends
  • Проверка на корректность синтаксиса (parse errors)
  • Проверка на существование статических способов в местах их вызова
  • Соблюдение PSR-0 эталона именовt;head> <title>{get ‘title’}</title> <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″> {deps.asset ‘jquery’} {deps.asset ‘bootstrap’} {html.asset ‘css/main.css’} {html.asset ‘js/main.js’} </head> <body> <h1>{get ‘subTitle’}</h1> <div id=”content”> {content} </div> <div> <a href=”{path ‘Application.index’, _lang: ‘ru’}”>Russian Version</a> / <a href=”{path ‘Application.index’}”>Default Version</a> </div> {debug.info} </body> </html>

    Примерно завершение

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

    Создаем 1-й план

    Маленькая инструкция — как стремительно установить и испробовать фреймворк. На данный момент Regenix дозволено скачать только через git, следственно перед инструкцией его нужно установить. Скопируйте все исходники фреймворка Regenix из репозитария с поддержкой git-bash:

    cd <root_of_your_server>
    git clone https://github.com/dim-s/regenix.git ./
    git submodule init
    git submodule update
    

    Позже этих действий, у вас в папке обязаны появится следующие директории: framework — ядро фреймворка, apps — директория для ваших приложений. Все остальное не так значимо. Фреймворк не требует какой-либо установки. Дальше зайдите через консоль в папку веб сервера и используйте CLI Дабы сделать новейший план из образца:

    cd <root_of_your_server>
    # если вы под unix
    chmod  x install.sh
    ./install.sh
    ####
    
    regenix new
    

    Позже выполнения regenix new появится папка с вашим новым приложением в папке apps, оно будет открываться по адресу localhost/[name].

    Конструкция плана

    Regenix предлагает свою конструкцию приложения, которую не неизменно дозволено изменить. Да, в данном случае фреймворк основнее приложений, и не он встраивается в приложения, а напротив. Это один из основных пунктов в идеологии Regenix.

    Планы находятся в папке /apps/ и всякая новая папка является новым планом. Конструкция плана дальнейшая:

    apps/<appName>/ *
    
    src/* # начальный код приложения
        src/controllers/ # контроллеры
        src/models/ # модели
        src/views/ # представления
        src/* # всякие другие исходники и пакеты
    conf/ # папка с конфигурациями
       conf/application.conf # основной конфигурационный файл
       conf/route # конфигурация для роутинга
       conf/deps.json # изложение зависимостей assets, модулей и composer
       conf/analyzer.conf # конфигурация анализатора начального кода
       conf/orm/* # конфигурации Propel ORM
    assets/ # папка с клиентскими источниками css, js, images
    vendor/ # папка с библиотеками composer
    Bootstrap.php # файл bootstrap с классом Bootstrap, добровольный
    

    Также за пределами папки плана (в root директории) находятся другие директории:

    /public/<appName>/* # папка с upload источниками плана
    /logs/ # папка с логами
    /assets/ # assets зависимости
    /modules/ # модули фреймворка
    

    Завершение

    Это первое публичное освещение данного фреймворка. Сам план еще находится в стадии разработки, у него еще нет своего сайта и полной документации, но 90% задуманных пророческой теснее работают и проверены небольшим временем.

    Приглашаю всех кому понравился фреймворк к участию в плане на Github:https://github.com/dim-s/regenix.

Документация: https://github.com/dim-s/regenix-documentation/

Источник: programmingmaster.ru

 

 

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB