Решил собрать старые черновики в кучу и за одно вспомнить PHP т.к. начал его забывать.
Всем кто решит попробовать мою поделку обещаю помощь. Буду рад любой активности на github. Участие в разработке могут принять все желающие. Основное требование: лёгкость и простота. Я не хочу перегружать его всякими парсерами YAML конфигов, кешированием, "публикацией ресурсов". Т.е. всё то с чем я намучался в других фреймворках. Не спорю, мб это всё не так плохо.
Пока не готова даже bata-версия, по этому даю ссылку на ветку
develop
Проблемы которые вы можете попытаться помочь мне решить:
- фреймворк не проверен под виндой и на апаче. не уверен что .htaccess кореектный
- не плохо бы настроить vagrant и закоммитить конфиг (уж очень это сейчас популярно)
- ORM очень сырая. чуть позже я попытаюсь доработать её и сделать код более понятным
- нужно прикрутить Composer и настроить автозагрузку. если конечно вообще возможно сделать универсальной автозагрузку для всего что устанавливается через Composer. возможно стоит рассмотреть другие менеджеры зависимости
- CLI..... нужно сделать хотя бы примитивный кодогенератор. за источник вдохновения лучше взять аналог из симфони. ибо там тоже Twig для этого используется как и у меня.
- юнит тесты....
По всем вопросам пишите на alexismaster@lenta.ru
Чуть позже добавлю небольшой "Quick Start" для разработчиков.
+++++++++++++++++++++++++++++
Обещанный Quick Start:
1. Копируем
Код:
|
git clone https://github.com/alexismaster/nirvana.git |
2. Переходим в ветку develop
Код:
|
git checkout develop |
3. Настраиваем DOCUMENT_ROOT на папку public. htaccess уже есть, должен работать, пример конфига nginx в коре репозитория.
4. По умолчанию фреймворк использует конфиг
dev.config.php
public/index.php:
Код:
|
Nirvana\MVC\Application::init(require 'src/config/dev.config.php')->run($debugMode); |
5. Теперь о самом конфиге
return array(
// Настройки подключения к СУБД
'DB' => array(
'MYSQL_HOST' => 'localhost',
'MYSQL_USER' => 'root',
'MYSQL_PASS' => '13271327',
'MYSQL_BASE' => 'viliot',
'TABLE_PREF' => '', // Префикс таблиц
),
// Настройки маршрутизатора
'ROUTER' => array_merge(
require('_routes_.php'),
require(__DIR__ . '/../modules/SampleForumModule/config/_routes_.php'),
array(
'orm-update' => array('url' => '/orm-update/', 'controller' => 'Default', 'action' => 'orm'),
)
)
);
С базой данных я думаю всё понятно.
Код:
|
require('_routes_.php'), |
это роуты основного приложения
Код:
|
require(__DIR__ . '/../modules/SampleForumModule/config/_routes_.php'), |
это роуты модуля SampleForumModule
Страница при переходе на которую происходит обновление БД в соответствии с имеющимися сущностями(моделями)
Сейчас в папке SRC (код приложения) есть несколько контроллеров реализующих простенький бложек с комментариями и заготовка модуля под форум. В дальнейшем я планирую выделить это в отдельную ветку чтобы можно было мержить её по желанию.
++++++++++++++++++++
у проекта появился домен
в течении пары недель перевезу всё на виртуалку и дам ссылку