Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]dsExtDirectPlugin integracja z CRUD
Forum PHP.pl > Forum > PHP > Frameworki
Czapla
Witam
Mam problem z integracją tego pluginu.
Opisze wam wszystkie kroki w jakich postępuje
Instaluje plugin [pojawia się błąd Deprecated: Function set_magic_quotes_runtime() is deprecated ale jest to błąd php 5.3.0], plugin zostaje pomyślnie zainstalowany, odnośniki pojawiają się we wszystkich plikach.
Zgodnie z instrukcją zamieszczoną tu: http://www.symfony-project.org/plugins/dsExtDirectPlugin

mój app.yml po modyfikacjach wygląda tak
  1. # You can find more information about this file on the symfony website:
  2. # <a href="http://www.symfony-project.org/reference/1_4/en/11-App" target="_blank">http://www.symfony-project.org/reference/1_4/en/11-App</a>
  3.  
  4. # default values
  5. all:
  6. ds_ext_direct_plugin:


mój factories.yml tak
  1. # You can find more information about this file on the symfony website:
  2. # <a href="http://www.symfony-project.org/reference/1_4/en/05-Factories" target="_blank">http://www.symfony-project.org/reference/1_4/en/05-Factories</a>
  3.  
  4. prod:
  5. logger:
  6. class: sfNoLogger
  7. param:
  8. level: err
  9. loggers: ~
  10.  
  11. test:
  12. storage:
  13. class: sfSessionTestStorage
  14. param:
  15. session_path: %SF_TEST_CACHE_DIR%/sessions
  16.  
  17. response:
  18. class: sfWebResponse
  19. param:
  20. send_http_headers: false
  21.  
  22. mailer:
  23. param:
  24. delivery_strategy: none
  25.  
  26. dev:
  27. mailer:
  28. param:
  29. delivery_strategy: none
  30.  
  31. all:
  32. routing:
  33. class: sfPatternRouting
  34. param:
  35. generate_shortest_url: true
  36. extra_parameters_as_query_string: true
  37.  
  38. view_cache_manager:
  39. class: sfViewCacheManager
  40. param:
  41. cache_key_use_vary_headers: true
  42. cache_key_use_host_name: true
  43.  
  44. [b]extdirect:
  45. controller:
  46. class: dsExtDirectController[/b]


Wykonuje polecenie generate:app main i doctrine: build -all
Na końcu
doctrine:generate-module main media media
Wszystko jest ok!

Dodajemy odwołanie do naszego ext_api w pliku action.class [pogrubione]
  1. <?php
  2.  
  3. /**
  4.  * media actions.
  5. * @package extplugin
  6.  * @extdirect-enable
  7.  * @extdirect-len 1
  8.  * @subpackage media
  9.  * @author Your name here
  10.  * @version SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
  11.  */
  12. class mediaActions extends sfActions
  13. {
  14. public function executeIndex(sfWebRequest $request)
  15. {
  16. $this->medias = Doctrine::getTable('Media')
  17. ->createQuery('a')
  18. ->execute();
  19. }
  20.  
  21. public function executeNew(sfWebRequest $request)
  22. {
  23. $this->form = new MediaForm();
  24. }
  25.  
  26. public function executeCreate(sfWebRequest $request)
  27. {
  28. $this->forward404Unless($request->isMethod(sfRequest::POST));
  29.  
  30. $this->form = new MediaForm();
  31.  
  32. $this->processForm($request, $this->form);
  33.  
  34. $this->setTemplate('new');
  35. }
  36.  
  37. public function executeEdit(sfWebRequest $request)
  38. {
  39. $this->forward404Unless($media = Doctrine::getTable('Media')->find(array($request->getParameter('id'))), sprintf('Object media does not exist (%s).', $request->getParameter('id')));
  40. $this->form = new MediaForm($media);
  41. }
  42.  
  43. public function executeUpdate(sfWebRequest $request)
  44. {
  45. $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
  46. $this->forward404Unless($media = Doctrine::getTable('Media')->find(array($request->getParameter('id'))), sprintf('Object media does not exist (%s).', $request->getParameter('id')));
  47. $this->form = new MediaForm($media);
  48.  
  49. $this->processForm($request, $this->form);
  50.  
  51. $this->setTemplate('edit');
  52. }
  53.  
  54. public function executeDelete(sfWebRequest $request)
  55. {
  56. $request->checkCSRFProtection();
  57.  
  58. $this->forward404Unless($media = Doctrine::getTable('Media')->find(array($request->getParameter('id'))), sprintf('Object media does not exist (%s).', $request->getParameter('id')));
  59. $media->delete();
  60.  
  61. $this->redirect('media/index');
  62. }
  63.  
  64. [b] public function executeMultiply() {
  65. $num = $this->getRequestParameter('number');
  66. if(is_numeric($num)) {
  67. $this->result = $num * 8;
  68. }
  69. else {
  70. $this->result = false;
  71. }
  72. return sfView::SUCCESS;
  73. }[/b]
  74.  
  75. protected function processForm(sfWebRequest $request, sfForm $form)
  76. {
  77. $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
  78. if ($form->isValid())
  79. {
  80. $media = $form->save();
  81.  
  82. $this->redirect('media/edit?id='.$media->getId());
  83. }
  84. }
  85.  
  86. }
  87.  




Teraz pola użyć naszego nowego polecenia, które generuje extJS dla aplikacji
extdirect:generate-api main
W wyniku pojawia się pusty plik [nie dokładnie pusty]
extdirect_api.yml
  1. # DO NOT MODIFY
  2. # Generated by extdirect:generate-api task
  3. { }


Moje pytanie brzmi dlaczego jest on pusty, czy nie powinien wygenerować powiązań między symfony a pluginem?

Pozdrawiam



destroyerr
Nie wygenerował nic chyba dlatego, że zastosowałeś method-level w miejscu dla action-level.
Czapla
a możesz napisać jaśniej smile.gif?
destroyerr
Jeszcze jaśniej niż na stronie plugin'u?
Przeczytaj to co jest pod tymi nagłówkami:
Method-level doc comment options
Action-level doc comment options
Czapla
solved, plz close
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-2025 Invision Power Services, Inc.