|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.12.2013, 05:01 | #1 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Ищу помощников в разработке CMF на PHP/C++
Уже как ~2.5 года веду разработку этой самой CMF(когда-то CMS), проект переписывал с нуля как минимум 3 раза, и бесчисленное количество раз отдельные его элементы.
Сначала мне хотелось реализовать просто CMS, где можно было за пару кликов собрать простенький сайт с новостями/статьями и пр., конечная реализация получилась довольно интересной и на ней сейчас живут десятки сайтов, но система была построена так, что ее развитие слишком затруднено из-за ужасной архитектуры и отсутствие ключевых возможностей. Перед ее созданием было исследовано несколько бесплатных CMS и из каждой позаимствованы свои прелести. Следующая реализация, это тоже CMS, правда до написания админки дело так и не дошло. Я по прежнему также руководствовался удобствами для создания сайтов, но и простором для ее расширения, а точнее удобством для программисты. Главным преимуществом над предыдущей поделкой было то, что система самостоятельно следит за структурой БД. Но по прежнему нужно было много городить однотипного кода для реализации модулей и когда потребовалось реализовать внятную подсистему управления правами пользователей, я попал в тупик. Текущая реализация радикально отличается от предыдущих. Теперь я больше не стремлюсь к CMS, да и к CMF тоже(то как реализовано большинство известных мне). Теперь задачей стало возможность легкого расширения и переписывание отдельных частей CMF, вплоть до полного изменения логики поведения как отдельных элементов так системы в целом. CMF состоит из 2-х частей, ядра и модулей входящих в состав ядра, и пользовательских модулей/файлов/библиотек и т.д. Задачи которые лежат на ядре системы: 1. Управление структурой БД и целостностью данных. 2. Управление пользователями и их правами на уровне действий и данных. 3. Доступ к БД. 4. Управление сессиями 5. Ведение статистики по функционированию системы. 6. Валидация данных и генерация форм (только описание, а не представление) 7. Общение между модулями По поводу последнего пункта, модули не могут напрямую работать друг с другом, т.к. в таком случае не получится "правильной" подсистемы разграничения прав по действиям. Может возникнуть ситуация, что действие пользователю доступно, но это действие внутри в зависимости от параметров вызывает другие и какие либо из этих других могут быть недоступны пользователю. По этой же причине запрещен непосредственный вызов SQL запросов, обращение осуществляется посредством конструктора запросов. Цели которые преследуются: 1. Создание стабильной и безопасной CMF на основе которой можно было бы построить несколько CMS под разные задачи. 2. Быстрая заработка модулей прямо в админке. 3. Скорость работы CMF Тут стоит сказать, что CMS в конечном счете будет являться простой админкой, которая в свою очередь является пользовательским модулем. CMF не должна ограничивать конечного пользователя какими либо правилами, выбор шаблонизатора, правил формирования страниц сайта, или выбор БД и т.д. Например сейчас, когда я был в поиске шаблонизатора который мог работать как на стороне клиента, так и на сервере, опробовал 3 разных варианта, и в данный момент разные страница админки формируются на разных шаблонизаторах, а ajax конструктор форм на четвертом . Теперь предстоит нудная работа по приведению этого хаоса к единому знаменателю. На данный момент многие вопросы не решены. Я пытаюсь вылизывать каждый элемент на столько на сколько мне позволяет мой опыт. Документацию я не пишу, т.к. все очень динамично меняется, пробую использовать кучу разных технологий и подходов. Помощь начала требоваться когда я вышел за пределы ядра системы, количество направлений, в которых нужно писать код увеличивается очень быстро, да и уровень вопросов которые требуется решать увеличивается. В общем интересные задачки найдутся и для совсем новичков и для профессионалов. |
25.12.2013, 07:19 | #2 | |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Если ваш проект заточен под создание простых сайтов, без какой либо своеобразной специализации то сомневаюсь, что ваша разработка будет сильно востребована ибо такие есть, и у них есть сообщества.
Цитата:
Стрелок-охотник
|
|
25.12.2013, 10:06 | #3 | ||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Цитата:
Цитата:
Тут еще стоит упомянуть, что это не просто задания от меня лично, типа делай то, то, то. Это прежде всего обсуждение/решение проблем с последующей реализацией. Можно в принципе не писать код, а только предлагать/обсуждать решения, а уж исполнить я сам смогу ) Приведу немного примеров кода. Простейший модуль: PHP код:
Так выглядит на данный момент описание таблицы: PHP код:
PHP код:
PHP код:
Хотя на dev админке и можно собрать сайт/приложение и этот процесс будет отчасти схож с MODx, и это плохо для конечного пользователя. Некоторым достаточно(больше и не нужно) чтобы на каждой странице был только редактор типа tinyMCE и всё ) Последний раз редактировалось Kostia; 25.12.2013 в 10:14. |
||
25.12.2013, 13:24 | #4 | |||||||
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Стрелок-охотник
Последний раз редактировалось mv28jam; 25.12.2013 в 13:34. |
|||||||
25.12.2013, 13:57 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
У меня вопрос несколько не в тему - в чем преимущество использование эдакого конструктора запросов перед написанием простой строки "SELECT ... FROM ... WHERE ..."?
|
25.12.2013, 14:18 | #6 | |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Цитата:
С точки зрения code nazi девелоперы-быдлокодеры, а так они их привлекут к порядку и вообще так круто тк сложно и непонятно.
Стрелок-охотник
|
|
25.12.2013, 14:48 | #7 | ||||||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Цитата:
Цель, если пользователь запрашивает данные, например страницу или список новостей, то он должен увидеть только те, которые соответствуют его правам. Я долго искал информацию по организации прав, но в веб движках используются очень специализированные подходы. Пытался разобрать систему прав в linux, разобрал, адаптировал и получил что-то типа: Есть 2 сущности: Пользователь и Группа. Каждый пользователь привязан к некоторой группе по умолчанию, а также он может входить в несколько групп одновременно. Группы образуют собой древовидную систему подчиненности, связи могут быть только в направлении вниз, либо замкнуты на самой группе и не могу идти в другую ветку. Таким образом пользователь сможет просматривать все данные которые находятся в группах подчиненных тем, в которых находится сам пользователь. За реализацию этой подсистемы прав я еще не брался, только возвел небольшой фундамент. Принял для себя пару условностей, в плане к какой группе будут принадлежать данные, если пользователь их добавит и к какой группе они будут принадлежать если модератор производит правки и т.д. На бумаге все вроде выглядит вполне логично и без неопределенностей ) Цитата:
Цитата:
Цитата:
Если говорить про ссылки, то тут разработчик сам волен выбирать и реализовывать способ обработки ссылок. Я собираюсь реализовать как миниму 2 стратегии. При этом мне очень приглянулась идея использовать pattern matching как в функциональных языках. В этих вопрос я еще сам не до конца разобрался и не совсем полно вижу конечную картину, т.к. совсем недавно вышел за пределы ядра. Цитата:
Цитата:
Последний раз редактировалось Kostia; 25.12.2013 в 14:56. |
||||||
26.12.2013, 09:37 | #8 | ||||||
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Цитата:
Цитата:
В целом же сложно давать советы если нет цели. Как говорили в великом фильме - http://www.youtube.com/watch?v=2FgWNKgSvqY . Нужно ли это разделение прав, как оно будет работать, зачем оно... одни вопросы. Ввели мы как-то разделение прав, чтобы не воровали данные и для порядку, а как нагрузка попёрла, оказалось что одни проблем от этого, теперь не знаем как от этого разделения легко избавиться... Цитата:
Цитата:
Цитата:
Цитата:
Впрочем вы меня заинтересовали, читайте РМ.
Стрелок-охотник
Последний раз редактировалось mv28jam; 26.12.2013 в 09:39. |
||||||
26.12.2013, 10:58 | #9 | ||
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,690
|
Цитата:
PHP код:
Часто бывает так, что то, что на первый взгляд кажется хорошим решением в конечном счете на практике оказывается весьма ущербным. Цитата:
|
||
26.12.2013, 11:42 | #10 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Цитата:
Про кеширование вообще не понял, как это влияет. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что сейчас актуально, движки, CMF и так далее. | dertsb | WordPress и другие CMS | 1 | 12.12.2013 07:25 |
«Сайт под ключ» на cmf Drupal | manachud | Фриланс | 0 | 14.09.2011 21:00 |
Буду делать Аркаду 2D, ищу помощников | CyberOrcX | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 46 | 17.06.2009 09:48 |
Набираем помощников. Игра SanCIty | microran | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 11.09.2007 19:42 |
Набираем помощников. Игра SanCIty | microran | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 0 | 31.08.2007 17:45 |