Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][Symfony2][Symfony]Helpery w Symfony2
soszin
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 26.10.2012
Skąd: Kraków

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


Cześć,

Zwracam sie do Was z prośbą o nakierowanie gdzie umieszczac helpery których chce uzywać w calym projekcie.
Tworze własny system CMS. Kazdą funkcjonalność jest osobnym Bundlem, np. News, Gallery, Article itp.

W helperach chce umieszczac funkcje np. do tworzenia cleanURL.

Myslalem utworzyć HelperBundle gdzie utworzyłbym katalog Helper i tworzył różne klasy np. HTML i umieszczał helpery to trimowania, usuwania znaków html itp.
TEXT - do pracy na stringach , URL do pracy na adresach URL itd.

Potem utworzyć serwisy i uzywać dowolnym miejscu/

Czy ten sposób jest ok? jak to lepiej rozwiązac? jak Wy to robicie?

Drugie pytanie:
Jak uzyskać dostep do servisu w __construktor()

Dostaje bład:
Call to a member function get() on a non-object in /var/www/apps/lovecoding_cms/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php

Jeśli chce uzyc serwisu w ponizszy sposob

Kod
    public function __construct()
    {
        $breadcrumbs = $this->get("white_october_breadcrumbs");
    }


Próbowałem również:

Kod
    use Symfony\Component\DependencyInjection\ContainerInterface;

    public function __construct(ContainerInterface $container)
    {
        $this->_container = $container;
        $breadcrumbs = $this->_container->get("white_october_breadcrumbs");
    }


Teraz otrzymuje:
Catchable Fatal Error: Argument 1 passed to Lovecoding\AdminBundle\Controller\MainController::__construct() must implement interface Symfony\Component\DependencyInjection\ContainerInterface, none given, called in /var/www/apps/lovecoding_cms/app/cache/dev/classes.php on line 2393 and defined in /var/www/apps/lovecoding_cms/src/Lovecoding/AdminBundle/Controller/MainController.php line 17


Moj controller dziedziczy po Controller

Kod
class MainController extends Controller {



Czekam na odpowiedzi.
Pozdrawiam.

Ten post edytował soszin 3.09.2014, 23:05:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Kontener jest wstrzykiwany poprzez metodę setContainer nie konstruktor kontrolera.
2. Przecież dodanie "Home'a" możesz zrobić w momencie tworzenia samej usługi odpowiedzialnej za breadcrumbs'y.

---

"Helpery" to bardzo, bardzo ogólna nazwa. Część zrealizujesz sobie zapewne przez zwykłe klasy, a część przez usługi (w kontekście DIC-a). Część z nich może być na tyle mocno związana z projektem, że nie będzie sensu wrzucać ich nigdzie indziej jak do jakiegoś bundle'a, część będzie kompletnie niezależna i można pomyśleć o wydzieleniu ich do zupełnie osobnego projektu. Co, gdzie, jak, kiedy? To już zależy od tego co to konkretnie jest.

Ten post edytował Crozin 4.09.2014, 12:40:30
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: 29.12.2025 - 12:58