Cлучайные числа с плавающей точкой в PHP

Стандартные библиотеки PHP умеют генерировать только целые случайные числа. Однако, возникают задачи где нужно не целое рандомное число с максимально длинным хвостом, например, в диапазоне от 0 до 1. В таком случае можно воспользоваться таким способом:

Что не так с этим скриптом?

Очень крутая задача, в которой не всё так просто, как кажется на первый взгляд. Попробуйте найти в ней 2 логические ошибки. SQL-инъекция здесь служит отвлекающим манёвром.

<?php 
 $dest = $_POST['destination']; 
 $result = $_POST['data']['result']; 
 $output = ""; 
 
 if ($dest == 'file') { 
     $file = fopen('storage.txt', 'a+'); 
     fwrite($file, $result); 
     $output = "stored in file"; 
 } elseif ($dest == 'db') { 
     $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'user', 'pass'); 
     $db->exec("INSERT INTO storage (value) VALUES ('{$result}');"); 
     $output = "stored in db"; 
 } 
 
 echo $output;
(далее…)

Как в Laravel 5.5 и 5.4 получать select в виде массива, а не объекта

Laravel, как и большинство фреймворков жертвуют производительностью  и потреблением ресурсов ради сомнительных вещей. Как известно, зачастую узким местом приложений становится база данных, фреймворки же это бутылочное горлышко уменьшают до диаметра волоска. По-умолчанию все данные получаемые через фасад DB возвращаются в виде объектов, массива объектов или коллекции объектов, что может до 10 раз увеличивать потребление памяти, по сравнению с обычными массивами. И это всё в добавок к тому, что сам PHP хранит данные в памяти самым расточительным образом! (далее…)

Интересные решения с HighLoad Cup

В августе 2017 года Mail.Ru Group провёл чемпионат для backend-разработчиков HighLoad Cup. Суть конкурса проста: используя любой стек технологий написать как можно более производительное приложение под ограниченные серверные ресурсы обрабатывающее заранее определённый набор запросов и упаковать его в docker контейнер. Естественно, в лидерах оказались решения на C/C++, Java, GoLang. Что удивительно, PHP стек оказался производительнее NodeJS и Python решений. (далее…)

Laravel Voyager — плюсы и минусы готовой админки

Недавно наткнулся на очередную админку для Laravel - Voyager. На данный момент она имеет 4 715 звёзд на гитхабе, что в 2-5 раз выше, чем у других аналогичных проектов. Мне понравилась видео-презентация и я решил посмотреть Voyager в деле. Далее я постараюсь убедить вас не использовать её в продакшене особенно при CI подходе. (далее…)