Доброго времени суток! Если вы php/js программист, которому нравится Yii Framework и который хочет куда-то дальше развиваться, то вероятно вам будет интересно моё предложение.
Предисловие
Примерно год назад мне довелось менять архитектуру одного большого legacy php проекта, который имел проблемы с нагрузками и архитектурой. Было решено его нагруженные части переписать на nodejs. Поскольку я поклонник yii фреймворка, то создавая велосипед я многие идеи брал из yii.
Тогда и появилась идея сделать порт Yii фреймворка на javascript.
PHP фреймворк -> JavaScript?
Конечно в таком подходе всплывает не мало проблем: асинхронность языка, ограничения браузеров, жизненный цикл приложения и т.д. Но как оказалось, все проблемы вполне решаемы.
Более того, я ставил перед собой сделать фреймворк, работающий как на node js, так и в браузере.
Что есть сейчас?
Проделано уже много работы.
Посмотреть можно на гитхабе. Базовый функционал Yii фреймворка уже сделан в первом приведении и используется в вышеупомянутом проекте. Вот что уже есть:
- Базовые сущности: Объект, Компонент, Модуль, Приложение, Модель, ..
- Модели, поддерживающие схемы, валидаторы, ошибки
- Основные валидаторы: boolean, compare, date, default, double, email, filter, in (range), integer, match, number, required, safe, string, url
- Active Record для Redis
- Контроллеры и экшены
- UrlManager (парсинг роутеров, 1 в 1 поддерживающий синтаксис Yii2)
- Yii::$aliases
- Рендеринг шаблонов и лейаутов (шаблонизатор - underscore)
Всё это работает как в браузере, так и в хроме. Весь API и структура максимально приближены (по возможности) к Yii2. Так же написаны тесты для моделей, валидаторов, алиасов, парсинга роутов.
Посмотреть примеры кода можно в
тестах и
примере приложенияЧто ещё нужно и зачем тебе сообщество?
Yii очень большой, поэтому перенимать оттуда можно ещё много чего - моих рук не хватит. В первую очередь это:
- Bulder запросов и Active Record для SQL
- Виджеты
- REST API
- Mail
- Различные хелперы
- и т.д.
А так же нужен всегда объективный взгляд на принимаемые архитектурные решения.
Какие преимущества есть/будут перед Meteor/Derby/..?
- Низкий порог вхождения. Как минимум для тех, кто знаком с yii
- Наследуемые от Yii: простота, расширяемость, ..
- Возможность использования любых других библиотек (уже сейчас Jii использует lodash, jquery, express, ..).
PS: Буду рад услышать ваши мнения/идеи/предложения!