• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony 4 - Tworzenie i używanie szablonów i dodawanie css/js

0 głosów
1,452 wizyt
pytanie zadane 1 stycznia 2018 w PHP, Symfony, Zend przez Kerdi26 Początkujący (470 p.)
Cześć, ostatnio zacząłem się uczyć symfony 4 albo przynajmniej staram się to robić. I mam problem bo z samej oficjalnej dokumentacji nie wiele rozumiem i doszedłem do poziomu, że wiem jak w ruterze pisać odpowiednie ścieżki do kontrolerów, tam zwracać odpowiedzi poprzez obiekt response i tu się zatrzymałem bo nie wiem jak mam importować do takiego kontrolera szablony, które mam przykładowo w katalogu templates w głównym folderze aplikacji. I jak potem przez obiekt response, lub w inny sposób zwracać jako odpowiedź te szablony, oraz jak w samych szablonach przez funkcję asset odwoływać się do własnych cssów i jsów. I jeśli ktoś by mógł to prosiłbym o dokładne wytłumaczenie tych rzeczy krok po kroku, z góry dzięki

1 odpowiedź

+2 głosów
odpowiedź 1 stycznia 2018 przez Arkadiusz Waluk Ekspert (247,590 p.)

bo nie wiem jak mam importować do takiego kontrolera szablony, które mam przykładowo w katalogu templates w głównym folderze aplikacji. I jak potem przez obiekt response, lub w inny sposób zwracać jako odpowiedź te szablony,

Coś słabo dokumentację w takim razie studiujesz, bo to jest pokazane już na samym początku :) 

http://symfony.com/doc/current/page_creation.html#rendering-a-template - tu jest wszystko pokazane, wystarczy zwrócić wynik metody $this->render(). Do render() podajesz nazwę tego szablonu (bez ścieżki bo ta zdefiniowana jest w configach), dalej ewentualne parametry przekazywane do widoku.

Oczywiście zakładam, że masz już zainstalowanego bundle z Twigiem i dziedziczysz po bazowym kontrolerze, wtedy będziesz miał w każdym metodę render().

jak w samych szablonach przez funkcję asset odwoływać się do własnych cssów i jsów

Umieszczasz taki własny asset w katalogu public i względem niego podajesz ścieżkę do pliku. Czyli gdy umieścisz np. plik CSS bezpośrednio w katalogu public wystarczy że dasz asset('plik.css'), jeśli zrobisz podkatalog np. css/ to będzie to asset('css/plik.css'). O resztę dba Symfony.

komentarz 29 kwietnia 2018 przez Kerdi26 Początkujący (470 p.)

Okej niespecjalnie wiem co zrobiłem, bo robiłem dużo i w pewnym momencie zorientowałem się, że, gdy korzystałem z TestCase to zaczęło działać, ładowanie klas też, dalej jednak pozostaje kwestia z KernelTestCase i WebTestCase bo wyskakuje problem:

LogicException : You must set the KERNEL_CLASS environment variable to the fully-qualified class name of your Kernel in phpunit.xml / phpunit.xml.dist or override the App\Tests\Repository\VictoriousRepositoryTest::createKernel() or App\Tests\Repository\VictoriousRepositoryTest::getKernelClass() method.

Który udało mi się obejść, gdy w metodzie getKernelClass w pliku KernelTestCase robię coś takiego:

 protected static function getKernelClass()
    {
        /*
        if (!isset($_SERVER['KERNEL_CLASS']) && !isset($_ENV['KERNEL_CLASS'])) {
            throw new \LogicException(sprintf('You must set the KERNEL_CLASS environment variable to the fully-qualified class name of your Kernel in phpunit.xml / phpunit.xml.dist or override the %1$s::createKernel() or %1$s::getKernelClass() method.', static::class));
        }

        if (!class_exists($class = $_ENV['KERNEL_CLASS'] ?? $_SERVER['KERNEL_CLASS'])) {
            throw new \RuntimeException(sprintf('Class "%s" doesn\'t exist or cannot be autoloaded. Check that the KERNEL_CLASS value in phpunit.xml matches the fully-qualified class name of your Kernel or override the %s::createKernel() method.', $class, static::class));
        }
        */

        return \App\Kernel::class;
    }

Ale to nie rozwiązuje problemu na dłuższą metę, tutaj masz linka do gita z projektem, który zrobiłem, po to żeby szukać rozwiązania https://github.com/robert611/Project_2

komentarz 29 kwietnia 2018 przez Arkadiusz Waluk Ekspert (247,590 p.)
Yhm... nie wiem o co chodzi, ale u mnie to działa.

Zrobiłem po kolei:

- git clone git@github.com:robert611/Project_2.git
- composer install
- ./vendor/bin/phpunit

Efekt:

PHPUnit 7.1.5 by Sebastian Bergmann and contributors.

Testing Project Test Suite
..                                                                  2 / 2 (100%)

Time: 437 ms, Memory: 28.00MB

OK (2 tests, 2 assertions)

Chyba że czegoś nie rozumiem i to "obejście" jest jeszcze gdzieś w obecnych plikach i muszę to usunąć?
komentarz 29 kwietnia 2018 przez Kerdi26 Początkujący (470 p.)
A tak, masz wersję z zakomentowanym sprawdzeniem wyjątków i przypisanym return \App\Kernel::class w Pliku KernelTestCase, tak jak widać w poprzednim poście.
komentarz 29 kwietnia 2018 przez Arkadiusz Waluk Ekspert (247,590 p.)
A ten plik nie jest czasem w vendorze? Bo vendora pobierałem przecież normalnie (composer install), nie ma w nim żadnej Twojej modyfikacji i komentarzy ;)
komentarz 10 maja 2018 przez Kerdi26 Początkujący (470 p.)

Z tym vendorem fakt, nie wiem więc co jest nie tak u siebie zostawiłem to ze zmianą i niech już działa tak jak jest.  A jeśli chodzi o kodowanie znaków w aplikacji symfony trzeba coś zmieniać po za tym fragmentem w doctrine.yaml

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: '5.7'
        charset: utf8
        default_table_options:
            charset: utf8
            collate: utf8_polish_ci

 

Podobne pytania

0 głosów
0 odpowiedzi 42 wizyt
0 głosów
1 odpowiedź 113 wizyt
pytanie zadane 21 maja w PHP, Symfony, Zend przez hiper007 Stary wyjadacz (10,860 p.)
0 głosów
0 odpowiedzi 54 wizyt
pytanie zadane 11 marca 2017 w PHP, Symfony, Zend przez niezalogowany
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.FAQ

64,233 zapytań

110,623 odpowiedzi

231,914 komentarzy

46,971 pasjonatów

Przeglądających: 210
Pasjonatów: 13 Gości: 197

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...