Yii Framework Forum: Action+View több kontrollerből - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Action+View több kontrollerből üzleti logika redundanciájának az elkerülése Rate Topic: -----

#1 User is offline   Rajcsányi Zoltán 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 46
  • Joined: 10-November 09
  • Location:Hungary, Zalaegerszeg

Posted 12 April 2012 - 02:13 AM

Van egy viszonylag bonyolultabb action-öm, ami több (AR) modult használ fel. Azt szeretném kérdezni, hogy ti ezt hogy oldjátok meg.

Azt szeretném, hogy az action több kontrollerből is használható legyen, de ne kelljen újraírnom, mert később, akkor nehezen lenne karbantartható a kód.

Az action-hoz tartozó nézet is majdnem megegyezik, annyi kiegészítéssel, hogy egy render partial-t kell meghívnom, ha nem a fő kontroller hívja meg a nézetet.

Például:

/controller/
----main.php
----registration.php

/views/
---main/index.php
---registration/index.php


Ha a registration controller index action-ja fut le, akkor main index action-ban szereplő minden üzleti logika lefut, majd a registration kontroller index action-jában lévő egyéb üzleti logikai lefut. Végül a main kontrollerhez tartozo index.php renderpartial-al meghívja a registration kontrollerhez tartozó index.php nézetet.

Köszi, a válaszokat!
---
Zoltan Rajcsanyi
homepage: http://ezmegaz.hu
skype: zolones7666

0

#2 User is offline   kiskp 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 05-January 10
  • Location:Hungary

Posted 12 April 2012 - 04:32 AM

Szerintem valami hasonló megoldás kell neked:
http://www.yiiframew...se-with-caction

Azaz külön Action file-t kell írnod, amit vagy az extensions vagy a components mappában tárolsz, és a fenti példában említett módon alkalmazol az összes conrollerben, ahol csak használni szeretnéd.
1

#3 User is offline   Rajcsányi Zoltán 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 46
  • Joined: 10-November 09
  • Location:Hungary, Zalaegerszeg

Posted 12 April 2012 - 05:57 AM

View Postkiskp, on 12 April 2012 - 04:32 AM, said:

Szerintem valami hasonló megoldás kell neked:
http://www.yiiframew...se-with-caction

Azaz külön Action file-t kell írnod, amit vagy az extensions vagy a components mappában tárolsz, és a fenti példában említett módon alkalmazol az összes conrollerben, ahol csak használni szeretnéd.


Igen, köszi jónak tűnik.
---
Zoltan Rajcsanyi
homepage: http://ezmegaz.hu
skype: zolones7666

0

#4 User is offline   Rajcsányi Zoltán 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 46
  • Joined: 10-November 09
  • Location:Hungary, Zalaegerszeg

Posted 23 April 2012 - 06:33 AM

Kissé átszerveztem a problémát. A fő kontroller lényegi blokkjait kiszerveztem privát metódusokba.
Illetve a kontrolleren belül hagytam a logikát. Action átjárással sikerült megoldani a feladatot.

A fő kontroller fő action-ja által meghívott nézetébe egy egyszerű logikát építettem be, ami partiálisan betölti a többlet üzleti logikához tartozó nézetet, ha szükséges.

A kiegészítő kontrollerek a privát metódusokon keresztül ugyanazon üzleti logikát töltik be, ami a fő action-höz tartozik, majd kiegészíti a saját logikájával, azonban nem képződik forráskód redundancia ezzel a megoldással.

Talán kicsit tömör a leírásom, de a logika nagyon jól működik és jól is alkalmazható Yii extension-ök felhasználása nélkül.
---
Zoltan Rajcsanyi
homepage: http://ezmegaz.hu
skype: zolones7666

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users