Список комментариев Артур

Reflesh, я плохо знаком с Laravel, не могу по этому поводу ничего сказать.
Статика
В данном случае не вижу причин не использовать статику.
Написал: (23.06.2016 / 23:57)
Вся проблема в том, что setUp и tearDown вызываются для каждого метода теста, то-есть каждый метод теста индивидуальный, это такое убожество
Вас никто не заставляет использовать методы setUp и tearDown при тестировании. Я, к примеру, пользуюсь этими методами для совсем уж простеньких тестов, для остального я использую фабричные методы.
Сохранить что-то для следующих методов тестов
Сохранять что-то между методами теста это моветон.
тут в setUp для каждого теста наполняем бд данными а в tearDown удаляем все
Так делать не рекомендуется. Если есть возможность, необходимо заменить работу с базой mock объектами, если такой возможности нет, то создавать данные в базе следует на уровне setUpBeforeClass метода.
А mock, так это вообще, что за чудо конструктор лего
Mock это Mock, не больше, не меньше.
Написал: (23.06.2016 / 22:50)
Reflesh, не совсем понял комментарий. Тесты дробятся на методы, чтобы было проще найти причину ошибки. Если у вас в одном методе теста слишком много тестируется, то локализовать ошибку будет сложнее, ибо не понятно, что именно привело к ее возникновению, но если разбить один большой метод теста на 10 маленьких и в процессе тестирования 2-3 из этих методов не пройдут, то будет сразу понятно, в чем была причина ошибки.
Написал: (23.06.2016 / 17:44)
KpuTuK, позволяет не заботится о производительности запросов вида:
<?php
foreach($messages as $message){
  $mysqli->myQuery('INSERT INTO messages (title, author, message) VALUES (?, ?, ?)', [...]);
}

Написал: (10.01.2016 / 00:22)
Ну тут спорно. Лучше сделать некий кеш, в который будут добавляться stmt как то так:
<?php
  public function myQuery($query, $params, $isClean = true){
    if(!isset($this->statements[$query])){
      $this->statements[$query] = $this->prepare($query);
    }
    $stmt = $this->statements[$query];
    $p = array_values($params);
    array_unshift($p, array_keys($params));
    call_user_func_array([$stmt, 'bind_param'], $p);
    $result = $stmt->execute();
    if($isClean){
      $stmt->close();
      unset($this->statments[$query]);
    }
    return $result;
  }

Написал: (09.01.2016 / 23:19)
как то лаконичние
<?php
class MyMysqli extends mysqli{
  public function myQuery($query, $params){
    $stmt = $this->prepare($query);
    $p = array_values($params);
    array_unshift($p, array_keys($params));
    call_user_func_array([$stmt, 'bind_param'], $p);
    return $stmt->execute();
  }
}                                                             
$mysql = new MyMysqli("localhost", "my_user", "my_password", "world");
$mysql->myQuery('SELECT * FROM users WHERE login = ?', ['s' => 'admin']);

Написал: (09.01.2016 / 22:43)
например? через foreach?
Через Redis
много кто не любит подготовленные запросы (взять тот же пдо клас в роторе)
ротор было дело и БД не любил
Написал: (09.01.2016 / 22:42)
Экономия через кэширование гораздо более эффективный способ повышения производительности, чем подобные рекомендации ;)

Писать не многим больше, достаточно обернуть стандартный класс mysqli и поправить семантику на подходящую.
Написал: (09.01.2016 / 22:22)
Сначала подготавливаем запрос
Затем привязываем параметры

К примеру:
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$select = $mysqli->prepare("SELECT * FROM users WHERE login=?");
$select->bind_param("s", 'admin');
$result = $select->fetch();

Написал: (09.01.2016 / 17:18)
klesh, оттого я и нтересуюсь.
Написал: (20.11.2014 / 16:55)