Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Уроки по созданию своей CMS
http://forum.kohanaframework.su/viewtopic.php?f=38&t=657
Страница 5 из 6

Автор:  mstdmstd [ 02 сен 2013, 09:49 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

Уточните пожалуйста что за модуль common ?

У меня в папке модулей:
Код:
[modules]$ ls -l
итого 36
drwxrwxrwx 1 root root 4096 Окт 23  2012 auth
drwxrwxrwx 1 root root 4096 Окт 23  2012 cache
drwxrwxrwx 1 root root 4096 Окт 23  2012 codebench
drwxrwxrwx 1 root root    0 Окт 23  2012 database
drwxrwxrwx 1 root root    0 Апр 15 09:53 email
drwxrwxrwx 1 root root 4096 Окт 23  2012 image
drwxrwxrwx 1 root root 4096 Окт 23  2012 minion
drwxrwxrwx 1 root root 4096 Окт 23  2012 orm
drwxrwxrwx 1 root root 4096 Авг 13 10:52 pagination
drwxrwxrwx 1 root root 4096 Окт 23  2012 unittest
drwxrwxrwx 1 root root 4096 Окт 23  2012 userguide


Понятно с моими функциями - их надо запихнуть в модуль? Так?
А модели ? Их тоже запихивать в модуль? Можно пример как это делается ?
Также как быть с переопределенными классами Pagination.php и View.php ?

Автор:  AmberLEX [ 02 сен 2013, 10:34 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

Из модулей common перенесен https://github.com/WinterSilence/kohana-cms
Код:
common/    // Общие файлы, ядро CMS
frontend/  // Общедоступная часть
backend/   // Админская часть
cli/       // консольные приложения

Автор:  WinterSilence [ 02 сен 2013, 10:54 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

Цитата:
Наиболее логичным является размещение частей в соответствующих приложениях (application).
Базовый функционал, на котором строятся приложения, будет размешен в модуле common.
Независимые части кода, разместим в отдельных модулях: пагинатор(paginator), капча(captcha) и т.д.

Если какой-то код абстрактен т.е. не привязан к конкретной реализации (например тот же пагинатор), то логичнее вынести в его отдельный класс\модуль. Также можно выносить в модули части CMS (например форум или статьи), чтобы потом на другом хостинге можно было быстро собрать эту же CMS, но с другим набором модулей.

Модули имеют ту же структуру что и приложения, поэтому создание приложения особо не отличается от создания модуля.

В common вы храните все файлы (виды, контроллеры, модели и т.д.), которые используются в нескольких приложениях. Вы можете не создавать лишние классы аля Kohana_... если не планируете расширять данные их в приложениях.
Допустим у вас есть модель Article отвечающая за статьи, в backend мы переопределяем её и добавляем, например, метод для импорта статей в PDF, а во frontend, например, переопределяем методы find и find_all, чтобы отображались только статьи прошедшие модерацию - active = 1 (статус проверяется по полю active).

Вот тут https://github.com/WinterSilence/kohana ... lop/common можно посмотреть, как приблизительно это должно выглядеть

Автор:  mstdmstd [ 03 сен 2013, 12:37 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

Спасибо за подсказки,
получилось, но за небольшим исключением. В каталоге backend/config мне пришлось оставить 2 файла
1) auth.php. Если его перекинуть в /appcommon/config то я получаю ошибку :
Код:
Kohana_Exception [ 0 ]: A valid hash key must be set in your auth config.


2) database.php Иначе нет доступа к базе данных

И копии этих же файлов я скинул в frontend/config иначе те же проблемы на фронтенде.
Это как-то лечится?


Также в я перенес в appcommon/classes 2 своих переопределенных класса Pagination.php и View.php.
Так я вижу что вызывается класс мой View.php класс, но Pagination вызывается не мой
В чем может быть проблема ? Pagination прописан в /backend/bootstrap.php. Из-за этого ?

Автор:  WinterSilence [ 03 сен 2013, 12:49 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

Как уже говорилось играет роль порядок подключения модулей, если в common вы переопределяете какие-то классы модулей, то они должны объявляться после него. С этим же связаны проблемы с конфигами. http://kohanaframework.su/guide/file_system

Автор:  AmberLEX [ 03 сен 2013, 12:50 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

В system/classes/Kohana/Core.php есть
protected static $_paths = array(APPPATH, SYSPATH);
Думаю нужно расширить класс common/classes/Kohana.php дописать туда типа
protected static $_paths = array(APPPATH, CMNPATH, SYSPATH);
CMNPATH определить в index.php аналогично переменной
$system = 'system';
Ну и в public static function deinit()
Kohana::$_paths = array(APPPATH, CMNPATH, SYSPATH);

Думаю это просто еще не сделано в CMS, хотя я не вникал особо, WinterSilence поправь если не так

Автор:  WinterSilence [ 03 сен 2013, 13:37 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

в common/init.php задается COMMONPATH
я стараюсь по минимуму изменять исходные файлы - я не вижу смысла полностью переписывать 2 важных метода ядра, по моему нет никакой проблемы в том, чтобы загружать модуль common первым и получить тот же результат.

Автор:  mstdmstd [ 04 сен 2013, 10:17 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

Спасибо,
если модуль common указать первым все загружается нормально
И уточните плиз а нужна ли отдельно констатнта COMMONPATH ?
Я так понял что указав путь для модуля common путь в bootstrap.php Kohana сама подключает все классы/модули/контроллы из common ?
Поиском в kohana-cms-3.3-develop я не нашел обращения к COMMONPATH.

Автор:  WinterSilence [ 04 сен 2013, 12:46 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

это заготовка, поэтому некоторый функционал не используется.

по поводу загрузки все описано тут http://kohanaframework.su/guide/file_system

Автор:  sprour [ 06 ноя 2013, 03:07 ]
Заголовок сообщения:  Re: Уроки по созданию своей CMS

А расскажи пожалуйста про хелперы и как подгружаются виджеты, снипеты.

Страница 5 из 6 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/