Показать сообщение отдельно
  #1 (permalink)  
Старый 23.07.2015, 19:33
Новичок на форуме
Отправить личное сообщение для alexismaster Посмотреть профиль Найти все сообщения от alexismaster
 
Регистрация: 23.07.2015
Сообщений: 4

Nirvana - Мой PHP Фреймворк
Решил собрать старые черновики в кучу и за одно вспомнить 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

Код:
/orm-update/
Страница при переходе на которую происходит обновление БД в соответствии с имеющимися сущностями(моделями)




Сейчас в папке SRC (код приложения) есть несколько контроллеров реализующих простенький бложек с комментариями и заготовка модуля под форум. В дальнейшем я планирую выделить это в отдельную ветку чтобы можно было мержить её по желанию.



++++++++++++++++++++
у проекта появился домен в течении пары недель перевезу всё на виртуалку и дам ссылку

Последний раз редактировалось alexismaster, 24.07.2015 в 11:16.
Ответить с цитированием