➳ Предыстория этого блога ❂ ↑
Итак, наконец-то добрался до пробы мультиблогового движка, на котором сделан этот сайт, здесь есть еще много всего, сервис "вопросы и ответы", каталог ресурсов, но мне пока что нужно проверить как работает блог. Несмотря на множество возможностей движка, оказалось, что страницы грузятся довольно быстро, и последнее мне приятно видеть (далее будет ясно, почему). Теперь же посмотрим, на что...
Нейросети как будущее разработки ПО
Трансформация текущих ролей программистов и ИИ (в перспективе).
С каждым годом мы видим всё больше примеров применения нейросетей и автоматизации при их помощи в программировании. Одним из наиболее интересных направлений является генерация тестов для проверки качества кода. Но давайте заглянем немного дальше: возможно, в будущем программисты будут заниматься главным образом созданием тестов, а нейросети — писать программный...
Какой PHP-фреймворк выбрать для новичка
При выборе PHP-фреймворка, так сказать "для старта" может подойти любой из них, так как в целом принцип их работы одинаков. Однако лишние трудности на начальном пути могут привести к мнению, что тот или иной фреймворк не подходит, так как не полюбился с первого взгляда. Поэтому начинать лучше с фреймворков попроще, которые создают новичкам более-менее комфортные условия, подводя их к идее для чего собственно фреймворки нужны.
Так как...
Использование слеша в конце URL
Со слешем или без, как правильно?
Есть два типа распространённых вида URL(Uniform Resource Locator) для сайтов - это со слешем в конце и без слеша. Изначально предполагалось, что адрес со слешем указывает на директорию, в то время как адрес без слеша на файл. Со временем, когда эти URL стали участвовать в маршрутизации и потеряли связь со внутренней структурой папок и файлов сайта, стали встречаться различные варианты реализации. Например, WordPress и...
Настройка соответствия контроллер/метод для HLEB2 аналогично роутингу Yii2
В YII2 (да и не только в нём) по умолчанию маршруты автоматически распределяются по контроллерам и методам. Например, адрес /site/index будет указывать в контроллер SiteController и его метод actionIndex(). С одной стороны это удобно, но способствует тому, что разработчики делают огромные контроллеры со множеством методов, что встречается почти в каждом проекте на YII. В совокупности с неинтуитивным роутингом в YII такое автоназначение маршрутов...
Вы еще не зарегистрировались? Войти
Настройки безопасности сайта на фреймворке HLEB2
HLEB2 — это фреймворк на PHP, который используется для создания веб-приложений и RESTful API. Хотя он сам по себе достаточно простой, безопасность остаётся важным аспектом при работе с любым веб-фреймворком.
Несомненно, вы хотите, чтобы ваш сайт был защищён от различных взломов и работал корректно. Так как эта тема посвящена фреймворку HLEB2, то подразумевается, что указанный сайт работает на этой основе. Есть много общих рекомендаций по...
Версионность (SemVer) во фреймворке HLEB2
SemVer (Semantic Versioning) - это соглашение о версионировании программного обеспечения, которое определяет структуру и семантику номеров версий. Основная цель SemVer — обеспечить четкое и последовательное понимание изменений в программном обеспечении.
Структура номера версии
Номер версии SemVer состоит из трех частей, разделенных точками.
Например: v3(major).1(minor).8(patch)
- Основная версия (Major): Указывает на значительные изменения в...
Создание шаблона для Libarea
Этот сайт работает на платформе для коллективных блогов libarea. Недавно в репозитории Libarea была обновлена версия и внесено много улучшений. Посмотрел код проекта - он стал продвинутее и появились новые возможности. Но возникли проблемы с обновлением этого блога, потому что не следовал инструкции и изменил исходный код во многих местах, добиваясь нужного вида. В этот раз создам свой шаблон и опишу его создание, чтобы...
Бенчмарки контейнера HLEB2 us Slim Framework
Ранее опубликовал сравнение роутинга для Slim и HLEB2 при большом количестве маршрутов (иначе не было видно заметных различий), теперь пришёл черед реализации контейнера. Как и в прошлый раз получается, в Slim контейнер сторонний нужно установить, на выбор. Выбор пал на контейнер Symfony, так как слышал о нём лестные отзывы, что он без проблем может содержать несколько тысяч зарегистрированных...
Бенчмарки маршрутов HLEB2 us Slim Framework
Несмотря на то, что Slim является микро-фреймворком, а HLEB2 перестал быть с приставкой "микро", по привычке провожу сравнение производительности последнего с микро-фреймворками.
Как известно, измерение вывода Hello World у фреймворков дело поверхностное. Однако, можно попробовать нагрузить маршрутизатор большим количеством роутов и посмотреть, что из этого выйдет. Для испытаний взял последнюю на данный момент версию...
Принципы MVC во фреймворке HLEB2
Структура проекта, объявленная как Model-View-Controller (Модель-Вид-Контроллер) давно не нова, к тому же, часто неправильно трактуется при использовании в Web, особенно в отношении backend.
Классическое взаимодействие подразумевает круговорот между этими частями приложения, по отношению к backend-фреймворку это означает следующее: сначала запрашивается Контроллер, затем при помощи Модели данные запроса преобразуются в данные ответа, а затем...
Переход на HLEB2 c первой версии фреймворка
В связи с выпуском второй версии фреймворка HLEB добавлю несколько рекомендаций к официальной документации для перехода с первой версии.
Эти рекомендации вам могут пригодиться, если у вас уже был проект на фреймворке.
Так как HLEB2 теперь поддерживает асинхронность, то обратная совместимость была потеряна для многих его частей. Воспользовавшись этим, переходить так переходить, было переписано с нуля почти всё, что...
Обработка ошибок и исключений в PHP
После выхода PHP 7 механизм встроенных ошибок был сильно изменён и теперь представляет собой разделение на классы Error (Фатальная ошибка) и Exception (Исключение). Первый содержит перечень унаследованных от него типизированных классов для фатальных ошибок PHP, а Exception должен содержать исключения с возможностью обработки, которые будут от него унаследованы. Вместе эти два основных класса объединены интерфейсом Throwable, соответственно и...
Использование замыканий в PHP
Замыкание в PHP - это способность анонимной функции взаимодействовать с её окружением. То есть переменные из контекста замыкания могут быть использованы внутри функции.
Анонимная функция - это обычная функция не имеющая названия. Может быть присвоена переменной и не только, также может быть возвращаемым результатом функции или метода, аналогично экземпляру внутреннего класса Closure, которым представлена.
Пример обычной...
Какие процессы происходят после ввода URL в браузере
Когда пользователь вводит URL в браузере, происходит следующая последовательность процессов:
-
Парсинг URL: Браузер анализирует введенный URL, чтобы выделить протокол, доменное имя и путь к ресурсу.
-
DNS-поиск: Браузер отправляет запрос к DNS-серверу для получения IP-адреса, связанного с доменным именем. DNS-сервер возвращает IP-адрес браузеру.
-
Установка TCP-соединения: Браузер устанавливает TCP-соединение с веб-сервером, используя...