PDA

Просмотр полной версии : Liberty Framework (Свой)


Krost
04.03.2009, 15:27
Месяца два назад написал свой фв и выложил в сеть, ожидаемого интереса я не получил. Порекомендовали написать здесь.
В общем вот:

Он написан на PHP, рассчитан на использование под 4, 5 PHP.
Это каркас для создания сайтов-визиток, или крупных проектов вроде социальных сетей.
При создании этого фреймворка был сделан упор на простоту работы с ним, но так, чтобы это не ограничивало его возможностей. Поэтому он подойдёт и новичку, и профессиональному разработчику.
Все компоненты фв выделены как «драйвера». Они полностью заменяемы / изменяемы / отключаемы. Например, при создании сайта-визитки вам не потребуется использование БД, так зачем устанавливать «крупную» цмс, которая будет только нагружать этой возможностью сервер?
В Liberty FW вам достаточно «отключить» этот драйвер и система не будет лишний раз подключать не нужные скрипты и создавать бесполезных соединений с БД. Тем самым фв становится универсальным – вы сами определяете, какие компоненты использовать, а какие нет.
Вы можете подключить свой собственный шаблонизатор, не прикладывая на то особых усилий, и вы будете работать со знакомым вам объектом / функциями.
Вы так же можете использовать различные драйвера для модулей, что позволит использовать модули от других систем управления контентом.
Фреймворк поддерживает «мультисайтовость». На данный момент эта возможность «интегрирована», так как подключает конфиг нужного сайта, планируется создание драйвера.

На текущий момент к нему прилагаются драйвера:

1. Драйвер кеша - поддерживает memcached (на данный момент только один сервер, в будущем планируется поддержка кластеров), в случае отсутствия используется свой драйвер.
2. Драйвер БД – поддерживает одновременную работу с несколькими (разными) серверами, что позволит вам распределить нагрузку. На текущий момент поддерживается только MySQL.
3. Драйвер языковых пакетов – довольно простой драйвер, использует в качестве пакета файл, содержащий сериализованный массив.
4. Драйвер библиотек – подключает файлы (в случае присутствия 3х строгового заголовка – создаёт нужный объект) из определённой директории. Что позволяет не «заморачиваться» с подключением своих библиотек.
5. Драйвер отправки почты – использует почтовые шаблоны, поддерживает SMTP.
6. Драйвер модулей – подключает модули фреймворка. Так же есть подключение «простых» модулей (тут как в случае с библиотеками, файл достаточно поместить в папку модулей и он будет доступен)
7. Драйвер сессий – сессии с использованием системы кэширования. При необходимости в его базовые функции дописываются требуемые запросы к БД / функции.
8. Поддержка шаблонов – простой драйвер, в качестве шаблонов подключает (include) .tpl файлы с php инструкциями.

Планируется:
1. Хуки.
2. Расширение драйверов.
3. Драйвер «интеграции», который позволит использовать фв совместно с форумом, в качестве основной системы управления.
4. Система управления контентом (CMS), с удобной админкой.
5. Создание готовых сборок для различных нужд.

Необходимо:
1. Ознакомление.
2. Поиск багов и узких / неудобных мест.
3. Написание документации (сам возьмусь, но для неё нужны вопросы, которых к сожалению я не получил).

Этот фреймворк предоставляет вам полную свободу действий и выбора, поэтому я и назвал его «свободный» :)

В правилах про линки ничего не нашёл, поэтому - http://liberty-fw.ru , пришлось закрыть от ботов, регившихся на форуме :))
логин - root
пароль - toor

Жду каментаф :D

-Hormold-
04.03.2009, 15:35
Если сайт дырявый, про fw не говорю уже...
Warning: Illegal offset type in isset or empty in /home/www/z89553/htdocs/liberty-fw/includes/drivers/modules/liberty.php on line 85

Krost
04.03.2009, 15:43
поподробнее, не получилось отловить ...

d_x
04.03.2009, 15:46
Warning: setcookie() expects parameter 2 to be string, array given in /home/www/z89553/htdocs/liberty-fw/includes/core/functions.php on line 455
Посмотрел, ничего такого особенного не увидел. Класс работы с mysql, как я понял, не предусматривает мультитабличных запросов.

Думаю, что вряд ли кто будет использовать это для построения сайтов, есть множество готовых проверенных решений)

