Особенности http_build_query в PHP

Казалось бы http_build_query — простая функция, однако, имеет некоторые особенности. Нельзя однозначно сказать что это баг, скорее просто недокументированная фича, которую стоит учитывать при разработке. Допустим, есть массив ['page' => 2, 'hide' => null]. Что же вернёт http_build_query в результате? Это будет просто page=2, аргумент hide был отброшен, т.к. он имеет значение null! Что будет, если передать массив, где все значения будут null? Функция вернёт строку нулевой длины. (далее…)

Установить Composer как системную команду в Linux

Сейчас мало проектов на PHP обходятся без пакетного менеджера Composer. Однако, он не является предустановленным пакетом в операционных системах даже при наличии установленного php.

Как сделать ЧПУ (Slug, ModRewrite, Seo Friendly Url) для Laravel

Не все знают, что такое слаги (на английском slug), зачем они нужны, и как их использовать в Laravel. Итак, что такое слаг и зачем он нужен. Как нам подсказывает вики — это семантический URL. Отсюда можно сделать вывод, что это ссылка которая помогает и пользователям и поисковым роботам понять, что находится по этой ссылке. Так же эти штуки известны как ModRewrite, SEF (Seo Friendly Url), ЧПУ (Человеко-Понятный УРЛ). (далее…)

Как экспортировать данные из MongoDB в CSV

MongoDB неплохо справляется с задачей хранения огромных коллекций неструктурированных данных. Иначе говоря, если вы не можете описать структуру своих данных и не знаете как она изменится в будущем, но можете эти данные отобразить в json-формате, то mongo справится с задачей хранения schemaless данных.

Как искусственный интеллект влияет на сознание

https://www.youtube.com/watch?v=0CmfNI7kzxQ Алгоритмы вычисления действий каждого человека лежат на поверхности. Сами того не осознавая, проходя онлайн-тесты или публикую посты в социальных сетях, мы формируем базу знаний о своей личности, которая в удобный момент будет использована не в нашу пользу. Ежедневно мы сталкиваемся с рекламными материалами в социальных сетях и на других сайтах и каждый раз мозг получает порцию специально подготовленной информации, которая должна побудить человека к конкретным действиям. (далее…)

Создать новый проект на Laravel 5.6: установка и настройка

Смотрите полный список уроков laravel 5.6. Быстрый старт для тех, кто хочет программировать с использованием PHP фреймворка Laravel, но не знает с чего начать. Что ж, представляют свой Laravel Quick Start! Для начала работы нужно инициализировать Laravel с помощью Composer (который должен быть предварительно установлен). Все действия успешно выполняются в Windows, MacOs, Linux и даже в Docker.

composer create-project --prefer-dist laravel/laravel project
Вместо project можно указать любую другую директорию. На этом можно было бы остановиться, но давайте рассмотрим несколько лайфхаков облегчающих разработку проекта на Laravel. Важно: для версий Laravel отличных от 5.6 выполняемые команды и настройки могут отличаться! (далее…)

Wget скачать сайт целиком и полностью

Простой консольной утилитой wget можно решать большое количество задач. Например, выкачать сайт или конкретную директорию со всеми картинками, скриптами и прочими файлами. В этой заметке расскажу о нескольких часто используемых кейсах и наиболее полезных флагах и опциях. Для начала приведу несколько примеров команд: (далее…)

cURL error 60: SSL certificate : self signed certificate in certificate chain

При работе с curl не только в php может возникнуть подобная проблема: cURL error 60: SSL certificate : self signed certificate in certificate chain (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) Решить её можно следующим образом: Скачать последнюю версию файла cacert.pem. В конфигурационном файле php.ini добавить или отредактировать строку curl.cainfo=/path/to/cacert.pem.

Хитрости при работе с регулярными выражениями PCRE на PHP

Наверное не существует ни одного разработчика, которому не пришлось бы хотя бы раз столкнуться регулярными выражениями. Мне же периодически приходится довольно плотно с ними работать, но назвать себя экспертом по регекспам я не могу.

Никогда не используйте регулярные выражения

Если можно обойтись без регулярок — значит нужно этим воспользоваться. Практически любую задачу, за исключением обработки огромных текстов, можно решить императивным программированием. На первый взгляд может показаться, что задача идеально решается регулярным выражением, но чаще всего на практике оказывается, что существует множество неучтённых нюансов, которые регулярка не покрывает. В результате чего, с каждой итерацией она разрастается и не кажется уже такой простой и понятной, какой была в начале. (далее…)

Разбор задачи про лифты в бизнес-центрах

Ещё одна задачка для собеседования на должность backend-разработчика. Адовость заключается в отсутствии и отказе предоставлять описание алгоритма выбора лифтов и пограничных случаев, а так же в отсутствии дополнительных сведений о работе подобных лифтов.

Есть в бизнес-центрах лифты, когда пассажир нажимает на кнопку нужного этажа, а на экране загорается номер лифта, на который нужно сесть пассажиру. Нужно смоделировать работу X подобных лифтов в Y этажном здании.
(далее…)