Yii2 onduidelijk wat betreft gebruik van use


(Peter Verbrugge) #1

Hallo,

Vandaag ben ik begonnen met het verkennen van Yii 2. Werk nu anderhalf jaar met Yii en dat bevalt me uitstekend. Echter, als ik nu naar de nieuwe versie van Yii 2 kijk, begrijp ik er nog maar weinig van. Lees de documentatie wel allemaal, maar kan gewoon geen antwoord vinden op mijn vraag.

Een voorbeeld. In een controller die ik gegenereerd heb met Gii zie ik dit:

use Yii;

use app\modules\cms\models\User;

use app\modules\cms\models\UserSearch;

use yii\web\Controller;

use yii\web\NotFoundHttpException;

use yii\filters\VerbFilter;

Het is me wel duidelijk dat als ik dat weg haal, dat mijn view niet meer werkt. Maar ik begrijp nu totaal niet waarom ik dit allemaal nodig heb. Hoe weet ik nu dat ik dit allemaal nodig heb? In dit geval heeft Gii dit voor mij gedaan, maar wat als ik nu zelf een controller aanmaak? Het is me totaal niet duidelijk hoe en waar ik nu bepaal wat ik precies nodig heb. In de views en model zie ik weer hele andere dingen staan met betrekking tot de use.

Kan iemand mij uitleggen hoe dit nu in elkaar steekt en waar ik in gewoon Nederlands duidelijke uitleg hierover kan vinden?

Alvast bedankt!


(Edofre) #2

Welke editor gebruik je? Ik gebruik phpstorm (betaalde software, maar een goede investering, netbeans of eclipse werkt ook wel volgens mij). Deze editors vullen dit zelf aan/in als het goed is.

Als je er wat meer over wilt weten zou ik op namespaces googlen. Kort gezegd wordt dit gebruikt om duidelijk aan te geven welke class je gebruikt en waar deze nu precies staat. Op deze manier los je bijvoorbeeld ook op dat je een dubbele classname niet kunt gebruiken. Zo kun je bijvoorbeeld twee Session classes hebben, een model dat de database gegevens beheerd en een class die er voor

zorgt dat de php sessie beheerd wordt.


(Peter Verbrugge) #3

Op zich wel enigszins helder, maar ik vraag me af hoe ik nu weet welke namespace waar en wanneer moet gaan gebruiken. Dat kan ik niet helemaal goed terug vinden in de documentatie. Kun jij me vertellen waar ik dat kan vinden?


(Edofre) #4

Deze kan je allemaal vinden die de api, bijvoorbeeld de controller die standaard ge-extend wordt kan je hier vinden (http://www.yiiframework.com/doc-2.0/yii-base-controller.html).

Hier staat de volledige naam van de controller, namelijk yii\web\Controller. De classes van yii staan allemaal in de yii\ namespace. De modellen die je hebt aangemaakt staan in de app\ namespace. Deze namespace staat gedefinieerd in je config file.


(Peter Verbrugge) #5

Ah, dank je wel. Ik ben inmiddels weer iets wijzer geworden van dit alles. :slight_smile: Wel een lastige switch van Yii 1 naar 2. Zal voorlopig nog wel even wennen blijven.


(Evanexcasmagt) #6

Ik zie dat je Engels spreekt dus zal ik het gebruiken, je zegt: "And what does it mean that we will have to work more agile".

Je vertaalt het naar it en dat naar that. "Als" wordt niet gebruikt in dit geval. Duidelijker nu?