Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie nowej instancji obiektu
Forum PHP.pl > Forum > Przedszkole
Koldy
Czesc witajcie, w sumie juz wiem jak to zorbic, ale chcialbym poruszyc dyskusje, moze sie dowiem czegos nowego.

Mianowicie postanowilem dodac namespaces do mojego kodu i oczywisicie wciaz potrzebuje zainicjowac controller, tylko z teraz z inna troszke nazwa, a wiec mam:
  1. $controller = '\\' . Config::get('name', 'controller.namespace') . '\\' . $this->uri->getController();
  2. $this->controller = new $controller;


Tak, to dziala, ale cos w tym musi byc nie tak, gdyz netBeans gupieje i mi bledy wyrzuca i podswietla linijke na czarno co mnie dosc mocno irytuje.
Doszedlem do rozwiazania typu:
  1. $reflection_class = new ReflectionClass($class);
  2. return $reflection_class->newInstanceArgs($params);


No i tu moje pytanie, czy na prawde musze uzywac reflectionclass i inicjowac ja zeby zainicjowac moj obiekt? czy nie ma innej drogi do zainicjowania obiektu z postaci stringu?
dodam ze wczesniej, gdy nie bylo namespaces netbeans nawet nie krzyczal bo bylo proste inicjowanie typu:
  1. $this->controller = new $name;


Pozdrawiam
Daimos
a może podkreśla przez to?
  1. Config::get('name', 'controller.namespace')

Nie wiem z czego korzystasz, czy Config jest w aktualnej przestrzeni?
Mi tego kodu nie podkreśla, więc podejrzewam, że albo źle opisujesz problem, albo coś nie tak w innej części pliku, ew. projektu.
Sprawdź jaki błąd wyrzuca netbeans, bo oprócz podkreślenia, są też ich opisy
Koldy
Blad jest nieistotny jest to hint, nie error, zle sie wyrazilem.

Config ma sie dobrze i jest w przestrzeni nazw, laduje plik i zawiera wartosci, chodzi mi po prostu o sposob na nowa instancje.

hint w netBeans to:
Kod
Abstract class \Core\Controller can not be instantiated


Pozdrawiam

Ps. kod dziala jak jest, interpretor nie ma z nim problemow, ale netBeans cos mu sie nie widzi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.