Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Самопис для форума [3]
Форумы портала PHP.SU » Разное » Колонка администратора » Самопис для форума

Страниц (14): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
 

31. DeepVarvar - 17 Декабря, 2014 - 00:50:09 - перейти к сообщению
Bio man пишет:
почему бы не взять Yii2 за основу?
да-да, ларавелб, симфони, зенд... Что там еще есть?
Знаешь почему я вообще подумал о не-FW?

Я три-четыре дня назад поставил симфони потыкать палочкой, именно для самописа.
Скажи мне, какого хрена она в дефолте на "HelloWorld" схавала у меня 20 метров памяти?
И это не сделав ни единого запроса в БД, просто выведя в контроллере фразу "Привет мир".
А что будет дальше?

Не, постой, ты же про юии. Ну давай посмотрим. Да, я первый юии показываю.
Я просто с ним работал. Но после такого, передо мной они ни в жисть не "отмоются".

1) https://github[dot]com/yiisoft/yii/b[dot][dot][dot]work/yiilite.php
Оппа, лайт-версия ведра. Ага, 10 тыщ с лишним строк в одном файле, куча классов и интерфесов, а PSR аж во все щели.
2) Не могу найти сейчас, претензия касается импорта, ну что-то типа Yii::import('/a/b/c/*') т.е. подгружают все, даже если нужно не все. И таких подгрузок в одном файлике может быть с десятка два.

Лениво продолжать дальше, ато будет не ответ на твой комментарий, а статья про то какое юии гавно.
И ты уверен что оно, даже в версии 2 не будет делать нашим головам бобо? Не будет жрать по 20 метров памяти на "HelloWorld"?
Кстати полистал вторую версию по быстрому щас - такое ощущение что они с моего двигла много сперли ))
Не, ну может так совпало, но я потыкал файлов штук 10 на гитхабе.

ZF, ребята, ZF..
Я бугуртил на симфони. Почему? Зендяра кушает в дефолте и без кешей на "HelloWorld" всего два метра.
Но вы ж его боитесь. Я даже больше скажу (и это не только мое мнение). 95% крикуш этого форума, слышали о том что ZF жирный, и даже не пробовали на нем песать.

Я вот что скажу.
Все эти ваши ФВ - это продукты пеара. Вас разводят как котят.
Реально вменяемый из всех - зенд.
Но он антизапеарен вон теми, о которых было выше.

И чего?
Вот смотрите.
Если бы кто-то из тут присутствующих кроме меня смог за эти годы начать репо, добиться аудиенции у папы, расшевелить народ, написать код...
(да, был евген, который смог, мы даже ковырялись, кстати у него двигло на зенде)
Далее понятно, да?
Тогда я был бы рад принять любое из технологий, решений, самописов, которую этот кто-то предложил.
А на деле, я чесслово, не вижу никаких телодвижений от чьего-то первого лица.
Кроме комментариев.

