Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Symfony własne funkcje, kontroler, widok
Malinaa
post
Post #1





Grupa: Zarejestrowani
Postów: 577
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Malinaa
post
Post #2





Grupa: Zarejestrowani
Postów: 577
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
Go to the top of the page
+Quote Post
LowiczakPL
post
Post #3





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


Cytat(Malinaa @ 9.02.2021, 17:23:21 ) *
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
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 23:40