[Ссылки могут видеть только зарегистрированные пользователи. ]

Всем привет! Представляю вам Agels.Core. Ядро для вашего проекта. В данный момент эта версия находится на альфа тестировании, но всё же несмотря на это, я решил поделится с вами. Итак, чем же круто это ядро?
1. Система расширений.
Тут система расширений устраена так, что одно расширение может полностью изменить структуру ядра. Есть возможность переопределять классы модуля ядра, и т.д. Это соответственно расширяет возможности расширений.

2. Система стилей.
Как гласит народ, самый лучший шаблонизатор для PHP, это и есть PHP. Я полностью согласен с данными словами, т.к нагружать сервер ещё, на парсинг кода, для больших проектов, я думаю это нелепо. Но всё же модель MVC при этом, не нарушилась.

3. Динамическая загрузка модулей.
Модули в системе Agels.Core загружаются только тогда, когда они действительно необходимы. Думаю незачем забивать память, ненужными модулями. Также вы можете "подгружать", эти самые модули в нужный момент.

4. Динамическая загрузка расширений
Расширения в системе Agels.Core загружаются, также. То есть, только тогда, когда это действительно надо. Вы также можете подгружать расширения в нужный вам момент. Такая система улучшает производительность.

5. Кэширование
Как и во всех нормальных движках, в системе Agels.Core есть своя система кэширования. Кэширование может производиться как и файловое, так и через сервер MEMCACHE. Также поддерживается GZIP сжатие кэша.

6. Возможность переопределения классов.
Вообще в PHP нельзя переопределять(перегружать) классы, но в системе Agels.Core это можно. Благодаря данному аспекту, расширения могут изменять всю структуру ядра.

7. "Реестр" Agels.Core
Также, тут есть свой файловый "реестр", где хранятся данные, ведь иногдаоптимальнее, если данные будут хранится непосредственно в файле, чем в базе.


Вот эти 7 главных аспектов Agels.Core.

Немножко о проекте
Разработка Agels.Core больше всего направлена на создание ядра, которое можно использовать в качестве основы, для огромное проекта, с большой нагрузкой. В данный момент официального сайта у проекта нет, т.к он ещё находится в альфа тестировании.

Если вы нашли баг, или уязвимость, или ошибку в системе Agels.Core, то я вас искренне прошу написать о вашем баге вот сюда:
[Ссылки могут видеть только зарегистрированные пользователи. ]


Немножко о ядре

В ядре есть 12 модулей, которые составляют в общем-то и всё ядро. Если вы хотите создать свою страницу, то вы должны зарегистрировать сначала её в базе, а потом писать сам код страницы, пример:
PHP Code:
  1.  
  2. <?php
  3. [Ссылки могут видеть только зарегистрированные пользователи. ]('AGELSCORE', true); // Объявляем что мы запускаемся откуда надо
  4. require('core/agels.core.php'); // Подключаем ядро
  5.  
  6. $ACore::Load(); // Загружаем ядро
  7.  
  8. $AExtensions::Load(); // Загружаем расширения. Если этого не сделать, то расширения просто не будут загружены
  9.  
  10. $mypage = new $APage; // Создаем страницу, алсо экземпляр класса APage.
  11. $mypage->Load('название страницы, которая зарегистрированна в базе');
  12. $mypage->BeginOut(); // Говорим, что сейчас идёт вывод.
  13.  
  14. echo 'Hello, World!';
  15.  
  16. $mypage->EndOut(); // Говорим что вывод закончился
  17. $mypage->Show(); // Отображаем страницу пользователю
  18. ?>


Вы меня спросите, а зачем название класса делать как переменную, на что я вам отвечу:
В этом то и заключается особенность переопределения классов, объясню на коде:
PHP Code:
  1.  
  2. <?php
  3.  
  4. class A {
  5. static function Foo() {
  6.      echo 'From A';
  7. }
  8. }
  9.  
  10. $A = 'A';
  11.  
  12. $A::Foo(); // Выведет From A
  13.  
  14. class B {
  15. static function Foo() {
  16.      echo 'From B';
  17. }
  18. }
  19.  
  20. //Переопределяем класс
  21. $A = 'B';
  22.  
  23. $A::Foo(); // Выведет From B
  24. ?>


Скажем, что класс B это у нас некая библиотека, которая расширяет возможности системы. И я вам настоятельно рекомендую использовать именно по такому стандарту, к обращении классам, трейтам и т.д.


В комплекте Agels.Core, идёт инсталлятор, и пакет инструментов для разработчиков.


Немного истории

Пишу этот движок, я уже с 2009 года. Вы скажете почему так долго? Каждый раз я переписывал весь движок, если что-то шло не так. Но эта версия, по моему мнению, достойна выйти на просторы интернетов.


Если у вас есть какие-либо вопросы, или предложения, то пишите прямо сюда.



Скачать само ядро, а также документацию к нему можно по этим ссылкам:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]


Вообще, как вы думаете по поводу архитектуры, реализации?

UPD: Завтра выложу русскую документацию.