if (!is_file($cache_file))
{
fwrite(fopen($cache_file, "w"), $this->lfcore->get_include_content($this->files[$handle]));
}
Немного жестковато для серьезного фреймворка)
Файл даже не закрывается? А как же проверка ошибок? И вместо !is_file наверное надо !file_exists..

Krost
04.03.2009, 15:47
затупил.. нашёл ^^

AkyHa_MaTaTa
04.03.2009, 15:52
есть множество готовых проверенных решений)
хорошо документированых,ну или просто документированых и с примерами реализаций.

Krost
04.03.2009, 15:56
Думаю, что вряд ли кто будет использовать это для построения сайтов, есть множество готовых проверенных решений)
хорошо документированых,ну или просто документированых и с примерами реализаций.

Многие "проверенные" решения, по началу тоже были непроверенными :)
А доку и примеры - это бесспорно надо :)

Krost
04.03.2009, 16:04
Немного жестковато для серьезного фреймворка)
Файл даже не закрывается? А как же проверка ошибок? И вместо !is_file наверное надо !file_exists..

Зачем? Ссылка на него уже "умерла", а is_file проверяет файл ли это. file_exists вернёт true и для директории. is_writable добавить конечно стоит :)

AkyHa_MaTaTa
04.03.2009, 16:06
если уж говорить про php5 то наверно надо использовать те приемушества которые она дает в ООП относительно 4 ветки, где элементарный try && catch ?

Krost
04.03.2009, 16:13
если уж говорить про php5 то наверно надо использовать те приемушества которы она дает в ООП относительно 4 ветки, где элементарный try && catch ?

Нету :)
Если уж серьёзно, то стоит(а стоит ли?) сделать несколько версий "ядер", и для разных веток подключать нужные.

AkyHa_MaTaTa
04.03.2009, 16:22
Нету :)
Если уж серьёзно, то стоит(а стоит ли?) сделать несколько версий "ядер", и для разных веток подключать нужные.
Ну так может взять уже и добавить для совместимости и 3 ветку, и сразу и наложить заодно те ограничения какие есть в ней(когда бежишь вперед не стоит все время смотреть назад)? Можешь также подумать о добавлении каких базисных автоматических тестов.

[x26]VOLAND
04.03.2009, 17:00
если уж говорить про php5 то наверно надо использовать те приемушества которые она дает в ООП относительно 4 веткиПрежде чем использовать ООП надо задуматься стоит ли это делать вообще в этом "фреймворке".

-----------------------------------------------------------------------

- Архитектурные проявления стремятся к 0. Никаким моделями и контроллерами не пахнет...
Понатыкано ООП там где не надо.... Наследование вообще не в попад...


GLOBAL $_SERVER;Убило.

- Использование create_function() и eval() = плохой тон + потенциальная брешь в безопасности...

- Шорттеги в шаблоне (пусть и в тестовом) - непродуманно.


Инициатива это конечно хорошо...
Но фреймворк в первую очередь должен задавать чёткую архитектуру и приучать к ней программиста... Так что фреймворком это я назвать не могу.

Krost
04.03.2009, 17:34
"Убило." (^^,)

Есть не только MVC :) Хотя сам с архитектурами плохо знаком.
Стремился к абстрактной фабрике :)

Про плохой тон (create_function и eval) знаком, но другого решения не нашёл.

шорттеги уберу :)

[x26]VOLAND
04.03.2009, 17:46
Есть не только MVC Как прикажешь понимать эту фразу? ) там и mvc нет, не говоря о чём то другом...
Хотя сам с архитектурами плохо знаком.Вот и не надо было лезть в эту "тему"...
Стремился к абстрактной фабрике К чему эта фраза?

Про плохой тон (create_function и eval) знаком, но другого решения не нашёл.Если ты не можешь реализовать тот или иной функционал без eval'a значит ты плохой программист.

Krost
04.03.2009, 18:00
mvc к моделям и контроллерам, а про фабрику - к mvc (^^,)

Вот и не надо было лезть в эту "тему"...
Попробовать-то думаю стоило :)


Спс, я и шёл на форум за такими ответами :)

nerezus
04.03.2009, 18:02
Согласен со всем кроме шорттегов.
Шорттеги - это удобно, а минусов нет. А кто их отключает - ССЗБ.

[x26]VOLAND
04.03.2009, 18:16
а про фабрику - к mvc Фабрика - ООП-паттерн. MVC - архитектурный паттерн. Никакой взаимосвязи.