Symfony własne funkcje, kontroler, widok |
Symfony własne funkcje, kontroler, widok |
5.02.2021, 18:15:53
Post
#1
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Symfony. Jak załadować własne funkcje do kontrolera i/lub widoku?
Mam tak: 1. Dodałem plik w katalogi src/Bundle/Twig/AppFunctions.php (funkcja dla testu) Kod <?php namespace Bundle\Twig; class AppFunctions { public function getTName() { return 'Test Name'; } } W tym pliku chciałbym umieścić wszystkie dodatkowe funkcje jakie będą potrzebne na stronach projektu 2. W services.yaml dodałem kod Kod # My Functions app.twig_functions: class: Bundle\Twig\AppFunctions public: false tags: { name: twig.functions } 3. W pliku IndexController.php Kod <?php namespace App\Controller; use App\Entity\Users; use App\Entity\Articles; use App\Bundle\Twig\AppFunctions; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Routing\Annotation\Route; class IndexController extends AbstractController { /** * @Route({"pl": "/", "en": "/"}, name="index") */ public function index() { $em = $this->getDoctrine()->getManager(); $indexArticles = $em->getRepository(Articles::class)->findBy(['index' => true], ['uploaded_at' => "DESC"], $max = 4, $first = null); return $this->render('index/index.html.twig', [ 'indexArticles' => $indexArticles ]); } } Pytanie jak dodać własne funkcje, które mają formatować dane widoku z tablicy $indexArticles a ) formatowanie opisu b ) funkcja generująca SEO link i inne funkcje używane na podstronach projektu. -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
5.02.2021, 18:23:07
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 270 Pomógł: 184 Dołączył: 7.10.2012 Skąd: Warszawa Ostrzeżenie: (0%) |
A nie możesz po prostu wstrzyknąć jako argument kontrolera lub jako argument metody ? A po zatym nie lepiej utworzyć po prostu service na takie coś?
Ten post edytował rad11 5.02.2021, 18:23:33 |
|
|
5.02.2021, 18:51:10
Post
#3
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Myślałem nad service, czy będzie tu najlepszym rozwiązaniem, kiedy dobrze byłoby dodać tekie rozszerzenia do Twiga?
Sprawdziłem {{ content|slice(0, 300) }} ale nie wyświetla oczekiwanego wyniku, więc chciałbym dodać własną funkcję. Podobnie z SEO linkiem, wolałbym własny, bo mogę go utworzyć jak chcę dla starej strony i obecnych linków (nie trzeba będzie od nowa pozycjonwać podstron). Ten post edytował Malinaa 5.02.2021, 19:09:56 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
5.02.2021, 20:13:29
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
A pamiętasz o https://www.php.net/manual/en/language.oop5...p#object.invoke ?
-------------------- |
|
|
5.02.2021, 21:11:01
Post
#5
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Z ciekawości. Skąd mam pamiętać? I do czego zmierzamy!
Jako pasjonat myślę, że zadałem proste pytanie (dla znawcy Symfony), a odnoszę wrażenie, że wywołujemy błędne koło. Nie tyle znam, co próbuję Symfony, teraz pobłądziłem w ciemności. Nie rozwiązujemy problemu, a stwarzamy stare/nowe. Nie wiem jak dodać własne funkcje w Symfony, które w widoku pokażą to chcę wywołać, sformatowany kod dobrze czytelny dla przeglądarek i użytkownika, mając na uwadze, że przystosowuję projekt do istniejącej nie szablonowej strony Ten post edytował Malinaa 5.02.2021, 21:52:11 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
6.02.2021, 10:25:51
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
Dawno nie pisalem w symfony tego typu rzeczy, ale czy to nie jest to czego szukasz?
https://symfony.com/doc/current/templating/..._extension.html -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.02.2021, 17:33:41
Post
#7
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Byłem na podanej stronie i stąd zacząłem pisać rozszerzenie, ale coś nie szło.
Usiadłem dzisiaj i mnie olśniło. Dzięki nospor. Dodany filtr śmiga. Ten post edytował Malinaa 6.02.2021, 17:35:03 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
7.02.2021, 18:23:05
Post
#8
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
podpowiem tylko tyle że nie używa się już takiego dostępu do repozytorium ...
teraz pisze się
-------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
9.02.2021, 17:23:21
Post
#9
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) |
Nie używa się od której wersji Symfony? U mnie moja opcja 1 działa, a 2 nie chce działać.
Skąd "pobierasz" takie informacje (daj znać nie będę musiał tracić czasu na szukanie). Irytuje mnie już to Symfony nie chodzi najlepiej, strona długo się otwiera... ponadto w PHP miałbym projekt ukończony, a teraz muszę rzeźbić z encjami itd., cóż nikt nie mówił, że pierwszy projekt w tym frameworku będzie łatwy. Zastanawiam się, czy to dobry pomysł z tym Symfony? Ten projekt strony nie jest dla mnie priorytetowy, zacząłem go jakieś dwa lata temu, była wówczas wersja Symfony 3, potem nie miałem czasu na te stronkę, wróciłem do projekt na jesień zeszłego roku i musiałem poprzednią całość przepisać do Symfony 5, teraz chciałem przy tym usiąść i zaś dobrze byłoby zaktualizować Symfony i przepisać wszystko od nowa - trochę lipa z takim Symfony (za 5 lat może go nie być, wejdzie ciekawsze rozwiązanie). Przepisanie strony z PHP 5.6 do >7 to bułka z masłem, ale przepisanie wszystkiego w Symfony to kawał czasu, można się zmęczyć, a po co, i strona chodzi na tym frameworku ciężko. Pytanie. Jeśli aktualizacje kodu tej stron planuje za 10 lat, czy nie lepiej stworzyć ten projekt w czystym PHP (co przemawia za Symfony, a co za czystym PHP)? Ten post edytował Malinaa 9.02.2021, 17:25:21 -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
9.02.2021, 17:37:40
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 446 Pomógł: 6292 Dołączył: 27.12.2004 |
Jesli stronka chodzi ci wolno to nie wina Symfony tylko tego, ze cos zle napisales. Appki na symfony chodza calkiem szybko a samo Symfony jest optymalizowane by chodzic jak najszybciej.
Generalnie nie pisze sie juz sstronek w czystym php tylko uzywa sie Frameworkow, ktore odwalaja za ciebie kawal roboty oraz jest wiele dostepnych paczek, ktore jeszcze ci pomoga i przyspiesza. Zgadzam sie jednak z toba, ze pierwszy projekt w danym FW moze byc meczacy. Ja tam tez szczegolnie za tym calym doctrine* nie przepadam i jak nie musze to omijam szerokim lukiem * jak juz ci wczesniej pisalem to nie symfony jako takie a doctrine. nie musisz tego uzywac. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
11.02.2021, 17:59:55
Post
#11
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) |
Nie używa się od której wersji Symfony? U mnie moja opcja 1 działa, a 2 nie chce działać. Skąd "pobierasz" takie informacje Od wersji 4.4 wstrzykuje się repo, w 3.4 jest Twój stary sposób. Wszystko jest napisane w dokumentacji Symfony. Aby ten właściwy sposób zadział musisz mieć oczywiście zrobione repozytorium danej Encji. W repozytoriach tych trzyma się większe zapytania danej encji. Używanie Doctrine w Symfony usprawnia i przyspiesza pisanie aplikacji. Dzięki Doctrine przełączenie się na inną bazę danych MySql/Postgres/Mongo to tylko zmiana adresu serwera z bazą danych. Oczywiście jeśli korzystasz poprawnie z DQLa a nie Query Stringa. Ten post edytował LowiczakPL 11.02.2021, 18:09:39 -------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
Wersja Lo-Fi | Aktualny czas: 18.04.2024 - 16:17 |