Несколько действий.class.php

У меня есть модуль, например, учетная запись. Конечно, вы найдете файл с именем acount / actions / action.class.php.

PHP-файл action.class.php становится большим. Можно ли продлить его?

для примера:

/account/action/action.class.php /account/action/action2.class.php 

Если это возможно, как выглядит код в action.class.php и в action2.class.php? И / или где я должен что-то вводить в config-ymal-файле?

Заранее спасибо!

Craphunter

Related of "Несколько действий.class.php"

Действия Symfony могут быть объявлены в двух вариантах:

  1. Большой файл actios.class.php, который наследуется от sfActions
  2. Несколько файлов xxxAction.class.php, которые наследуются от sfAction

Оба они в основном одинаковые, но они не могут быть смешанными (вы должны решить, хотите ли вы 123123 файлов, 1 на действие или один большой файл жира).

Вот его ссылка на symfony по этому вопросу: Symfony Front Controller – Действия проверяют раздел Action.

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

Добавление include для файла action2 не означает, что Symfony 1.4 предназначен для использования и, скорее всего, приведет к любой другой головной боли.

PHP не поддерживает «частичные классы», такие как C #. Таким образом, у вас есть два варианта:

  • Создайте цепочку наследования, создав класс baseActions который наследует sfAction . Затем создайте свой класс MainActions который наследуется от baseActions . Вы можете добавить разные уровни наследования.

  • Групповые функции в отдельных классах. Переопределите функцию execute() в файле действий и вручную вызовите функцию в соответствующем классе.

Также подумайте, относится ли какое-то поведение, которое вы реализуете в действии (контроллере) к модели (или представлению). Если действительно принадлежит к действию, просто следуйте советам гиймана и создайте действие для каждого класса, наследующего sfAction .

Если у меня есть CRUD- модуль, основанный на модели (сгенерированный CLI), и я должен определить дополнительные поведения для этой модели , я, как правило, создаю еще один модуль, который будет содержать это поведение. Например, рассматривая модельную Article . Я мог бы создать модуль article для поведения article_support (сгенерированный), article_support для дополнительных действий, таких как модерация, активация и т. Д. И, возможно, article_ajax для асинхронных запросов.