И вообще ты (уже не лично ты, как биоман, теперь ака все, кто читает), чего ты застремался моего велика?
Ты вообще в код заглянул?
Или пеар сделал с тобой свое черное дело и ты поверил ему на слово, что очередной велик === обязательно гавно?
А я все еще жду критики.
Хоть какой-то.
Хоть один вопросик по архитектуре.
Но по этой теме - тишина.
Варианта два - либо все устраивает, либо всем насрать. Не верю что первое, не мог я не допустить ошибки ))
Я ж не только для себя любимого все это делал и делаю.
Идите в репо, изучайте.
32. Bio man - 17 Декабря, 2014 - 02:32:15 - перейти к сообщению
DeepVarvar пишет:
Скажи мне, какого хрена она в дефолте на "HelloWorld" схавала у меня 20 метров памяти?
Без понятия.
DeepVarvar пишет:
1) https://github[dot]com/yiisoft/yii/b[dot][dot][dot]work/yiilite.php
Оппа, лайт-версия ведра. Ага, 10 тыщ с лишним строк в одном файле, куча классов и интерфесов, а PSR аж во все щели.
Так не используй. А если и не используешь(использовал), так зачем об этом беспокоиться? Тем более, в Yii2 вроде бы и нету этой херни.
DeepVarvar пишет:
2) Не могу найти сейчас, претензия касается импорта
Импорт так и остался в 1 версии, я же предлагаю вторую.
DeepVarvar пишет:
Лениво продолжать дальше, ато будет не ответ на твой комментарий, а статья про то какое юии гавно.
Первый юи не лишён недостатков, но во второй версии нету детских болезней первой версии
DeepVarvar пишет:
И ты уверен что оно, даже в версии 2 не будет делать нашим головам бобо?
Тысячам разработчиков юи приносит только радость Радость Только если использовать юи не по назначению (сложно сходу представить ситуацию, в которой нельзя применить юи) то скорее всего будет бобо. С задачей форума справиться уж точно.
DeepVarvar пишет:
Не будет жрать по 20 метров памяти на "HelloWorld"?
Конечно нет. Завтра замерю на basic шаблоне и на advanced. Мега 2 может и скушает.
DeepVarvar пишет:
такое ощущение что они с моего двигла много сперли ))
Ну... просто в юи применены лучшие практики. И я рад, что и ты на верном пути Подмигивание
DeepVarvar пишет:
ZF, ребята, ZF..
Почему не ЗФ? В нём уровень вхождения, мягко говоря, великоват. На Yii2 пару недель и вник, а на ЗФ точно больше.
На Yii2 сможет писать каждый мидл пэхэпэшник, на ЗФ - сомневаюсь.. писать та сможет, но насколько качественно?!
DeepVarvar пишет:
95% крикуш этого форума, слышали о том что ZF жирный, и даже не пробовали на нем песать.
Ну тут ты прав, всё по наслышкам и догадкам



Я понимаю, что ты тут решающий, и Yii2 нам не видать. Но! Почему самопис? Почему не зенд? Я предложил Yii2 по той причине, что с форумом он справиться очень хорошо, и незачем тревожить зенд, всё же зенд для крупных проектов.
Зачем делать ошибки, которые решены во ФВ? Или пЕсать решения, которые решены во ФВ?

DeepVarvar пишет:
Хоть один вопросик по архитектуре.
Есть один. Расскажи почему i18n реализован именно так? Интересует перевод сообщений.
Возможно это пиар юи за меня говорит, но мне кажется данный подход не очень классным. Переводить по ключу? Боже упаси. А если предложение состоит из 20 слов, получается, ключ должен быть примерно такой же длины?

На сегодня всё, пора спать
33. DeepVarvar - 17 Декабря, 2014 - 03:14:33 - перейти к сообщению
Bio man пишет:
Почему самопис? Почему не зенд?
Почему не зенд, ты сам ответил. Самопис - полюбому будет быстрее и легче чем любой ФВ. Блин, да у меня жи все вопросы в двиге по сути решены. Вон, какеры ломали не сломали. Все базовые компоненты есть.
Bio man пишет:
Расскажи почему i18n реализован именно так? Интересует перевод сообщений.
Возможно это пиар юи за меня говорит, но мне кажется данный подход не очень классным. Переводить по ключу? Боже упаси. А если предложение состоит из 20 слов, получается, ключ должен быть примерно такой же длины?

Во первых - система за тебя не будет подгружать файлы локалей. Т.е. ты сам будешь её просить, вот этот и вот тот пожалуйста. Это таки дает минимум полуметровый скидон от пожиралова памяти.

Во вторых - нет, не надо писать длиннющие ключи. Имена ключей ты определяешь сам, а значением может быть хоть война и мир. Единственное что - ты должен указывать префикс ключа ака имя языкового компонента, ну это чтоб они не конфликтовали меж собой, и было видно по префиксу чей это ключ, например как сейчас в репо есть: exception_error_404 и если ты пишешь что-то свое, и тебе нужен языковой компонент, пусть будет test, то создаешь в папке языка файлик test.lang.php и все ключики в нем префиксишь через test_ и юзаешь в своем нужном месте.

В третьих - вообще думаю оформить локали в виде классов, тогда их еще и автолоадом подцепит. Да еще и плюрал/спринтф можно прикрутить сразу искаропки, наследуя эти локали от какого-то основного классика локали, а еще и от префиксов избавит в описании. Правда в таком случае вывод будет выглядеть как-тотак: <?=View::$language->componentName->phraseKey?> или так: <?=View::$language->componentName->plural(33, 'users')?>
34. Мелкий - 17 Декабря, 2014 - 10:22:16 - перейти к сообщению
RomAndry пишет:
Что у нас с кешированием?

А зачем? Кеширование или делается сразу архитектурно - тогда привет в обязательные зависимости кастомная настройка nginx и установка memcache - или же добавляется впоследствии для тех мест, где это реально требуется.
RomAndry, к тебе вопрос: есть какие-то цифры, как между собой соотносится число просмотров страниц между зарегистрированными пользователями и анонимными?
Порыться в сторону кеширования всех страниц на nginx для анонимных пользователей с проверкой по авторизационной куке.

DeepVarvar, впечатления по мере просмотра
misc/main-EXAMPLE.json - default_description и ключевики - выкинуть. Лучше чтобы их не было вообще, чем одинаковые.
cookie_expires_time, спасибо, поржал. А чего не 10 лет?
db.slave - должен быть массивом. Слейвов может быть много.
application/logs/non-empty-dir.t xt - обычно же .gitignore пустой кладут.
application/core/ мне не понравилось всё в куче и без NS.
ClassUtils::isCallableMethod нафига?
DBC - чтобы постоянно не писать fetch(PDO::что-то там) имеет смысл поставить глобально PDO::ATTR_DEFAULT_FETCH_MODE
Ну и довольно по-дурацки выглядит требование StdClass $params, только затем, чтобы привести к массиву. Ну и вообще запись в переменную, пришедшую параметром - расходится с идеями чистого кода. Переданные параметры должны быть read-only.
Logger - мне очень не нравится exit при проблемах. Мне кажется инициировать fatal error неперехваченным исключением будет честнее.
front-controller для 5.2 написан был?


Отдельным текстом по БД, как моя любимая тема:
Останавливаемся на mysql?
группы: PK bigint? не слишком ли много? name -> varchar. Char здесь только вреден.
groups_permissions без PK - это очень плохо для innodb, будет создан внутренний PK, счастья не добавляющий. PK на оба поля.
member. а, ты varchar вообще не любишь? email - unique key, login - аналогично, status - что это? Или заменить имя или сделать enum. last_ip - расширить, пора бы уже ipv6 предусматривать, 2014 год как-никак.
Добавить FK.
35. MiksIr - 17 Декабря, 2014 - 10:28:55 - перейти к сообщению
Bio man пишет:
Я понимаю, что ты тут решающий, и Yii2 нам не видать. Но! Почему самопис?

Потому что ему так хочется, а остальным пофиг. Арешает обычно не самый умный, а самый громкий ;)
Ну и вообще у любого фреймворка есть фатальный недостаток.
DeepVarvar пишет:
Хоть один вопросик по архитектуре.
Идите в репо, изучайте.

Там нет архитектуры. Какой-то набор полупустых классов обильно пересыпанных статикой.
36. Ihor - 17 Декабря, 2014 - 10:59:04 - перейти к сообщению
какие громкие слова Недовольство, огорчение и главное так нервно вдруг. откуда стока ненависти и нелюбви к чужим трудам? во всем видишь подвох? раслабся. Какой нафиг пиар? в чем ? где?
Взять к примеру SMF - проект развивался хер знает сколько лет инет сообществом, каждый допиливал каждый участвовал, в итоге продукт откатывался сотнями и доводился до ума, а колво тестов проведено и попыток взлома.. понимаешь вообще принцип опен-соурса? чтобы твой продукт хотябы на 10% был близок к SMF сколько сил труда и времени тебе нужно будет? или ты вот такой вот самородок взял и вдруг с нуля написал код без дыр, без потерь , и др. банальних ошибок ? неверю!!! все это делают, почему и было предложение взять за основу чтото уже откатанное и не повторять чужих ошибок. А тут сразу такие возмущения и обвинения в пиаре и еще бег весь в чем.
Мнеб былоб пофиг есиб не увидел такой странного тона и таких слов.

P.S. просишь показать пальцем и не ныть? да без проблем.. вот с ходу открыв первый же соурс [ core / App.php ]
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  function getConfig
  3. ...
  4. _loadConfig
  5. ...
  6. 249  _loadJsonFile
  7. ....
  8. 269         $patterns = array('~/\*.+?\*/~s', '~\s+?//.+\r?\n~');
  9. 270         $fileData = preg_replace($patterns, '', file_get_contents($filePath));
  10. 271         return json_decode($fileData, false);
  11.  


Белый флаг и ты ругаешь другие FW когда делаешь такие ходы?
Ответь зачем?!! вот зачем? динамический конфиг с парсингом ? я понимаю ЧЫСТО КРАСЫВО.. но блин смысл? на каждого юзвера, на каждый запрос, дергать файловую систему и парсинг с регуляркой ? а просто статикой конфиг в инклуде уже не формат ? Ты вот реально напомнил массу кодерво которые на волне моды начали пихать везде ajax бо это модно даже туда где он нафиг был нужен, вот и твой json конфиг для php форума ну блин самолету гусеницы - а вдруг пригодятся

также колосальное колво работы с массивами, переборами, объединениями и т.д. тучу динамики с стесно навернуто все через массивы, со временем это будет 99% кода по работе с массивами. На будущее - если ты не вкурсе - то пхп один из самых тормознутых языков по работе с массивами, еси не подводит память то даже vbscript даст фору, а ты изначально весь код загнал в трудо потери по cpu сходу

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  'SELECT * FROM members WHERE cookie = :cookie'
  3.  

select !!!! * !!!! и ты ругаешь других о сжирании памяти? а сколько у тебя лишнего в коде? проверка классов поиск в памяти Недовольство, огорчение ты представляешь сколько будет сжираться памяти и процессорного времени в готовом продукте на каждый клик?

то что я и пытался сказать.. ты повторишь тонну чужих ошибок приэтом упрекая других а сам делая все тоже самое. Сколько пройдет времени прежде чем все это мульен раз переделается и допилится? пол года? год? вот потому все и спрашивали.. почему не взять отлаженный кернел и на нем построить?
37. Zuldek - 17 Декабря, 2014 - 11:02:58 - перейти к сообщению
DeepVarvar пишет:
Скажи мне, какого хрена она в дефолте на "HelloWorld" схавала у меня 20 метров памяти?
И это не сделав ни единого запроса в БД, просто выведя в контроллере фразу "Привет мир".
А что будет дальше?


Ну это извечная проблема. Пишем мало ручками: памяти на поддержку всего хозяйства больше. Пишем всё ручками - ресурсы железа затрачиваются такие как мы хотим. В нормальных FV и ZF в частности нужно просто оптимизировать правильно всё хозяйство: отдавать статикой используя кое-где статические экшены, задействовать кеширование, оптимайзер в конце концов. И тогда всё там нормально работает и лишнего не кушает. Что-то кушает конечно, но плюсы минусы покрывают. А если разница в том что он просто памяти ест на 20 или 50 мб (при условии конечно, что это не баг и не течёт память) больше чем велосипед, то хрен с ними с этими мегабайтами! Проще поставить лишнюю плашку памяти и сосредоточить усилия на том, что действительно надо писать ручками, чем пилить свой велосипед неделями.

Понятно что "бла-бла-бла крупные проекты под хайлоад надо писать руками или отказыватсья на хайлоад коде от всяких FV" (мб проект вообще не для пыха тогда?), но на том же ZF сделана та же Magenta, а это весьма серьёзное решение и популярное для коммерческого хайлоада (за бугром по крайней мере).
38. Мелкий - 17 Декабря, 2014 - 11:11:32 - перейти к сообщению
Ihor пишет:
а просто статикой конфиг в инклуде уже не формат

Т.е. это не дергает ФС?
И парсинг PHP обходится дороже, INI или JSON быстрее. http://habrahabr[dot]ru/post/112402/
39. Panoptik - 17 Декабря, 2014 - 11:14:48 - перейти к сообщению
поддержу всех критикующих ибо этот холивар между производительностью и удобством меня уже достал.
я сам писал основу предложенного форума на основе ядра дипа.
после разработки на фв писать запросы руками и вв каждом экшене определять обработку ошибок в 5-10 строк - уныло.
конечно после моих набросков дип еще прошелся и оптимизировал запросы и несколько структурировал код, но по сути ничего не изменилось, осталось слишком много кастомных решений для распространенных задач, чего избавляет любой фв

