Модули в CakePHP - PullRequest
       14

Модули в CakePHP

1 голос
/ 16 октября 2010

Я пользуюсь этой замечательной платформой в течение 6 месяцев, и я многое о ней узнал, но мне интересно, возможно ли создать внутреннюю структуру для имитации модулей, как в Codeigniter. Я знаю, что для этого есть возможность использовать плагины, но кажется слишком сложным соединять их вместе и передавать информацию между ними.

Моя цель - получить модули, похожие на joomla, но как я могу это сделать, не меняя ядро ​​cakephp? это возможно?

Ответы [ 3 ]

1 голос
/ 18 октября 2010

То, что я делаю для проекта, которым я сейчас занимаюсь, это наличие следующего:

в моем bootstrap.php

<?php
    ....
    App::build( array(
        'plugins' => array(
            join( DS, array( null, 'Users', 'abryant', 'Sites', 'appName', 'tools' )),
        ),
        ...
    ));
?>

Затем я сохраняю все свои служебные плагиныв папке инструментов плагин.Это для плагинов, которые вы используете в качестве внутренних утилит, которые не предоставляют пары контроллер / действие.IE плагины для поведения, компонентов, вещей из github и т. Д.

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

Затем создайте основной AppController, у которого есть соответствующий класс AppControllerEvent, в папке, указанной в инструкциях.Затем вы можете сохранить папку плагинов в чистоте для модулей , которые предоставляют контроллеры, представления или некоторые другие непосредственные взаимодействия с пользователем.

Вы можете использовать Eventful для трансляции событий от плагинов к приложению в AppModelили AppController вроде уровня.Если вы тщательно обдумаете это, вы можете использовать событие уровня приложения, чтобы запрашивать ответы от установленных плагинов, а затем циклически проходить через набор событий для регистрации блоков или вставлять информацию в установленные переменные представления.

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

0 голосов
/ 18 октября 2010

Изначально это кажется очень сложным, но я думаю, что это лучшее решение для этой проблемы.

Вы кодировали плагины для всех своих модулей?Или вы кодировали ядро ​​в контроллерах, моделях и т. Д. И в дополнительных модулях внутри плагинов?Мне странно работать таким образом в CakePHP.

Я постараюсь кодировать все модули отдельно, я имею в виду плагин ядра, плагин настроек, плагин модулей (для управления другими плагинами) и т. Д... И, вероятно, я буду использовать начальную загрузку.

Большое спасибо за ваши ответы и извините за плохое объяснение моей проблемы, но моя идея была настолько общей, что я не мог объяснить ее лучше.

0 голосов
/ 17 октября 2010

Ну, вы правы.Модули в Joomla - это независимые пакеты кода, которые работают как пакеты в linux (модули могут зависеть от других модулей), но все они работают поверх основной функциональности.Я хочу написать ядро ​​на платформе CakePHP, которая включает в себя функциональность для управления всеми видами модулей в системе, но я не знаю, как лучше всего модифицировать ядро ​​CakePHP для решения этой ситуации ...

Я делал это раньше с Codeigniter, и поэтому я подумал вернуться к Codeigniter, но Cakephp помогает мне создавать приложения за меньшее время ... Если это возможно, это будет отличная система.

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

Надеюсь, вы понимаете мое объяснение, извините за мой английский.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...