Ну, я не думаю, что кто-то упомянул компоненты ... это действительно то, что нужно повторно использовать в CakePHP, по крайней мере, на мой взгляд, контроллер уникален, как и модельи компонент - это место, куда вы помещаете повторно используемый код для вызова контроллерами.
Это действительно зависит от того, что вы пытаетесь сделать, если вы просто повторно используете код в классе (гдеон не имеет никакой реальной полезности вне этого класса), тогда не беспокойтесь о компоненте, просто используйте функцию в классе ... однако, когда вы обнаружите, что используете функцию, которая примерно одинакова в более чем одномконтроллер, затем поместите его в класс ..
IMO, лучше всего всегда пытаться разбить ваши классы на логические функции по мере их создания, а затем беспокоиться только о создании компонента позже, изфункция в классе, что означает, что если вы не уверены, собираетесь ли вы что-то повторно использовать, не тратьте дополнительное время на то, чтобы сначала сделать его компонентом.может быть легко сделано позже (но просто требует немного больше работы / продумывания) ...
если вы заранее знаете, что собираетесь повторно использовать функцию, тогда просто продолжайте и вставьте ее вкомпонент для начала.
(еще одна отличная вещь в Cakephp - это то, что внутри папок для модели, контроллера, компонента ... вы можете создавать свои собственные папки и помещать в них файлы, не заботясь о том, где они находятся.До тех пор, пока они находятся в общем правильном каталоге (то есть контроллере, если это контроллер), поэтому, если у вас есть куча контроллеров, которые, скажем, предназначены для выполнения действия, которое вы считаете «обновлением информации профиля пользователя», то выпросто создайте для этого папку и поместите туда все, и вы можете сделать то же самое для компонентов, которые относятся к этому (в каталоге компонентов) ... но когда вы вызываете контроллер в этой папке, вам не нужно ссылатьсяпапка в вызывающем URL-адресе ... что-то, что я нахожу очень удобным, так как это экономит много утомительной работы, позволяя вамчтобы ваши файлы классов были очень организованы)