работая с фв получаешь морально удовольствие от того что почти любая задача уже решена в ядре и нужно просто ее взять.

что касается import в том же yii - то это не является эквивалентом require а всего лишь регистрация класса для автолоадера, чтобы избежать повторного реквайра или инклуда

посему если в коде фреймворка указано импорт хоть 100 раз - это не значит что будет загружено всё что там объявлено

момент следующий, я тут в приватном чате смотрю на переписки и блаженные возгласы о том что можно выкинуть 10 методов, избавиться от чего-то еще и выиграть 10, 20, 100 кБ памяти для скрипта

ну это смешно

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

посему идею писать самостоятельно велосипед без обкатанного ядра считаю нецелесообразным.
можно продолжить этим заниматься для поднятия ЧСВ автора или для набивания шишек, но не для продакшна
40. Zuldek - 17 Декабря, 2014 - 11:17:37 - перейти к сообщению
И пример с конфигами конечно вообще Не понял
Какие затраты на парсинг конфигов, вы о чём вообще? У вас конфиг ЭВМ на атомных станциях или форум с интернет-магазином? Вы вообще на каком языке сайты пишите, скажите мне? Он сам по себе есть расход лишней памяти и ресурсов в угоду простоты написания кода.

Всегда лежит у всех в кэше, при изменении перетряхивается кэш. Хоть в json, хоть xml, хоть текстом, хоть в ноликах с единичками хранить: отдаётся то массивом из кеша всегда. У того же ZF к слову в ядре методы для работы с любым типом конфига.
41. Ihor - 17 Декабря, 2014 - 11:18:25 - перейти к сообщению
Мелкий пишет:
Ihor пишет:
а просто статикой конфиг в инклуде уже не формат

Т.е. это не дергает ФС?
И парсинг PHP обходится дороже, INI или JSON быстрее. http://habrahabr.ru/post/112402/

!!!Кеширование!!! простой ответ .. как науровне сервера apache/nginx, так и др.
(Добавление)
Zuldek пишет:
И пример с конфигами конечно вообще Не понял
Какие затраты на парсинг конфигов, вы о чём вообще?


вас не смущают лишние запросы к файловой системе на каждый клик ? вы ведь не с базой работаете а с дисковым пространством что создает очередь и лишнюю нагрузку. на 1млн конектов создаст лишние чтения диска, в то время как сервер с акселератором закеширует пхп и в следующий раз просто выполнит не читая его.
В то время как все сообщество разделает ресурсы по серверам, раскидывая ресурсы, картинки, базы , кеши на разные хосты чтобы снизить одновременное колво соединений к одному, выже так легко закрываете глаза на ненужно и совсем лишнее чтение файла и приэтом защищаете. Какой смысл тогда было жаловаться что тотже симфони сжирает 20метрво по дефолту? CPU ведь валом дешевого? неправдали?
42. Zuldek - 17 Декабря, 2014 - 11:36:21 - перейти к сообщению
Ihor пишет:
вас не смущают лишние запросы к файловой системе на каждый клик ?

Кто вам сказал что кэш с конфигом должен и будет лежать в файловой системе а не в озу?
Почему вы решили что субд не работает с фс ?))) Любое действие с ЭВМ пораждает либо запрос к файловому хранилищу на жёстком диске либо к оперативной памяти
Что вы за ахинею пишите, простите? У вас в ваших приложениях при запросе параметров конфига приложение парсить файл с жёсткого диска начинает или что? А если это и так, то почему так у всех должно быть?
Вы тому же ZF можете сказать где хранить конкретный кэш будь у вас там конфиг или что хотите. Хотите мемкэш - пожалуйста. Хотите файловый кэш - ради бога. Раздаёте статику? Вообще с cdn отдавайте и не будет у вас никакой нагрузки на фс
43. MiksIr - 17 Декабря, 2014 - 11:39:35 - перейти к сообщению
Ihor пишет:
вы ведь не с базой работаете а с дисковым пространством что создает очередь и лишнюю нагрузку

