Agels.Core v1.05a -- Ядро для сайтов

Maalik Nurlanovic

Новичок

Всем привет! Представляю вам 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, то я вас искренне прошу написать о вашем баге вот сюда:
http://nurlanovic.com/agels/report

Само ядро распространяется по лицензии GNU/GPLv3, и всегда останется свободной.

В ядре есть 12 модулей, которые составляют в общем-то и всё ядро. Если вы хотите создать свою страницу, то вы должны зарегистрировать сначала её в базе, а потом писать сам код страницы, пример:
PHP код:
PHP:
<?php 
define('AGELSCORE', true); // Объявляем что мы запускаемся откуда надо 
require('core/agels.core.php'); // Подключаем ядро 

$ACore::Load(); // Загружаем ядро 

$AExtensions::Load(); // Загружаем расширения. Если этого не сделать, то расширения просто не будут загружены 

$mypage = new $APage; // Создаем страницу, алсо экземпляр класса APage. 
$mypage->Load('название страницы, которая зарегистрированна в базе'); 
$mypage->BeginOut(); // Говорим, что сейчас идёт вывод. 

echo 'Hello, World!'; 

$mypage->EndOut(); // Говорим что вывод закончился 
$mypage->Show(); // Отображаем страницу пользователю 
?>
Вы меня спросите, а зачем название класса делать как переменную, на что я вам отвечу:
В этом то и заключается особенность переопределения классов, объясню на коде:
PHP код:
PHP:
<?php 

class A { 
static function Foo() { 
     echo 'From A'; 
} 
} 

$A = 'A'; 

$A::Foo(); // Выведет From A 

class B { 
static function Foo() { 
     echo 'From B'; 
} 
}

//Переопределяем класс 
$A = 'B'; 

$A::Foo(); // Выведет From B 
?>
Скажем, что класс B это у нас некая библиотека, которая расширяет возможности системы. И я вам настоятельно рекомендую использовать именно по такому стандарту, к обращении классам, трейтам и т.д.


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

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

Скачать ядро вы можете по ссылке:
http://nurlanovic.com/agels/Agels.Core_v1.05a_AlphaVersion.rar

Скачать документацию можно тут:
http://nurlanovic.com/agels/Agels.Core_v1.05a_documentation.rar

Коды ошибок в Agels.Core:
http://nurlanovic.com/agels/errcode.txt

Онлайн документация:
http://nurlanovic.com/agels/help

---
Проект находится на альфа тестировании, в нём могут присутствовать ошибки. Также пока-что у этого проекта нет официального сайта. И у меня к вам вопрос товарищи, каково ваше мнение об архитектуре, реализации? Достойна ли такая архитектура огромных проектов?

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

Ragazzo

TDD interested
Github only для начала, т.к. качать архив слишком много усилий. Ну и
PHP:
$ACore::Load();
:D есть еще конфу покруче через $$.
 

Andkorol

Новичок
Github?
Bitbucket?
Это ж гораздо удобнее для представления проекта – чем "скачать ядро" .... "скачать документацию".
 

Maalik Nurlanovic

Новичок
Ну не закидывал я на гитхаб, потому-что проект как бы, только-только вышел. И хотелось бы для начала послушать мнения других, по поводу архитектуры и т.п. А на бета версии уже сделаю полностью документацию и т.д...
 

С.

Продвинутый новичок
1. Система расширений.
Тут система расширений устраена так, что одно расширение может полностью изменить структуру ядра. Есть возможность переопределять классы модуля ядра, и т.д. Это соответственно расширяет возможности расширений.
Это называется не расширения, а хаки. Ни один нормальный прогарммист, вляпавшийся в такое в каком-нибудь там phpBB, никогда более трогать их руками не будет.
2. Система стилей.
Как гласит народ, самый лучший шаблонизатор для PHP, это и есть PHP. Я полностью согласен с данными словами, т.к нагружать сервер ещё, на парсинг кода, для больших проектов, я думаю это нелепо. Но всё же модель MVC при этом, не нарушилась.
А почему этот пункт называется стили?
3. Динамическая загрузка модулей.
Модули в системе Agels.Core загружаются только тогда, когда они действительно необходимы. Думаю незачем забивать память, ненужными модулями. Также вы можете "подгружать", эти самые модули в нужный момент.
Это не преимущество, а естетсвенная фича любого веб-приложения.
Вот эти 7 главных аспектов Agels.Core.
Хиловатые какие-то аспекты, высосанные из пальца.
Если вы хотите создать свою страницу, то вы должны зарегистрировать сначала её в базе, а потом писать сам код страницы
А справку от участкового не надо? Просто код я написать уже не могу, надо сначала его "зарегестрировать". Что за любовь к бюрократии?
Вы меня спросите, а зачем название класса делать как переменную, на что я вам отвечу:
После этой фразы, боюсь я уже ничего спрашивать не буду.
 

