Обновить
48.77

PHP *

Скриптовый язык общего назначения

Сначала показывать
Порог рейтинга
Уровень сложности

Free SSL для CP Vesta — легко. И SSL для Laravel

Время на прочтение3 мин
Количество просмотров18K
Привет, друзья. Не для кого не открою секрет, что работа сайтов через https протокол становится не просто нормой жизни, а уже и обязательным условием. Но очень многие сайты все еще продолжают работать через незащищенный http протокол. Однако, большое количество владельцев сайтов уже подумывает о переходе на SSL. При поиске информации о том, как приобрести сертификат безопасности, владельцы ресурсов сталкиваются с рядом трудностей. Это и выбор типа сертификата, цена, необходимость в сложной регистрации, подтверждение своей личности и другое. Многих, неискушенных пользователей, это отталкивает, отодвигая переход на безопасный протокол в долгий ящик. Но выход есть! Простой, бесплатный и быстрый.
Читать дальше →

PHP-Дайджест № 101 – интересные новости, материалы и инструменты (15 – 29 января 2017)

Время на прочтение4 мин
Количество просмотров19K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Читать дальше →

PHP 7.1.1 FPM vs Node.js 7.4.0 в качестве web backend сервера

Время на прочтение3 мин
Количество просмотров34K
Всем привет, решил поделиться с вами результатами синтетического теста производительности свежих версий PHP и Node.js.

Конфигурация сервера:

Простой VDS — 1 ядро процессора 2ГГц, 1Гб оперативы, 10Гб SSD.
ОС: Debian 8.6.
Так же произведены базовые настройки ядра, чтобы сервер в принципе мог обрабатывать большое кол-во соединений.

Испытуемые:

— PHP 7.1.1 FPM
— Node.js 7.4.0

Первый этап:

Тут операции, которые в основном использует backend. А именно: склеивание строк, сетевой ввод-вывод, арифметика и работа с массивами.
Читать дальше →

Простые MVC-приложения

Время на прочтение6 мин
Количество просмотров47K
Я хотел бы затронуть тему правильной архитектуры приложений на PHP. Статья будет посвящена паттерну проектирования MVC. Написать про MVC меня сподвиг именно тот факт, что понимание этого паттерна является ключевым в становлении PHP-программиста. Так что если вы новичок и хотите начать писать программы правильно, читайте дальше.
Читать дальше →

Обнаружение дефектов кода типа «Expression Issues» (CWE-569)

Время на прочтение5 мин
Количество просмотров6K

Настоящей статьей мы продолжаем серию обзоров, посвященных обнаружению уязвимостей в open-source проектах с помощью статического анализатора кода AppChecker.


В рамках этой серии рассматриваются наиболее часто встречающиеся дефекты в программном коде, которые могут привести к серьезным уязвимостям. В этой статье мы остановимся на широком классе дефектов типа "Expression Issues" и рассмотрим их на примерах на языках PHP и Java.



В международной классификации CWE данный тип дефектов известен как CWE-569: Expression Issues. К нему относятся различные ошибки в логических выражениях в коде программы. Частным случаем дефекта такого класса является дефект «Присваивание вместо сравнения».


Читать дальше →

Новый быстрый старт с PHPixie: строим цитатник коммит за коммитом

Время на прочтение21 мин
Количество просмотров9.5K

image За прошлый год в PHPixie добавилось много новых возможностей и несколько компонентов, к тому же немного изменилась стандартная структура бандла чтобы снизить порог вхождения для разработчиков. Так что пришло время создать новый туториал, и в этот раз мы попробуем сделать его чуть по другому. Вместо того чтобы просто смотреть на готовый демо проект с описанием, мы будем идти постепенно, при чем на каждой итерации у нас будет полностью рабочий сайт. Мы будем строить простенький цитатник с логином, регистрацией, интеграцией с соцсетями и консольными командами для статистики. Полная история коммитов на гитхабе.

Читать дальше →

Краткий обзор нововведений в Laravel 5.4

Время на прочтение6 мин
Количество просмотров24K

image


Сегодня состоялся вход новой версии PHP фреймворка Laravel — 5.4! В новой версии были добавлены такие возможности, как поддержка Markdown-разметки для формирования электронных писем и уведомлений, улучшена поддержка Redis, добавлены новые возможности шаблонизатора Blade и множество других. Но обо всём по порядку.


Читать дальше →

Как создать временный файл на PHP, когда функция tmpfile() не подходит

Время на прочтение10 мин
Количество просмотров26K

