Estimado, UML es independiente del lenguaje de programación, el único requisito es que el lenguaje soporte POO y PHP5 lo hace (bueno, hasta hace poco agregaron namespaces, así que ya estamos bastante completitos
).
Sobre UML hay muchas corrientes, la actual es simplificar al máximo el uso del diagrama, casi quedándonos con las relaciones básicas, como asociaciones, agregaciones y dependencias. Es decir, muchos desarrolladores no le dan mucha importancia a la "composición" y se quedan simplemente con "agregación" (también dependerán del contexto del lenguaje, como el "stateless", ya que luego de cada ejecución indudablemente todo "muere").
La agregación ("la flecha que en su base tiene un rombo") siempre se traduce en un atributo que es de tipo Array (contenedores de "algo") y de alguna forma siempre un método de tipo "add" para agregar los objetos que serán contenidos.
Código PHP:
<?php
class Mueble
{
private $cajon = array();
public function add( ElementoGuardable $elemento )
{
$this->cajon[] = $elemento;
}
}
interface ElementoGuardable
{
public function __toString();
}
class Tijera implements ElementoGuardable
{
public function __toString()
{
return "soy tijera!";
}
}
$Mueble = new Mueble();
$Mueble->add( new Tijera() );
$Mueble->add( new Tijera() );
var_dump( $Mueble );
?>
// resultado
object(Mueble)#1 (1) {
["cajon:private"]=>
array(2) {
[0]=>
object(Tijera)#2 (0) {
}
[1]=>
object(Tijera)#3 (0) {
}
}
}
La asociación ("flecha continua") se traduce en definir un atributo de una clase de tipo objeto de otra, y
la dependencia ("flecha discontinua") se da cuando recibes por parámetro un objeto o cuando creas una instancia dentro de un método ("relación de uso", "lo usas y lo tiras", "nace con el método y muere al terminar", etc).
Pero, lo más importante de todo, aunque estos conceptos no hay casi discusión de su traducción a código, un diagrama UML siempre está sujeto a interpretación y dependerá su detalle de acuerdo al público objetivo del mismo (expertos, novatos, etc).
Espero haber aportado algo.
PD: Sugiero que busques por
POO PHP5 UML, y creo que en este foro ya hemos hablado también de este tema, así que puedes buscar por UML a ver que encuentras.