if(!empty($str)) {
$data = file_get_contents("http://example.com/data/collect.php?str=" . urlencode($str));
}
IDE Ругается, заставляет изменить на
protected $pics;
// вы уверены что тип у айди - стринг? и что его надо передавать в конструктор?
public function __construct(string $id)
{
$this->id = $id;
$this->pics = new ArrayCollection();
}
// здесь элемент должен быть строго экземпляром класса Pic, потому что вы знаете какой элемент хотите добавить и вы не хотите добавлять "пустые" картинки
/**
* Add pic
*
* @param Pic $pic
*/
public function addPic(Pic $pic)
{
if (! $this->pics->contains($pic)) {
$this->pics[] = $pic;
}
}
// здесь элемент должен быть строго экземпляром класса Pic, потому что вы знаете какой элемент хотите удалить
public function removePic(Pic $pic)
{
$this->pics->removeElement($pics);
}
// можете получить null, если не проинициализируете поле по умолчанию в конструкторе. Но обычно вы будете получать этим методом список картинок которые есть у отеля
public function getPics(): ? ArrayCollection
{
return $this->pics;
}
// можете передать null, либо, если угодно, пустую коллекцию - чтобы удалить сразу все картинки.
// в иных случаях вы знаете что должны передать всю коллекцию картинок за раз.
public function setPics(? ArrayCollection $pics)
{
$this->pics = $pics;
}
А может лучше сначала ициализировать Pic,
как-то неправильно получается, в setPic ты ожидаешь Pic, а вместо него прилетает null,
public function setPic( ? Pic $pic) {
$this->pics = $pic;
}