Когда PHP-программисту необходимо создать временный файл, он в мануале находит функцию tmpfile() и после изучения примеров начинает думать, как её лучше применить. Так было и со мной, когда мне потребовалось выгрузить данные сразу во временный файл, а не работать с ними через переменную. Но с файлом, созданным таким образом, в дальнейшем неудобно работать в силу того, что tmpfile() возвращает дескриптор, а не ссылку на локальный файл. Давайте немного углубимся в анатомию временного файла и рассмотрим подводные камни, с которыми мне пришлось столкнуться.

Читать дальше →

Генерация документов в doc, excel, pdf и других форматах на сервере

Время на прочтение3 мин
Количество просмотров43K
Выгрузка отчетов в различных форматах — типовая задача для многих проектов. И сейчас есть немало инструментов для этого. Среди них есть интересный вариант, который применяется, как мне кажется, не часто, но он однозначно стоит внимания. Потому что позволяет получить документ в нужном формате буквально одной командой. О нем и расскажу.

image

Читать дальше →

Экзамен для будущих «русских хакеров» в Московском Политехе

Время на прочтение8 мин
Количество просмотров33K
И снова здравствуйте. Обычно я пишу статьи в качестве разработчика, но сегодня хочется поделиться опытом проведения экзамена по информационной безопасности в Московском Политехе. По-моему получилось довольно интересно. Задание даже может быть полезным начинающим тестировщикам и пентестерам. Но вначале я немного расскажу про то, как проходили занятия в течении семестра — чтобы было понятно, как мы дошли до жизни такой.


Читать дальше →

JSON API Мой Склад, самообучение

Время на прочтение11 мин
Количество просмотров30K
START UPDATE 2019-11-18
Заметил, что статья до сих пор для кого то служит источником информации.
Я сделал рефакторинг что бы сделать код более прямолинейным. По пути поправил пару досадных багов.
FINISH UPDATE 2019-11-18

Есть такой способ самообучения — как выполнение тестовых заданий. Его преимущество в том что объём задания конечен, сроки ограничены. Это не позволяет тянуть резину до бесконечности или самозабвенно вырисовывать завихрения и завитушки архитектурных изысков.

Приятный бонус такой тренировки скиллов заключается в знакомстве с новыми технологиями и бизнес процессами, которое кроме всего прочего востребованы в реальных задачах.

На этот раз надо было сделать страничку для формирования заказа покупателя в сервисе «Мой склад». Для меня это как полёт на Луну: в веб разработке я чуть меньше чем новичок, с фронтэндом знаком только по наслышке, а тут целую страницу надо разработать, ох ты Йожик!
Любая критика и советы приветствуются.
Читать дальше →

Обзор современных систем веб-рабочих столов

Время на прочтение4 мин
Количество просмотров28K
Привет, великий Хабр! В наше время Интернет бурно развивается. Теперь, это не просто хранилище информации. Мы общаемся в сети, активно используем облачные сервисы для хранения собственных файлов, создаем в веб-приложениях документы, рисунки и презентации, пользуемся онлайн-переводчиком, играем в онлайн-игры и так далее.

В виртуальном пространстве Интернета, на мой взгляд, всегда удобно иметь в своем распоряжении привычный рабочий стол, который сосредоточил бы в себе все необходимые для пользователя приложения и позволил работать с данными непосредственно в браузере. На сегодня Интернет – это одна из бурно развивающихся отраслей IT-сферы и в последнее время особую популярность приобрели облачные технологии, в частности все больший интерес получают так называемые «онлайн операционные системы».

Система веб-рабочих стола организует для пользователя набор приложений и сервисов прямо в Интернете, доступный в любом месте и на любом устройстве. Основой каждого такого рабочего стола является интерфейс — аналог проводника и рабочего стола обычной операционной системы (Windows, Mac OS, Linux).
Читать дальше →

Авторизация в Laravel, через социальные сети (Ulogin). Просто, гибко и эффективно

Время на прочтение4 мин
Количество просмотров19K
Привет, друзья. Хочу сегодня поделится своим взглядом на то, как можно сделать простую и эффективную авторизацию/регистрацию пользователей через любую социальную сеть, используя плагин Ulogin. Почему через этот плагин? Потому что он может избавить разработчика от кучи головной боли, которая возникнет при синхронизации с каждой социальной сетью в отдельности. Плюс вы сможете получить данные из плагина в едином красивом формате.
Читать дальше →

Ближайшие события

Мониторинг приложений с помощью Pinba

Время на прочтение10 мин
Количество просмотров15K

Drawing Привет, Хабр! Мы в Badoo стараемся активно участвовать в жизни IT-сообщества: используем многие open-source-технологии и инструменты, а также делимся своими разработками.