Maalik Nurlanovic

Новичок
Это называется не расширения, а хаки. Ни один нормальный прогарммист, вляпавшийся в такое в каком-нибудь там phpBB, никогда более трогать их руками не будет.

А почему этот пункт называется стили?

Это не преимущество, а естетсвенная фича любого веб-приложения.

Хиловатые какие-то аспекты, высосанные из пальца.

А справку от участкового не надо? Просто код я написать уже не могу, надо сначала его "зарегестрировать". Что за любовь к бюрократии?

После этой фразы, боюсь я уже ничего спрашивать не буду.
Отлично троллите товарищ)) зачёт!))
 

Maalik Nurlanovic

Новичок
С., Но всё же я учту вашу критику и в следующем релизе, посторяюсь угодить вам, если конечно же вы не против.
 

Andkorol

Новичок
После этой фразы, боюсь я уже ничего спрашивать не буду.
Maalik Nurlanovic
Новичок, Мужской, 17
Обычный "школьный" велик – они почти все такие.
Ничего – научится, если не бросит это дело и способен внимать здравой и объективной критике без юношеских понтов.
Главное – научиться скромности, и перестать каждую свою поделку пиарить, как нечто невообразимо крутое и значимое.
Особенно здесь... :D
 
  • Like
Реакции: WMix

Maalik Nurlanovic

Новичок
Обычный "школьный" велик – они почти все такие.
Ничего – научится, если не бросит это дело и способен внимать здравой и объективной критике без юношеских понтов.
Главное – научиться скромности, и перестать каждую свою поделку пиарить, как нечто невообразимо крутое и значимое.
Особенно здесь... :D
Эх... Не мне вам говорить конечно, но не в цифрах возраст весь записан... Всё же, огромное спасибо всем, за критику... Многому чего меня такого "Школьника" научили...
 

С.

Продвинутый новичок
Замечу, что потенциал у парня (не движка, прости господи) есть.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
А на бета версии уже сделаю полностью документацию и т.д...
Опытные люди знают, что код делится на два вида — документация к которому написана до кода, и у код, у которого документации нет.
 

WMix

герр M:)ller
Партнер клуба
код ужастен, если чесно, но для 17 лет амбиции нормальные... извени я одним глазком на код глянул, никомк не посоветую,.. но продолжай, не ошибается тот кто не работает
 

Maalik Nurlanovic

Новичок
код ужастен, если чесно, но для 17 лет амбиции нормальные... извени я одним глазком на код глянул, никомк не посоветую,.. но продолжай, не ошибается тот кто не работает
Ну что ж. Я код пишу не для себя, а для всех, следовательно буду делать, так чтобы мне не было стыдно за свой код. А по поводу текущей версии, признаю: я поторопился и выложил раньше времени. В этом и заключается моя ошибка. Теперь истинно понимаю народную пословицу: "Поспешишь, людей насмешишь".

Просто, мне так и не понятно. Почему мой код ужасен? Думаю, если опишите причину, то я естественно буду работать над устранением этого недуга.
 

Maalik Nurlanovic

Новичок
WMix, исходя из этого, получается что мой код лажа, только потому, что нет никакой связи, между этими классами? Или я вас неправильно понял?
 

WMix

герр M:)ller
Партнер клуба
я не могу описать то что я чувствую глядя на эту унылую картинку, .... глядя на внутренности я понимаю что там ничего не написанно, тоесть совсем ничего,... видно что ты начал понимать смысл некоторых слов, но я, и это только про меня, ищу нечто другое, никому не нужную абстракцию для решение повседневных проблем... я не совсем понимаю о какой из проблем написанно у тебя...
 

Maalik Nurlanovic

Новичок
Просто так и задумано, чтобы в "абстракции", было минимальное количество функций, трейтов, классов и т.д. Это делается в силу того, чтобы в ядре присутствовали, только необходимые функции и классы, примером послужит класс БД, кэш и т.д. Если я начну вставлять такие, "ненужные" функции, как RSS/ATOM, то я считаю что уже такое ядро, действительно будет являться говнокодом, относительно хайлоада. Поэтому я реализовал только те функции, которые действительно имеют значение в построении сайтов, сервисов с высокой нагрузкой на сервер. Как видите в кэше присутствует возможность, кэширования через memcached сервер, что я посчитал нужным для ядра, которое будет использованно, в качестве основы, для проектов с высокой нагрузкой.
 
Сверху