Работа с архивами — практически ежедневная задача при работе под любой операционной системой. В CentOS и других Linux-системах это создать архив удобнее всего с помощью команды: tar -cvzf folder.tar.gz folder В процессе исполнения будет выводиться лог с обработанными файлами, что весьма удобно для отслеживания процесса архивации. Извлечение файлов можно произвести […]
Как в PHP получить имя класса без неймспейса
Если вы любите баловаться с наследованием классов, то рано или поздно сталкиваетесь с задачей когда нужно узнать имя класса в контексте которого выполняется тот или иной код. Однако, стандартные методы по типу использования магической константы __CLASS__ или get_class($this) возвращают имя класса с его полным неймспейсом. Т.е. вы хотите получить LockHandler, но […]
Как на PHP перебрать все комбинации значений нескольких массивов
Достаточно интересная и не самая редкая задача. Допустим, есть несколько массивов с разными значениями, например: массив городов, возрастов, полов и т.п. Нужно вызвать некую функцию передав ей в качестве аргументов все возможные комбинации значений городов + возрастов + полов. Фактически это задача циклической итерации всех значений всех массивов. Неискушённый программист […]
Удивительные трюки с foreach в PHP
С версии PHP 5.5 появилась очень интересная фича: распаковка вложенных массивов с помощью list(). Дословно на русском описание этой фичи звучит как возможность обхода массива массивов с распаковкой вложенного массива в переменные цикла, передав list() в качестве значения. Что всё это значит? Оказывается больше не нужно писать так: foreach($users as $user) […]
Как в Nginx запретить отвечать на любой домен
У веб-сервера Nginx есть один фатальный недостаток — он пытается ответить на любой входящий запрос. Причём он отвечает даже на те запросы, в host-заголовке которых указан домен, который не был сконфигурирован! В этом случае Nginx выбирает первую попавшуюся секцию server и отдаёт ей запрос, даже если внутри этой секции значения […]
Как в Symfony 3.4 заменить стандартное сообщение об ошибке
Возникла задача — заменить стандартное сообщение об ошибке на что-то более дружелюбное и понятное для пользователя. Например, если для текущего URI не определён роутинг — то выводить json: {«status»:»error»,»message»:»Unknown endpoint.»} Вместо этого кирпичного безумия: Решить эту задачу можно с помощью определения собственного обработчика событий.
Как обновить библиотеки в файле composer.json до актуальных версий
Бывают такие ситуации, когда нужно внести правки в какой-либо проект, в который никто не заглядывал уже полгода-год. И конечно же большая часть библиотек в таких проектах уже не самых последних версий. И по закону подлости часть библиотек за это время успевает зарелизить новые мажорные версии, у которых в зависимостях также […]
Обучающие видео по программированию от Winderton
Winderton ведёт видеоблог на YouTube на тему программирования, разработки игр и Computer Science. Манера подачи материала у автора весьма специфическая, местами бывают грубости. Однако, в некоторых видео раскрываются довольно глубокие и редкие знания, о которых другие авторы молчат. Это один из немногих видео-блоггеров, которые вносят в IT сообщество дополнительную ценность. Рекомендую […]
Гарвардский курс CS50 по computer science на русском
У тех, кто собрался изучать программирование самый популярный вопрос: с чего начать. Ответ на него прост: начинайте с проверенных источников! Попробуйте CS50, вам понравится! CS50 Introduction to Computer Science (си-эс фифти) или «Основы программирования и компьютерных наук» признан одним из лучших в мире университетских курсов, посвящённых основам программирования и информационных технологий. […]
Полный курс об ООП и шаблонах разработки ПО
Хотите больше узнать о паттернах проектирования? Тогда обратите внимание на полный курс «Шаблоны разработки программного обеспечения» от Сергея Немчинского. В курсе рассмотрены базовые принципы ООП, шаблоны GRASP и GoF, антипаттерны и рефакторинг. Манера подачи материала у автора весьма специфична, однако стоит отдать должное за проделанную работу. Курс будет полезен как начинающим […]