Cakephp: Абстракция AppController другой уровень, возможный?

Когда Вы хотите изменить процесс выполнения программы (return, break и continue), код в функции ведет себя по-другому, чем код, который на самом деле встраивается в функции.

#define ASSERT_RETURN(condition, ret_val) \
if (!(condition)) { \
    assert(false && #condition); \
    return ret_val; }

// should really be in a do { } while(false) but that's another discussion.
6
задан Ken 9 December 2009 в 18:27
поделиться

1 ответ

Моей первой мыслью было бы посмотреть, смогу ли я абстрагировать некоторые функции из beforeFilter в компонент - помните, что компоненты могут использовать и другие компоненты, просто включите их в свойство вашего компонента $ components, чтобы вы могли получить доступ к AuthComponent и AclComponent и т. д.

Если бы это не подходило, я бы пошел по вашему маршруту, чтобы сделать это, просто включите ('secure_controller.php'); перед объявлением вашего индивидуального класса контроллера в этом файле.

Я сделал нечто подобное, создав BaseController, который я использую во всех своих проектах, который обеспечивает все мои стандартные действия CRUD администратора. Затем мой AppController расширяет это, которое содержит специфические для приложения, широкие функциональные возможности контроллера, затем отдельные контроллеры расширяют это и в конечном итоге становятся практически пустыми. Все, что я делаю, это:

// app/base_controller.php
<?php class BaseController extends Controller {} ?>

// app/app_controller.php
<?php
include('base_controller.php');
class AppController extends BaseController {}
?>

// app/controllers/my_controller.php
<?php class MyController extends AppController {} ?>
6
ответ дан 17 December 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: