Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Symfony. Problem z routingiem.
ino
post 19.06.2022, 18:46:24
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 28.05.2022

Ostrzeżenie: (0%)
-----


Witam. Opiszę mój problem, nie będzie to profesjonalny opis ale mam nadzieję, że da się to zrozumieć.

Posiadam 2 strony internetowe oparte na 1 "źródle", w którym są połączenia z bazą danych, wszystkie controllery itd. Mój problem polega na tym, że chcąc zmienić coś w komponencie odpowiadającym za np. stronę startową to zmieni mi się wszystkim dwóch stronach. Chciałem to rozdzielić robiąc inną funkcję i podmieniając to w routingu.

Z : 'main' => array(array(), array('_controller' => Controller\\PagesController::index'), array(), array(array('text', '/')), array(), array()),
Na: 'main' => array(array(), array('_controller' => Controller\\PagesController::index2'), array(), array(array('text', '/')), array(), array()),

Teraz moje 1 pytanie: Gdzie powinien znajdować się ten routing bo wydaje mi się, że jest on w trochę dziwnym miejscu. (stronka>var>cache> srcdebugprojecturlgenerator.php)
2 pytanie: Czy mój pomysł jest dobry czy da się to lepiej zrobić?
3 pytanie: Czy ten routing powstał w jakiś automatyczny sposób? Symfony przerobił sobie inne pliki, z których powstał ten? Czy da się to ręcznie napisać dla każdej z podstron?

Wstawiam cały plik z tym routingiem, który znalazłem:

  1. <?php
  2.  
  3. use Symfony\Component\Routing\RequestContext;
  4. use Symfony\Component\Routing\Exception\RouteNotFoundException;
  5. use Psr\Log\LoggerInterface;
  6.  
  7. /**
  8.  * This class has been auto-generated
  9.  * by the Symfony Routing Component.
  10.  */
  11. class srcProdDebugProjectContainerUrlGenerator extends Symfony\Component\Routing\Generator\UrlGenerator
  12. {
  13. private static $declaredRoutes;
  14. private $defaultLocale;
  15.  
  16. public function __construct(RequestContext $context, LoggerInterface $logger = null, string $defaultLocale = null)
  17. {
  18. $this->context = $context;
  19. $this->logger = $logger;
  20. $this->defaultLocale = $defaultLocale;
  21. if (null === self::$declaredRoutes) {
  22. self::$declaredRoutes = array(
  23. 'main' => array(array(), array('_controller' => Controller\\PagesController::index'), array(), array(array('text', '/')), array(), array()),
  24.  
  25. itd dla róźnych podstron.


Z góry dzięki za pomoc.

Ten post edytował ino 19.06.2022, 18:47:01
Go to the top of the page
+Quote Post
Salvation
post 19.06.2022, 23:01:56
Post #2





Grupa: Zarejestrowani
Postów: 343
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Jaka wersja Symfony to jest?
Go to the top of the page
+Quote Post
ino
post 20.06.2022, 20:44:59
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 28.05.2022

Ostrzeżenie: (0%)
-----


Nie wiem czy dobrze sprawdzam ale wydaje mi się, że 4.1.1

  1. const VERSION = '4.1.1';


Pojawiło się jeszcze jedno pytanie. Mam bazy danych do każdej ze stron. Wszystkie funkcje pobierające potrzebne dane są zawarte w pliku DB.php. Oczywiście obie strony korzystają z tego samego pliku ale posiadają inne nazwy swojej bazy. Tutaj pytanie: Gdzie może znajdować się jakiś zapis określający, że np. stronka1 ma korzystać z pliku DB ale dla bazy o nazwie db_stronka1?
Go to the top of the page
+Quote Post
ohm
post 20.06.2022, 20:47:06
Post #4





Grupa: Zarejestrowani
Postów: 618
Pomógł: 143
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


1. W cache sie tego nie zmienia, https://symfony.com/doc/current/routing.html - kwestia czy masz routing w yaml czy w controllerach, dostosuj sobie.
3. Tak, cache jest generowany z annotations czy yaml
Go to the top of the page
+Quote Post
Salvation
post 21.06.2022, 07:55:10
Post #5





Grupa: Zarejestrowani
Postów: 343
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Na moje, to będzie lepiej jak napiszesz Bundle pod swój system, bo "luźne" pliki nie bardzi będą chciały współgrać z frameworkiem i tym co sobie zaplanowałeś by zrobić.

Wracając do Routingu. To w obiekcie Request masz informację skąd przychodzi rządanie. Jeżeli domenaA jest różna od domenyB, to tam to wyłapiesz. I możesz później wyświetlić inny widok w zależności od domeny właśnie.
Go to the top of the page
+Quote Post
ino
post 21.06.2022, 18:54:11
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 28.05.2022

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedzi. Spróbuję dodać coś w routingu i zobaczę co wyjdzie.

Ten post edytował ino 21.06.2022, 19:10:30
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 15:14