Nette a tvorba Class diagramu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kloban
Člen | 123
+
0
-

Ahoj,
objektovému programování jsem se bohužel dlouho vyhýbal a začal jsem s ním až zároveň s nette frameworkem.

Momentálně mám svůj projekt ve fázi kdy je funkční a chystám se ho nasadit na otestování a poté budu ještě dolaďovat funkčnost.

Jelikož je to zároveň závěrečná práce do školy, potřebuji k němu i technickou dokumentaci, takže jsem se až teď začal zajímat o tvorbu UML.

Use case diagramy jsem udělal za chvíli a jsem s nimi spokojen.

Problém mám s Class diagramy. Zjistil jsem, že v projektu vlastně nemám vůbec žádné vazby (kompozice, agregace, ..). Nejsem si jist jestli je to chyba měho návrhu, nebo vlastnost Nette. Děláte v kódu tyto vazby? Opoměl jsem něco?

Nevím jestli jsem nenapsal dotaz příliš obecně či zmateně, tak to prosím omluvte.
Díky za všechny reakce. Dan

Azathoth
Člen | 495
+
0
-

tyto vazby by měly být mezi presentery a modelem. presentery mají v sobě kompozicí různé služby/třídy modelu.

bazo
Člen | 620
+
0
-

kloban napsal(a):

Ahoj,
objektovému programování jsem se bohužel dlouho vyhýbal a začal jsem s ním až zároveň s nette frameworkem.

Momentálně mám svůj projekt ve fázi kdy je funkční a chystám se ho nasadit na otestování a poté budu ještě dolaďovat funkčnost.

Jelikož je to zároveň závěrečná práce do školy, potřebuji k němu i technickou dokumentaci, takže jsem se až teď začal zajímat o tvorbu UML.

Use case diagramy jsem udělal za chvíli a jsem s nimi spokojen.

Problém mám s Class diagramy. Zjistil jsem, že v projektu vlastně nemám vůbec žádné vazby (kompozice, agregace, ..). Nejsem si jist jestli je to chyba měho návrhu, nebo vlastnost Nette. Děláte v kódu tyto vazby? Opoměl jsem něco?

Nevím jestli jsem nenapsal dotaz příliš obecně či zmateně, tak to prosím omluvte.
Díky za všechny reakce. Dan

Nechaj si ten class diagram vytvorit Enterprise architektom, potom natahaj sipocky podla vlastného uvazenia a mas to. Ale kompoziciu mas vsade tam, kde prijimas iny objekt konstruktorom, cize tej budes mat asi vela.

Tharos
Člen | 1030
+
+1
-

bazo napsal(a):

Ale kompoziciu mas vsade tam, kde prijimas iny objekt konstruktorom, cize tej budes mat asi vela.

Pozor, z hlediska UML to není kompozice, ale asociace. :)

Editoval Tharos (13. 12. 2014 0:30)

kloban
Člen | 123
+
0
-

Dělám to v Umbrello. A když se na to dívám, tak tam v konstruktoru nikde jiný objekt nemám.

Chci se zeptat ještě na jednu věc. Jaký datový typ má tato proměnná:

	/** @var Nette\Database\Context */
	private $database;

bazo napsal(a):

Nechaj si ten class diagram vytvorit Enterprise architektom, potom natahaj sipocky podla vlastného uvazenia a mas to. Ale kompoziciu mas vsade tam, kde prijimas iny objekt konstruktorom, cize tej budes mat asi vela.

Oli
Člen | 1215
+
0
-

Ono by to mělo být v konstruktoru, ale Nette pro to má takovou berličku v podobě inject metod a inject anotací. Podle mě, z pohledu UML by všechno co je v inject metodě/anotaci mohlo být asociací.

PHP je dynamicky typovanej jazyk. Ta proměnná má takovej typ, jaký mu zrovna předáš. Pokud ten typ nikdy nezměníš a třeba právě přes konstruktor si injectneš ten Context, tak má typ Context. Pokud je to volitelný parametr, tak bych u toho uvedl, že to je Context nebo NULL. Jestli to je z pohledu UML správně nebo ne nevím…

Btw. modelový třídy a komponenty (dědící Control) nepoužíváš? Tam by jsi neměl mít konstruktor prázdnej skoro nikdy (aspon ja ho nemam skoro nikdy prazdnej :-))