::
используется в статическом контексте, т.е. когда какой-либо метод или свойство объявлен как статический:
class Math {
public static function sin($angle) {
return ...;
}
}
$result = Math::sin(123);
Кроме того, оператор ::
(оператор разрешения области действия, aka Paamayim Nekudotayim ) используется в динамическом контексте, когда вы вызываете метод / свойство родительского класса:
class Rectangle {
protected $x, $y;
public function __construct($x, $y) {
$this->x = $x;
$this->y = $y;
}
}
class Square extends Rectangle {
public function __construct($x) {
parent::__construct($x, $x);
}
}
->
используется в динамическом контексте, т.е. когда вы имеете дело с некоторым экземпляром некоторого класса:
class Hello {
public function say() {
echo 'hello!';
}
}
$h = new Hello();
$h->say();
Кстати: я не думаю, что использование Symfony - хорошая идея, когда у вас нет опыта ООП.