$_POST, $_GET, $_FILES
не использовать вообще. Вернее, использовать правильно. У вас одна точка входа - в ней и инициализируйте специальный класс, который работает с этими массивами, и передавайте его дальше в код. Это избавит вас от обращения к глобальным массивам и точно ограничит контекст данными, которые вы можете использовать в текущем запросе. interface SenderInterface
{
public function sendAnswer(string $message): void;
public function supports(string $type): bool;
}
class EmailSender implements SenderInterface
{
public function sendAnswer(string $message): void
{
// тут отправляете сообщение
}
public function supports(string $type): bool
{
return 'email' === $type;
}
}
class SmsSender implements SenderInterface
{
public function sendAnswer(string $message): void
{
// тут отправляете сообщение
}
public function supports(string $type): bool
{
return 'sms' === $type;
}
}
class SenderAggregate
{
private $providers;
public function __construct(SenderInterface ...$providers)
{
$this->providers = $providers
}
public function send(string $type, string $message)
{
foreach ($this->providers as $provider) {
if ($provider->supports($type) {
return $provider->sendAnswer($message);
}
}
throw Exception;
}
}
public function getAll()
{
// code
return new ArrayCollection($posts);
}
...
class ArrayCollection
{
private $collection;
public function __construct($collection)
{
$this->collection = $collection;
}
public function sortByName()
{
return array_filter($this->collection, function(){});
}
}
что я делаю не так
try {
$connection->beginTransaction();
$this->questions->declineQuestion(Question::NEW, $uniqid);
$this->mentorWorks->failWork($userId, $questionId, $uniqid);
$connection->commit();
} catch (\PDOException $e) {
$connection->rollBack();
$this->logger->warning($e->getMessage);
}
<?php for ($i = 0; $i < count($posts); $i++): ?>
<?php if ($i === 2 % 0): ?>
<div class="black">$posts[$i]</div>
<?php else: ?>
<div class="white">$posts[$i]</div>
<?php endif; ?>
<?php endfor; ?>