Ага, а база работает с воздухом ;)
Ihor пишет:
в то время как сервер с акселератором закеширует пхп

Файловая система тоже
Ihor пишет:
В то время как все сообщество разделает ресурсы по серверам, раскидывая ресурсы, картинки, базы , кеши на разные хосты чтобы снизить одновременное колво соединений к одному

Все немного сложнее
44. esterio - 17 Декабря, 2014 - 11:41:40 - перейти к сообщению
Ihor пишет:
Вы даже не понимаете о чем говорите сопоставляя: решение проблем и разработка нового

ну да вы видили исходники форума, вам лучше знать. ИМХО иногда доработка не стоит свеч и переделать все з 0 проще чем доделивать еще костили

Bio man пишет:
Раз уж взялись за самопис, то может возьмём проверенную и хорошо поддерживаемую основу.

лично я за, но если уже есть готовое написаное DeepVarvar-ом, то оно также считаеться готовым

DeepVarvar пишет:
Скажи мне, какого хрена она в дефолте на "HelloWorld" схавала у меня 20 метров памяти?

Так же недавно тыкал палочкой. но здесь ентерпрайз FW. там много обьектов создаеться даже для простого hello world. но он же не предназначен для малых и средних проектом, а для большых, где вииграш будет заметен

DeepVarvar пишет:
Оппа, лайт-версия ведра. Ага, 10 тыщ с лишним строк в одном файле, куча классов и интерфесов, а PSR аж во все щели.

Bio man предлагав вторую ветку, но она вроде как еще в стадии бета. а так да в первой никаких PSR-ов, только хардкор

Zuldek пишет:
но на том же ZF сделана та же Magenta, а это весьма серьёзное решение и популярное для коммерческого хайлоада

Фуфу мадженто, работал с ним две недели. там уровень вхождения ух какой велик. про названия классов я просто промолчу. ну и еще: если что-то в конфиге не так, то хрен ты увидиш что что-то не так, будешь день сидеть и думать ЧЯДНТ. а конфигы в XML и еще имя класа который в итоге нужно дернуть формируеться какимито вищими силами

DeepVarvar
Скажу лично за себя, твой велик не смотрел ибо времени ну ввобще нет, сижу жду скрама вот и отписиваю. но с другой стороны мне и не пофиг то. может я не один такой

Ihor пишет:
Ответь зачем?!! вот зачем? динамический конфиг с парсингом

Ответ уже был - для того чтобы урезать коменты, там нету ручного парсинга JSON-а. и да вам как любителям ФВ в Yii 1.x свои классы для формирования JSON

Ihor пишет:
вот и твой json конфиг для php форума

Выдно вы никогда не заглядиваете в исходники инструментов на которых сами пишите. Например в том же симфони если кроме ПХП варианта конфига (которым никто не пользуеться ибо громоздкый) есть еще и yaml и анотации. насколько я помню дефолтного парсинга yaml в пыхе нету, значит парсят вручную. а анотации построены на рефлексии.

Ihor пишет:
ты представляешь сколько будет сжираться памяти и процессорного времени в готовом продукте на каждый клик?

вы уж определитесь. любой вменяемый ФР и правда кушает памяти больше чем свой недоделаный велик. вы за использование ФВ и в то время печетесь о памяти. например я полностю солидарен з Zuldek доставить планку проще.
45. Zuldek - 17 Декабря, 2014 - 11:47:35 - перейти к сообщению
esterio пишет:
Фуфу мадженто, работал с ним две недели. там уровень вхождения ух какой велик. про названия классов я просто промолчу. ну и еще: если что-то в конфиге не так, то хрен ты увидиш что что-то не так, будешь день сидеть и думать ЧЯДНТ. а конфигы в XML и еще имя класа который в итоге нужно дернуть формируеться какимито вищими силами

Хотим готовое решение под крутой хайлоад, с поддержкой и объяснениями - покупаем ентерпрайз сборку.
Хотим писать своё - берём коммьюнити и пишим
Хотим писать своё лучше чем ядро коммьюнити - берём голый ZF на котором оно построено и вперёд.

 

Powered by ExBB FM 1.0 RC1