Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Takie rozwiązanie akcji
Forum PHP.pl > Forum > PHP > Pro > Archiwum Pro
MMP
  1. <?php
  2.  
  3. $Models = new Models; //Wiadomo
  4. $Models_HTM = $Models -> create( 'HTM' ); //Tworzenie modelu HTM
  5. $Models_HTM -> fTemplate( '/HTM/' ); //Folder z szablonami
  6. $Models_HTM -> fAction( '/HTM/' ); //Folder z akcjami
  7. $Models_HTM -> banActionGroup( 'Edit' ); //Grupa akcji 'Edit' nie może należeć do tego modelu
  8. $Models_HTM -> banAction( 'Edit' ); //Akcja 'Edit' nie może należeć do tego modelu
  9. $Models_HTM -> auth( $Auth -> HTM() );
  10. $Models_PDF = $Models -> create( 'PDF' );
  11. $Models_PDF -> fTemplate( '/PDF/' );
  12. $Models_PDF -> fAction( '/PDF/' );
  13. $Models_XML = $Models -> create( 'XML' );
  14. $Models_XML -> fTemplate( '/XML/' );
  15. $Models_XML -> fAction( '/XML/' );
  16.  
  17. $ActionGroups = new ActionGroups; //Grupy akcji
  18. $ActionGroups_Admin = $ActionGroups -> create( 'Admin' );  //Tworzenie groupy o nazwie 'Admin'
  19. $ActionGroups_Admin_LinkAdminPanel = $ActionGroups_Admin -> action( 'LinkAdminPanel' ); //Przypisanie akcje 'LinkAdminPanel'
  20. $ActionGroups_Admin_LinkAdminPanel -> ifAction( '' ); //Jeśli akcja została załadowana
  21. $ActionGroups_Admin_LinkAdminPanel -> data( array() );  //Dane
  22. $ActionGroups_Admin_LinkAdminPanel -> schema( '' ); //Schematy służące do analizy
  23. $ActionGroups_Admin_LinkAdminPanel -> display(); //Wyświetl
  24. $ActionGroups_Admin_LinkAdminPanel -> model(); //Model
  25. $ActionGroups_Admin_LinkAdminPanel -> auth(); //Zezwolenia
  26. $ActionGroups_Admin_LinkAdminPanel -> template(); //Nazwa szablonu( .tpl )
  27. $ActionGroups_Admin_LinkAdminPanel -> action(); //Nazwa akcji( .php )
  28. $ActionGroups_Admin -> action( 'LinkBlockSite' );
  29. $ActionGroups_Admin -> model( 'HTML' ); //Może korzystać z modelu 'HTML'
  30. $ActionGroups_Admin -> model( 'XHTML' ); //Może korzystać z modelu 'XHTML'
  31. $ActionGroups_Admin -> auth( $Auth -> Admin() ); //Zezwolenia
  32. $ActionGroups_Admin -> fAction( '/Admin/' ); //Folder z akcjami jeżeli chciało by się napisać coś własnego
  33. $ActionGroups_Admin -> fTemplate( '/Admin/' ); //Folder z szablonami
  34. $ActionGroups_Admin -> nAction( '#nAction#_Action.php' ); //Szablonowa nazwa akcji
  35. $ActionGroups_Admin -> nTemplate( '#nAction#.tpl' ); //Szablonowa nazwa szablonow
  36. $ActionGroups_Mod = $ActionGroups -> create( 'Moderate' );
  37. $ActionGroups_Mod -> action( 'LinkModPanel' );
  38. $ActionGroups_Mod -> action( 'ModPanel' );
  39. $ActionGroups_Mod -> model( 'HTML' );
  40. $ActionGroups_Mod -> model( 'XHTML' );
  41. $ActionGroups_Mod -> auth( $Auth -> Mod() );
  42.  
  43. $Index = new Action( 'Index' ); //Pojedyncza akcja
  44. $Index -> template( '' ); //Jej szablon. Domyślnie tak jak nazwa akcji
  45. $Index -> action( '' ); //Nazwa pliku ( .php ). Domyślnie tak jak nazwa akcji
  46. $Index -> data( array() );  //Dane do przetworzenia
  47. $Index -> schema( '' ); //Jej schemat( on zajmuje sie przetwarzaniem akcji )
  48. $Index -> ifAction( '' ); //Jeżeli inna akcja tez jest załadowana
  49. $Index -> display(); //Wyświetl
  50. $Index -> auth( $Auth -> User() ); //Zezwolenia
  51.  
  52. $UserList = new Action( 'UserList' );
  53. $UserList -> template( '' );
  54. $UserList -> data( array() ); 
  55. $UserList -> schema( '' );
  56. $UserList -> ifAction( '' );
  57. $UserList -> display();
  58. $UserList -> auth( $Auth -> User() );
  59.  
  60. $NoLogged = new ActionGroup( 'NoLogged' );  //Grupa akcji
  61. $NoLogged -> display();  //Wyświetl
  62. $NoLogged -> auth(); //Vide ActionGroups
  63. $NoLogged -> ifAction(); //Vide ActionGroups
  64. $NoLogged -> template(); //Vide ActionGroups
  65. $NoLogged -> fTemplate(); //Vide ActionGroups
  66. $NoLogged -> action(); //Vide ActionGroups
  67. $NoLogged -> fAction(); //Vide ActionGroups
  68. $NoLogged -> model(); //Vide ActionGroups
  69.  
  70. $NoLogged_BoxLogged = $NoLogged -> action( 'BoxLogged' ); //Nazwa akcji
  71. $NoLogged_BoxLogged -> template( 'BoxLogged.tpl' ); //Szablon akcji
  72. $NoLogged_BoxLogged -> data( array() );  //Dane np. z mysql-a do przetworzenia
  73. $NoLogged_BoxLogged -> schema( new toTemplate );  //Schemat analizuje dane
  74. $NoLogged_BoxLogged -> schema( new parseDate, 'columnDate' );  //Schemat analizuje dane
  75. $NoLogged_BoxLogged -> display(); //Wyświetl
  76. $NoLogged_BoxLogged -> ifAction( '' );  //Jeżeli inna akcja/grupa akcji istnieje. Notacja kropkowa
  77. $NoLogged_BoxLogged -> auth( $Auth -> NoLogged() ); //Zezwolenia
  78. $NoLogged_BoxLogged -> model( 'HTML' ); //Użycie modelu html
  79. $NoLogged_BoxRegister = $NoLogged -> action( 'BoxRegister' );
  80.  
  81.  
  82. $ActionControler = new ActionControler;
  83. $ActionControler -> action( $Index );
  84. $ActionControler -> action( $UserList );
  85. $ActionControler -> actionGroup( $NoLogged );
  86. $ActionControler -> actionGroups( $ActionGroups );
  87. $ActionControler -> models( $Models );
  88. $controlAction = $ActionControler -> controlAction( $_GET[ 'param' ] );
  89. $controlAction -> Index();
  90. $controlAction -> UserList();
  91. $controlAction -> GroupAdmin();
  92. $controlActionGroup = $ActionControler -> controlActionGroup( $_GET[ 'ActionGroup' ], $ActionGroup );
  93. ?>

Chciałbym się dowiedzieć co sądzicie o takiej metodzie tworzenia szybkich aplikacji. Gdzie wszystko jest realizowane automatycznie za pomoca grup, modeli, akcji i schematów.

Opisałem cały kod jeżeli ktoś by nie potrafił się domyśleć co robi dana metoda czy klasa.
SongoQ
A ten kod nie zamykasz w zande klasy?

Przedstaw diagram klas bedzie latwiej ocenic.
MMP
W tej chwili nie mam jak stworzyć diagramu.

To jest kod przykładowego pliku index.php, który ma realizować akcje. Wykonywać określone schematy, sprawdzanie zezwoleń. Dopiero jeżeli chciało by się zrobić coś nie standardowego - nie opłaca się tworzyć schematu można stworzyć klase
  1. <?php
  2. class action_Eg extends ManualAction
  3. {
  4. [...]
  5. }
  6. ?>
hwao
Chodzilo o diagram, tzn rysunek jak to dziala smile.gif

Jak chce Ci sie za kazdym razem pisac w kolo to samo, to jestem pelen podziwu...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.