Опять занимаюсь сборкой велосипедов и изобретением колеса (: Да ещё и 5.4-only для большего куража!
Зачем? Практика ООП и всякого такого.
https://github.com/wapmorgan/Wma
Посмотрите, пожурите - пока за код/очевидные ошибки/комментарии/etc.
---###---
Что уже имеется:
1. Загрузчик классов, а собственно: компонентов, модулей, контроллеров.
2. Консольный/браузерный режимы работы
3. Простенький роутер в обоих режимах и rewriter запросов для красотулек.
wapmorgan, придерусь к именам интерфейсов:
Создавая в интерфейсы в именифайла принято явно указывать что это интерфейс с помощью слова Interface.
Надо так:
# файл WmaControllerInterface.php
namespace Wma\Controller;
interface WmaControllerInterface {
}
Это первое что бросилось в глаза
Башка, http://php.net/manual/ru/language.oop5.interfaces.php
Цитата:
"Интерфейсы объявляются так же, как и обычные классы, но с использованием ключевого слова interface."
Это не обязательно, но желательно .
Okula пишет:
"
Надо так:
namespace Wma\Controller;
interface WmaControllerInterface {
} "
"WmaControllerInterface"...
Нах ты тогда нэймспейс объявляешь?
Не нашел ничего об этом если честно. Уже обрадовался что пых занялся стандартизацией (
добавлено спустя 1 минуту:
Diversant, чтобы были )))
Diversant, вопревых это не я так делаю, а wapmorgan
https://github.com/wapmorgan/Wma/blob/master/framework/Wma/Controller/WmaController.php
Без пространства имён было бы:
interface Wma\Controller\WmaControllerInterface {
}
добавлено спустя 1 минуту:
Башка, это лишь пожелание для разработчиков, чтоб сразу было видно что в этом файле находится интерфейс .
Можете лучше
interface IController{
}
с неймспейсом wma?
Окула, я просто там не увидел ни слова о том, что ты говорил про имена. Можешь сюда цитировать?
echo '<div style="background: '.(($message['level'] == \Wma\Log::TRACE) ? '#eeeeee;' : (($message['level'] == \Wma\Log::ERROR) ? '#ff0000;' : '#88ffff;')).'">';
echo '#'.($count_messages - $i).'. ';
echo str_repeat('---', $message['deep'] - 1);
как то уж больно не элегантно, создал бы отдельный обработчик ошибок.
добавлено спустя 2 минуты:
Папку с application я бы лучше хранил отдельно, а не в папке framework, впрочем, это дело каждого.
А так смотреть в принципе не на что, "пустые" файлы и папки
Итак, убрал файлы-пустышки, добавил довольно длинную иерархию:
Wma (загрузка классов) -> Application (управление компонентами) -> Site (управление модулями) -> Module (работа с контроллерами) -> Controller (полезная работа), ибо многоуровневую структуру контроллеров считаю излишней.