Один из таких инструментов – Pinba – сервис для получения realtime-статистики от работающих приложений без накладных расходов на её сбор. Узнать побольше вы можете в этой статье.


Мы стараемся помочь всем, кто использует Pinba в своих проектах и всегда рады слышать success stories, связанные с Pinba. Этот перевод – одна из подобных историй от разработчиков Dailymotion.

Читать дальше →

Релиз FFCMS 3.0.0 — новая переработанная система

Время на прочтение5 мин
Количество просмотров7.9K
Доброго времени суток обитатель habrahabr, сегодня я хочу тебе рассказать о новом релизе ffcms — 3.0.0 и кратко осветить кардинальные изменения, которые претерпела система с момента предыдущего релиза — 2.0.4.

Система сохранила бесплатную модель распространения и открытый исходный код (MIT), но исходный код был полностью переписан под MVC архитектуру и автозагрузку PSR-0. Многие «велосипеды» были убраны из системы, а их место заняли популярные компоненты: symfony http foundation, laravel eloquent и многие другие.

Расскажи более подробно

PHP-Дайджест № 100 – интересные новости, материалы и инструменты (1 – 15 января 2017)

Время на прочтение3 мин
Количество просмотров18K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Читать дальше →

Дружба OkayCMS и модуля для SMTP

Время на прочтение4 мин
Количество просмотров4.4K
После того, как почтовые сервисы перешли на свою строгую политику, многие клиенты стали жаловаться, что письма с интернет-магазина падают как минимум в спам, а в худшем случае, хостинг просто блочит письмо и не отправляет клиенту. В связи с этим, мы стали прикручивать на сайты популярную библиотеку PHPMailer, которая позволяет гибко настроить отправку почты. Как оказалось, в рамках простой CMS данная библиотека выглядит «мини-монстром» так как содержала в себе файлов больше, чем папка со всеми контроллерами системы.

В итоге мы составили кое-какой алгоритм подключения этого дела к системе Okay.

Итак, шаг номер раз: скачиваем библиотеку PHPMailer с гита.
Шаг номер два: загружаем папку библиотеки в папку api самой системы и подключаем ее к ней.
Читать дальше →

Разделение текста на предложения с помощью Томита-парсера

Время на прочтение4 мин
Количество просмотров19K
Чтобы подготовить русскоязычные тексты для дальнейшего анализа, мне однажды понадобилось разбить их на предложения. Разумеется, автоматически. Что приходит на ум в первую очередь, если нужно разделить текст на предложения? Разбить по точкам — угадал?

Если вы начнете это делать, то довольно быстро столкнетесь с тем, что точка — это не всегда разделитель предложений (“т.к.”, “т.д.”, “т.п.”, “пр.”, “S.T.A.L.K.E.R.”). Причем эти токены не всегда будут исключениями при разбивке текста на предложения. Например, “т.п.” может быть в середине предложения, а может и в конце.

Вопросительный и восклицательный знак тоже не всегда разделяют текст на предложения. Например, “Yahoo!”. Предложения могут разделять и другие знаки, например, двоеточие (когда следует список из отдельных утверждений).

Поэтому я долго не думая поискал готовый инструмент и остановился на Томита-парсере от Яндекса. О нем и расскажу.
Читать дальше →

Обнаружение в коде дефекта «разыменование нулевого указателя»

Время на прочтение4 мин
Количество просмотров23K
Этой статьей мы открываем серию публикаций, посвященных обнаружению ошибок и уязвимостей в open-source проектах с помощью статического анализатора кода AppChecker. В рамках этой серии будут рассмотрены наиболее часто встречающиеся дефекты в программном коде, которые могут привести к серьезным уязвимостям. Сегодня мы остановимся на дефекте типа «разыменование нулевого указателя».



Разыменование нулевого указателя (CWE-476) представляет собой дефект, когда программа обращается по некорректному указателю к какому-то участку памяти. Такое обращение ведет к неопределенному поведению программы, что приводит в большинстве случаев к аварийному завершению программы.
Читать дальше →

Хранение php-сессий в Redis с блокировками

Время на прочтение5 мин
Количество просмотров30K
Стандартный механизм хранения данных пользовательских сессий в php — хранение в файлах. Однако при работе приложения на нескольких серверах для балансировки нагрузки, возникает необходимость хранить данные сессий в хранилище, доступном каждому серверу приложения. В этом случае для хранения сессий хорошо подходит Redis.

Наиболее популярное решение — расширение phpredis. Достаточно установить расширение и настроить php.ini и сессии будут автоматически сохраняться в Redis без изменения кода приложений.

Однако такое решение имеет недостаток — отсутствие блокировки сессии.
Читать дальше →