И еще. Распишите подробнее, каковы функции президента и министров. Как я понял, Президент — главный модератор, а министры — модераторы в рамках министерств, которые являются как бы аналогом блогов Хабра. Правильно? Что такое «Законы»? Раздел пока пуст.
То бишь, и свою стереги и чужих оплодотворяй. Не 100%, но хоть кто-то да выживет, а это в свою очередь даст большее генетическое разнообразие твоего потомства. Вдруг у твоей текущей партнерши врожденное генетическое заболевание.
Так что больше шансов размножится у самцов, которые стерегут свою самку и потомство, а не рыскают в поисках случайных связей.
Ну автор ведь написал примерно то же самое, только с добавкой:
Причем, заметим, ревность и подозрительность мужчины никак не коррелируют с его собственной супружеской верностью — эволюционно выгодно одновременно быть ревнивым и изменять жене направо и налево!
Ну, исходник там приведен. Мне кажется все довольно очевидно — вызывается компиляция шаблона. Кстати, изначально я дал ссылку на устаревшую версию. Вот обновленная
Если действительно ставилась цель написать вызов фреймворка в одну строчку, то вместо неочевидных фишечек с auto_prepend_file и auto_append_file лучше было бы добавить в Application::run() параметр Request.
Тогда вызов бы свелся к следующему коду:
Ну, как бы такое поведение ПХП совсем неочевидно, и не факт, что это не баг, и оно сохранится в следующих версиях.
Вообще, как насчет залить на github? Так проще смотреть.
А зачем у тебя свойства класса объявлены публичными? Сокрытие свойств не реализовано. А если я в коде напишу $request->callback = 'ololo'. Будет fatal error. Лучше ведь сделать getCallback/setCallback, в котором проверять is_callable и бросать исключение — его по крайней мере проще отлавливать.
Вот же ж жесть. Я только что открыл для себя новое в ПХП. Оказывается, что приватные методы класса можно вызывать из уже созданного объекта, если вызов происходит в контексте класса (статический метод). Автор, признавайся, откуда это узнал и главное — зачем так сделал?
class Application
{
private function i_run()
{
....
}
public static function run()
{
return Application::getInstance()->i_run();
}
}
Еще я не понял зачем в конструкторе Request нужна строчка:
global $application;
И зачем свойства класса объявлены как public? Лучше используй getters/setters. __construct в классе Application вообще какой-то страшный. Ты, наверное пытался реализовать Singleton, но он реализуется совсем не так.
Ну автор ведь написал примерно то же самое, только с добавкой:
Это не аргумент «против» — это просто сравнительный тест. Взял doT для текущего проектика — доволен.
Кроме того, конкретно этот момент я бы сделал так:
Тогда если параметр callback не передан, то ничего выполняться не будет.
Тогда вызов бы свелся к следующему коду:
Конечно для этого нужно будет изменить метод run класса Request и возвращать из него this.
Вообще, как насчет залить на github? Так проще смотреть.
И зачем свойства класса объявлены как public? Лучше используй getters/setters. __construct в классе Application вообще какой-то страшный. Ты, наверное пытался реализовать Singleton, но он реализуется совсем не так.